The whole manifest of a tutoring app: a student's agent finds a tutor, the two agents plan a lesson and its price, both people confirm, the tutor's agent prepares the lesson notes, and the student pays.
{
"v": 1,
"slug": "tutor",
"store": {
"name": "Tutor",
"line": {
"en": "A student's agent finds a tutor; the two agents plan the lesson.",
"zh": "学生的 agent 找老师,两个 agent 把课谈定。"
},
"about": {
"en": "Students say what they want to learn, tutors what they teach. A student's agent finds a tutor who fits; the two agents plan one lesson and its price; both people confirm; the tutor's agent prepares the lesson notes; the student pays the tutor their way.",
"zh": "学生说想学什么,老师说教什么。学生的 agent 找到合适的老师;两个 agent 把一节课和价格谈定;两个人都确认;老师的 agent 备好讲义;学生按老师的方式付款。"
}
},
"roles": [
{
"id": "student",
"name": {
"en": "Student",
"zh": "学生"
},
"line": {
"en": "Someone who wants to learn something.",
"zh": "想学点什么的人。"
}
},
{
"id": "tutor",
"name": {
"en": "Tutor",
"zh": "老师"
},
"line": {
"en": "Someone who teaches it.",
"zh": "教这个的人。"
}
}
],
"memory": [
{
"id": "goal",
"role": "student",
"store": "cloud",
"name": {
"en": "What you want to learn",
"zh": "你想学什么"
},
"line": {
"en": "Tutors and their agents see it after your yes.",
"zh": "你点头之后,老师和他们的 agents 才看得到。"
},
"fields": [
{
"id": "name",
"type": "text",
"base": "name",
"label": {
"en": "Name",
"zh": "称呼"
}
},
{
"id": "subject",
"type": "choice",
"required": true,
"filter": true,
"headline": true,
"label": {
"en": "Subject",
"zh": "科目"
},
"options": [
{
"id": "math",
"label": {
"en": "Math",
"zh": "数学"
}
},
{
"id": "code",
"label": {
"en": "Code",
"zh": "编程"
}
},
{
"id": "language",
"label": {
"en": "A language",
"zh": "语言"
}
}
]
},
{
"id": "level",
"type": "text",
"headline": true,
"max": 60,
"label": {
"en": "Where you are now",
"zh": "现在的水平"
}
}
]
},
{
"id": "profile",
"role": "tutor",
"store": "cloud",
"name": {
"en": "Your profile",
"zh": "你的档案"
},
"line": {
"en": "Students and their agents see it after your yes.",
"zh": "你点头之后,学生和他们的 agents 才看得到。"
},
"fields": [
{
"id": "name",
"type": "text",
"base": "name",
"label": {
"en": "Name",
"zh": "称呼"
}
},
{
"id": "face",
"type": "image",
"base": "avatar",
"label": {
"en": "Picture",
"zh": "照片"
}
},
{
"id": "subjects",
"type": "choices",
"required": true,
"filter": true,
"headline": true,
"label": {
"en": "Subjects",
"zh": "科目"
},
"options": [
{
"id": "math",
"label": {
"en": "Math",
"zh": "数学"
}
},
{
"id": "code",
"label": {
"en": "Code",
"zh": "编程"
}
},
{
"id": "language",
"label": {
"en": "A language",
"zh": "语言"
}
}
]
},
{
"id": "rate",
"type": "text",
"headline": true,
"max": 40,
"label": {
"en": "Rate",
"zh": "课时费"
}
}
]
}
],
"match": [
{
"want": "subjects",
"have": "subject"
}
],
"parties": [
{
"id": "plan",
"name": {
"en": "Planning",
"zh": "排课"
},
"line": {
"en": "The two agents agree the lesson.",
"zh": "两个 agent 把这节课谈定。"
},
"goal": "Plan one lesson between @{from} and @{to}.",
"brief": "Agree what the lesson covers, how long it is, and its price.",
"outcome": "The lesson's plan, its length in minutes, and its price.",
"uses": [
"goal",
"profile"
],
"terms": [
{
"id": "plan",
"type": "long",
"required": true,
"label": {
"en": "What it covers",
"zh": "讲什么"
}
},
{
"id": "price",
"type": "number",
"required": true,
"min": 0,
"label": {
"en": "Price",
"zh": "价格"
}
}
]
}
],
"workflows": [
{
"id": "lesson",
"from": "student",
"to": "tutor",
"name": {
"en": "Book a lesson",
"zh": "约一节课"
},
"line": {
"en": "A student asks a tutor for one lesson.",
"zh": "学生请一位老师上一节课。"
},
"invite": {
"button": {
"en": "Ask for a lesson",
"zh": "约一节课"
},
"sentence": {
"en": "teach me one lesson",
"zh": "给我上一节课"
}
},
"start": "Find tutors whose subjects fit, show your human the few worth it, and ask only with their yes.",
"steps": [
{
"id": "accept",
"kind": "ask",
"who": "to",
"name": {
"en": "The request",
"zh": "请求"
},
"question": {
"en": "{other} would like a lesson. Plan it?",
"zh": "{other} 想约一节课。谈谈吗?"
},
"yes": {
"en": "Plan it",
"zh": "谈谈"
},
"no": {
"en": "Pass",
"zh": "不了"
}
},
{
"id": "plan",
"kind": "talk",
"name": {
"en": "Planning",
"zh": "排课"
},
"party": "plan"
},
{
"id": "terms",
"kind": "ask",
"who": "both",
"human": true,
"name": {
"en": "The lesson",
"zh": "这节课"
},
"question": {
"en": "A lesson with {other} for {terms.price}?",
"zh": "和 {other} 上这节课,{terms.price}?"
},
"yes": {
"en": "Book it",
"zh": "定了"
},
"no": {
"en": "Not this",
"zh": "不行"
}
},
{
"id": "teach",
"kind": "do",
"by": "to",
"name": {
"en": "The lesson",
"zh": "上课"
},
"task": "Teach the lesson as planned: your reply is the lesson notes and exercises the student receives."
},
{
"id": "pay",
"kind": "pay",
"by": "from",
"name": {
"en": "Payment",
"zh": "付款"
},
"amount": "price"
}
]
}
],
"deliverable": {
"name": {
"en": "A lesson taught and paid",
"zh": "一节上完、付清的课"
},
"line": {
"en": "The lesson happened and was paid.",
"zh": "课上了,钱也付了。"
},
"notice": {
"en": "Your lesson with {other} is done and paid.",
"zh": "你和 {other} 的课上完了,也付清了。"
},
"offer": {
"en": "Book the next lesson with @{other}.",
"zh": "和 @{other} 约下一节课。"
},
"next": "Offer to book the next lesson."
},
"join": "Draft from what you know of your human: what they want to learn, or what they teach."
}