Files
English/kouyu_english/assets/courses/A1/A1-U18.json
T
shenleiandClaude Opus 4.8 febfd30f49 feat: A1 短材料复现本单元理解词,并加入黑夜模式
课程内容
- 重写全部 21 个 A1 单元的听读材料,把本单元理解词织进听/读文本,
  单元内理解词复现率从约 20% 提升到约 77%(各单元 56–96%)。
- 修正 U01 房间号与机场大巴同为 thirty 的撞车(改为 17/30/40)。
- 校验器容差按级别读取(A1 为 8%),materials 覆盖率、字数、
  选项子串等校验全部通过;course_content_test 通过。

黑夜模式
- app_theme 拆分明/暗两套调色板,AppColors 随亮度切换;
  main 用 theme/darkTheme/themeMode + builder 镜像已解析亮度;
  主题偏好持久化到快照;进度页新增“外观主题”切换。

文档
- COURSE-PACK-JSON.md 更新 A1 词池覆盖(840/933)与材料复现约定。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-18 11:16:09 +09:00

936 lines
23 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schemaVersion": 1,
"id": "A1-U18",
"revision": 1,
"level": "A1",
"title": "药店与不舒服",
"categories": [
"日常",
"旅行"
],
"canDo": "说一个症状、听懂基本建议",
"status": "draft",
"meta": {
"draftedBy": "claude-opus-5",
"draftedAt": "2026-09-17",
"sources": [
"CEFR-J Vocabulary Profile 1.5",
"CEFR-J Grammar Profile 20180315"
],
"reviews": [],
"frozenAt": null
},
"names": [],
"grammar": [
{
"id": "59-2",
"use": "active"
},
{
"id": "60",
"use": "active",
"reason": "用 My head hurts 说哪里疼"
},
{
"id": "246",
"use": "active"
},
{
"id": "123",
"use": "active"
},
{
"id": "64",
"use": "receptive"
}
],
"coreItems": [
{
"id": "A1-U18-P01",
"type": "phrase",
"en": "I don't feel well.",
"zh": "我不舒服。",
"sceneWord": false,
"match": [
[
"don't feel well"
]
],
"example": {
"en": "I don't feel well today.",
"zh": "我今天不舒服。"
},
"review": {
"prompt": "告诉朋友你不舒服。"
}
},
{
"id": "A1-U18-P02",
"type": "phrase",
"en": "I have a headache.",
"zh": "我头疼。",
"sceneWord": false,
"match": [
[
"have a headache",
"have a fever",
"have a cold",
"have a stomachache",
"has a headache",
"has a fever",
"has a cold"
]
],
"example": {
"en": "I have a cold.",
"zh": "我感冒了。"
},
"review": {
"prompt": "说你发烧了。"
}
},
{
"id": "A1-U18-P03",
"type": "phrase",
"en": "My head hurts.",
"zh": "我头疼。",
"sceneWord": false,
"match": [
[
"hurts",
"hurt"
]
],
"example": {
"en": "My back hurts.",
"zh": "我背疼。"
},
"review": {
"prompt": "说你的腿疼。"
}
},
{
"id": "A1-U18-W01",
"type": "word",
"en": "sick",
"zh": "生病的",
"sceneWord": false,
"match": [
[
"sick"
]
],
"example": {
"en": "I feel sick.",
"zh": "我觉得恶心/不舒服。"
},
"review": {
"prompt": "说你的孩子生病了。"
}
},
{
"id": "A1-U18-W02",
"type": "word",
"en": "medicine",
"zh": "药",
"sceneWord": false,
"match": [
[
"medicine"
]
],
"example": {
"en": "I need some medicine.",
"zh": "我需要一些药。"
},
"review": {
"prompt": "说你需要买药。"
}
},
{
"id": "A1-U18-P04",
"type": "phrase",
"en": "Is there a pharmacy near here?",
"zh": "附近有药店吗?",
"sceneWord": true,
"sceneReason": "pharmacy 为 B1,但旅行中找药店时必需",
"match": [
[
"pharmacy"
]
],
"example": {
"en": "Where is the pharmacy?",
"zh": "药店在哪里?"
},
"review": {
"prompt": "在街上问附近有没有药店。"
}
},
{
"id": "A1-U18-P05",
"type": "phrase",
"en": "Do you have something for a headache?",
"zh": "有治头疼的药吗?",
"sceneWord": false,
"match": [
[
"something for"
]
],
"example": {
"en": "Do you have something for a cold?",
"zh": "有治感冒的药吗?"
},
"review": {
"prompt": "在药店问有没有治发烧的药。"
}
},
{
"id": "A1-U18-P06",
"type": "phrase",
"en": "How often do I take it?",
"zh": "这个药多久吃一次?",
"sceneWord": false,
"match": [
[
"how often"
]
],
"example": {
"en": "How often do I take this medicine?",
"zh": "这个药多久吃一次?"
},
"review": {
"prompt": "问药怎么吃。"
}
},
{
"id": "A1-U18-P07",
"type": "phrase",
"en": "Three times a day.",
"zh": "一天三次。",
"sceneWord": false,
"match": [
[
"times a day",
"once a day",
"twice a day"
]
],
"example": {
"en": "Take it two times a day.",
"zh": "一天吃两次。"
},
"review": {
"prompt": "说一天吃两次。"
}
},
{
"id": "A1-U18-P08",
"type": "phrase",
"en": "after meals",
"zh": "饭后",
"sceneWord": false,
"match": [
[
"after meals",
"before meals"
]
],
"example": {
"en": "Take it after meals.",
"zh": "饭后吃。"
},
"review": {
"prompt": "说这个药饭前吃。"
}
},
{
"id": "A1-U18-P09",
"type": "phrase",
"en": "I need to see a doctor.",
"zh": "我需要看医生。",
"sceneWord": false,
"match": [
[
"see a doctor"
]
],
"example": {
"en": "Can I see a doctor today?",
"zh": "我今天能看医生吗?"
},
"review": {
"prompt": "说你需要看医生。"
}
},
{
"id": "A1-U18-P10",
"type": "phrase",
"en": "I feel better now.",
"zh": "我现在好多了。",
"sceneWord": false,
"match": [
[
"feel better"
]
],
"example": {
"en": "Do you feel better?",
"zh": "你好点了吗?"
},
"review": {
"prompt": "告诉朋友你好多了。"
}
},
{
"id": "A1-U18-P11",
"type": "phrase",
"en": "Take care.",
"zh": "保重。",
"sceneWord": false,
"match": [
[
"take care"
]
],
"example": {
"en": "Take care and drink water.",
"zh": "保重,多喝水。"
},
"review": {
"prompt": "朋友生病了,跟他说保重。"
}
}
],
"receptiveWords": [
{
"id": "A1-U18-R01",
"en": "fever",
"zh": "发烧"
},
{
"id": "A1-U18-R02",
"en": "health",
"zh": "健康"
},
{
"id": "A1-U18-R03",
"en": "healthy",
"zh": "健康的"
},
{
"id": "A1-U18-R04",
"en": "body",
"zh": "身体"
},
{
"id": "A1-U18-R05",
"en": "arm",
"zh": "手臂"
},
{
"id": "A1-U18-R06",
"en": "leg",
"zh": "腿"
},
{
"id": "A1-U18-R07",
"en": "ear",
"zh": "耳朵"
},
{
"id": "A1-U18-R08",
"en": "nose",
"zh": "鼻子"
},
{
"id": "A1-U18-R09",
"en": "mouth",
"zh": "嘴"
},
{
"id": "A1-U18-R10",
"en": "neck",
"zh": "脖子"
},
{
"id": "A1-U18-R11",
"en": "shoulder",
"zh": "肩膀"
},
{
"id": "A1-U18-R12",
"en": "knee",
"zh": "膝盖"
},
{
"id": "A1-U18-R13",
"en": "heart",
"zh": "心脏"
},
{
"id": "A1-U18-R14",
"en": "nurse",
"zh": "护士"
},
{
"id": "A1-U18-R15",
"en": "breathe",
"zh": "呼吸"
},
{
"id": "A1-U18-R16",
"en": "once",
"zh": "一次"
},
{
"id": "A1-U18-R17",
"en": "stomach",
"zh": "胃"
},
{
"id": "A1-U18-R18",
"en": "pill",
"zh": "药片"
},
{
"id": "A1-U18-R19",
"en": "ill",
"zh": "生病的"
},
{
"id": "A1-U18-R20",
"en": "dentist",
"zh": "牙医"
},
{
"id": "A1-U18-R21",
"en": "toothache",
"zh": "牙疼"
},
{
"id": "A1-U18-R22",
"en": "blood",
"zh": "血"
},
{
"id": "A1-U18-R23",
"en": "twice",
"zh": "两次"
},
{
"id": "A1-U18-R24",
"en": "important",
"zh": "重要的"
},
{
"id": "A1-U18-R25",
"en": "yesterday",
"zh": "昨天"
},
{
"id": "A1-U18-R26",
"en": "still",
"zh": "仍然"
}
],
"segments": [
{
"id": "A1-U18-S1",
"title": "说哪里不舒服",
"minutes": 13,
"itemIds": [
"A1-U18-P01",
"A1-U18-P02",
"A1-U18-P03",
"A1-U18-W01",
"A1-U18-P09"
],
"listening": {
"text": "What's the matter? I don't feel well. I have a headache, and my neck hurts. I think I need to see a doctor.",
"question": "说话人哪里不舒服?",
"options": [
"头疼和脖子疼",
"发烧和胃疼",
"牙疼"
]
},
"speaking": [
{
"text": "I don't feel well."
},
{
"text": "I have a headache.",
"tip": "headache 读 /ˈhedeɪk/ch 读 /k/"
},
{
"text": "My head hurts."
},
{
"text": "I feel sick."
},
{
"text": "I need to see a doctor."
}
],
"reading": {
"text": "Your body\nHead: eyes, ears, nose and mouth\nNeck and shoulders\nArms and hands\nLegs and knees\nIn your body, your heart is very important. When you run, you breathe fast.\nToothache? See a dentist. A fever or blood? See a doctor or a nurse.",
"question": "牙疼应该看谁?",
"options": [
"牙医",
"护士",
"医生"
]
},
"writing": {
"prompt": "写两句话:说你不舒服,头疼。",
"example": "I don't feel well. I have a headache.",
"itemIds": [
"A1-U18-P01",
"A1-U18-P02"
]
},
"independent": {
"prompt": "用英语说说你哪里疼,并说需要看医生。",
"itemIds": [
"A1-U18-P03",
"A1-U18-W01",
"A1-U18-P09"
]
}
},
{
"id": "A1-U18-S2",
"title": "在药店",
"minutes": 13,
"itemIds": [
"A1-U18-W02",
"A1-U18-P04",
"A1-U18-P05",
"A1-U18-P06",
"A1-U18-P07",
"A1-U18-P08"
],
"listening": {
"text": "Excuse me, is there a pharmacy near here? Yes, next to the bank. ... Hello. Do you have something for a headache? Yes, this medicine. How often do I take it? Three times a day, after meals.",
"question": "药怎么吃?",
"options": [
"一天三次,饭后",
"一天两次,饭前",
"一天一次,睡前"
]
},
"speaking": [
{
"text": "I need some medicine."
},
{
"text": "Is there a pharmacy near here?"
},
{
"text": "Do you have something for a headache?"
},
{
"text": "How often do I take it?"
},
{
"text": "Three times a day."
},
{
"text": "Take it after meals."
}
],
"reading": {
"text": "Medicine box\nFor headaches and fevers\nPeople over 12: take 2 pills three times a day, after meals.\nChildren: take 1 pill twice a day.\nDon't take more than 6 pills a day.\nIll for more than three days? See a doctor.\nFor stomach problems, take it once a day, before meals.",
"question": "大人一天最多吃几片?",
"options": [
"六片",
"三片",
"两片"
]
},
"writing": {
"prompt": "写两句话:问有没有治头疼的药,再问多久吃一次。",
"example": "Do you have something for a headache? How often do I take it?",
"itemIds": [
"A1-U18-P05",
"A1-U18-P06"
]
},
"independent": {
"prompt": "你在药店买感冒药,用英语问清楚怎么吃。",
"itemIds": [
"A1-U18-W02",
"A1-U18-P05",
"A1-U18-P06",
"A1-U18-P07",
"A1-U18-P08"
]
}
},
{
"id": "A1-U18-S3",
"title": "好些了",
"minutes": 11,
"itemIds": [
"A1-U18-P10",
"A1-U18-P11"
],
"listening": {
"text": "How are you today? I was sick yesterday, but I feel better now. Good! Take care.",
"question": "说话人今天怎么样?",
"options": [
"好多了",
"还在发烧",
"要去看医生"
]
},
"speaking": [
{
"text": "I feel better now."
},
{
"text": "Take care."
},
{
"text": "I was sick yesterday."
}
],
"reading": {
"text": "A note to my friend\nHi Sam,\nI was ill yesterday. I had a fever, and my body hurt. Today I feel better now. I drink a lot of water and sleep. Health is important! I want to be healthy, so I run every day.\nTake care,\nLily",
"question": "Lily 昨天怎么了?",
"options": [
"发烧,全身疼",
"牙疼",
"胃疼"
]
},
"writing": {
"prompt": "写两句话:说你昨天病了,现在好多了。",
"example": "I was sick yesterday. I feel better now.",
"itemIds": [
"A1-U18-P10",
"A1-U18-W01"
]
},
"independent": {
"prompt": "朋友生病了,用英语问他好点没有,并说保重。",
"itemIds": [
"A1-U18-P10",
"A1-U18-P11"
]
}
}
],
"scenes": [
{
"id": "A1-U18-C1",
"kind": "main",
"title": "在药店买药",
"learnerRole": "游客",
"aiRole": "药剂师",
"setting": "你旅行时头疼,走进一家药店。",
"turns": [
{
"ai": "Hello. How can I help you?",
"goal": "说你不舒服,头疼",
"model": "I don't feel well. I have a headache.",
"zh": "我不舒服,头疼。",
"itemIds": [
"A1-U18-P01",
"A1-U18-P02"
]
},
{
"ai": "Oh, I'm sorry. Do you have a fever?",
"goal": "说没有发烧,问有没有治头疼的药",
"model": "No. Do you have something for a headache?",
"zh": "没有。有治头疼的药吗?",
"itemIds": [
"A1-U18-P05"
]
},
{
"ai": "Yes. This medicine is good.",
"goal": "问多久吃一次",
"model": "How often do I take it?",
"zh": "这个药多久吃一次?",
"itemIds": [
"A1-U18-P06"
]
},
{
"ai": "Three times a day, after meals.",
"goal": "复述:一天三次,饭后",
"model": "Three times a day, after meals. OK.",
"zh": "一天三次,饭后。好的。",
"itemIds": [
"A1-U18-P07",
"A1-U18-P08"
]
},
{
"ai": "Is it very bad?",
"goal": "说如果还疼就去看医生",
"model": "If my head hurts tomorrow, I need to see a doctor.",
"zh": "如果明天头还疼,我需要看医生。",
"itemIds": [
"A1-U18-P03",
"A1-U18-P09"
]
}
]
},
{
"id": "A1-U18-C2",
"kind": "variant",
"title": "在街上找药店",
"learnerRole": "游客",
"aiRole": "路人",
"setting": "你的孩子生病了,你在街上找药店。",
"turns": [
{
"ai": "Are you OK?",
"goal": "说孩子生病了",
"model": "My son is sick.",
"zh": "我儿子病了。",
"itemIds": [
"A1-U18-W01"
]
},
{
"ai": "Oh no. What's the matter?",
"goal": "说他发烧了",
"model": "He has a fever.",
"zh": "他发烧了。",
"itemIds": [
"A1-U18-P02"
]
},
{
"ai": "He needs some medicine.",
"goal": "问附近有没有药店",
"model": "Yes, he needs medicine. Is there a pharmacy near here?",
"zh": "是的,他需要药。附近有药店吗?",
"itemIds": [
"A1-U18-P04",
"A1-U18-W02"
]
},
{
"ai": "Yes, it's on the next street.",
"goal": "说也许需要看医生",
"model": "Thank you. Maybe he needs to see a doctor too.",
"zh": "谢谢。也许他还需要看医生。",
"itemIds": [
"A1-U18-P09"
]
},
{
"ai": "There's a hospital near the pharmacy. Take care!",
"goal": "道谢",
"model": "Thanks. You take care too.",
"zh": "谢谢,你也保重。",
"itemIds": [
"A1-U18-P11"
]
}
]
},
{
"id": "A1-U18-C3",
"kind": "variant",
"title": "朋友来问候",
"learnerRole": "你",
"aiRole": "朋友",
"setting": "你昨天生病了,今天朋友打电话来问候。",
"turns": [
{
"ai": "Hi! How are you today?",
"goal": "说好多了",
"model": "I feel better now.",
"zh": "我现在好多了。",
"itemIds": [
"A1-U18-P10"
]
},
{
"ai": "Great! Do you still have a headache?",
"goal": "说还是不太舒服,背疼",
"model": "A little. I don't feel well, and my back hurts.",
"zh": "有一点。还是不太舒服,背也疼。",
"itemIds": [
"A1-U18-P01",
"A1-U18-P03"
]
},
{
"ai": "Do you have medicine?",
"goal": "说有药,一天吃两次",
"model": "Yes. I take the medicine two times a day.",
"zh": "有,这个药一天吃两次。",
"itemIds": [
"A1-U18-W02",
"A1-U18-P07"
]
},
{
"ai": "Before meals or after meals?",
"goal": "说饭后吃",
"model": "After meals.",
"zh": "饭后吃。",
"itemIds": [
"A1-U18-P08"
]
},
{
"ai": "OK. Take care!",
"goal": "道谢",
"model": "Thanks. Take care.",
"zh": "谢谢。保重。",
"itemIds": [
"A1-U18-P11"
]
}
]
}
],
"tasks": [
{
"id": "A1-U18-T1",
"sceneId": "A1-U18-C1",
"goal": "在药店说明症状并问清楚药怎么吃",
"itemIds": [
"A1-U18-P01",
"A1-U18-P02",
"A1-U18-P05",
"A1-U18-P06",
"A1-U18-P07",
"A1-U18-P08",
"A1-U18-P03",
"A1-U18-P09"
],
"slots": [
"症状",
"药",
"用法"
]
},
{
"id": "A1-U18-T2",
"sceneId": "A1-U18-C2",
"goal": "孩子生病时在街上找药店",
"itemIds": [
"A1-U18-W01",
"A1-U18-P02",
"A1-U18-P04",
"A1-U18-W02",
"A1-U18-P09",
"A1-U18-P11"
],
"slots": [
"症状",
"药店"
]
},
{
"id": "A1-U18-T3",
"sceneId": "A1-U18-C3",
"goal": "回答朋友的问候,说说病情",
"itemIds": [
"A1-U18-P10",
"A1-U18-P01",
"A1-U18-P03",
"A1-U18-W02",
"A1-U18-P07",
"A1-U18-P08",
"A1-U18-P11"
],
"slots": [
"现在怎么样",
"哪里疼",
"吃药"
]
}
],
"materials": [
{
"id": "A1-U18-M1",
"mode": "listening",
"title": "药店店员给建议",
"text": "Hello. What's the matter? You don't look well; you don't look healthy today. Do you have a fever? OK, you have a headache, your stomach hurts, and your neck and shoulder hurt too. Don't worry. Your health is important. Here is some medicine. Take one pill twice a day, after meals — not once, but two times. Please breathe slowly, drink a lot of water, and rest. If your ear, nose or leg still hurts tomorrow, or if you feel ill, you need to see a doctor. For a toothache, see a dentist. The nurse can help too. The pharmacy is open until ten. Take care!",
"glosses": {
"rest": "休息",
"hurts": "疼",
"hurt": "疼",
"slowly": "慢慢地"
},
"questions": [
{
"type": "gist",
"question": "说话人主要在做什么?",
"options": [
"给生病的人建议和药",
"卖衣服",
"介绍菜单"
]
},
{
"type": "detail",
"question": "这个药怎么吃?",
"options": [
"一天两次,饭后吃",
"一天三次,饭前吃",
"睡前吃"
]
}
]
},
{
"id": "A1-U18-M2",
"mode": "reading",
"title": "读一段对话:说不舒服",
"text": "Ben: I don't feel well. I have a bad headache, and my body hurts everywhere.\nMia: Oh no. Do you have a fever? You don't look healthy.\nBen: A little. My head and my stomach hurt, and my arm and leg are tired.\nMia: Yesterday you were fine. You should rest. It's important. Do you have any medicine?\nBen: No. Is there a pharmacy near here?\nMia: Yes, next to the bank. The nurse there can give you something for a headache.\nBen: Thanks. My tooth hurts too. Maybe I need a dentist for this toothache.\nMia: Take care. Breathe slowly and drink water. I hope you feel better soon.\nBen: Thank you, my friend. I still feel ill, but a little better now.",
"glosses": {
"rest": "休息",
"hurts": "疼",
"hurt": "疼",
"everywhere": "到处",
"slowly": "慢慢地"
},
"questions": [
{
"type": "detail",
"question": "Ben 哪里不舒服?",
"options": [
"头疼、发一点烧、浑身疼",
"只是牙疼",
"只是肚子疼"
]
},
{
"type": "detail",
"question": "药店在哪里?",
"options": [
"银行旁边",
"车站里",
"酒店对面"
]
}
]
}
],
"excluded": [
{
"en": "sore throat",
"reason": "sore 为 B1、throat 为 B2A1 用 My throat hurts 以外的说法,先不教"
},
{
"en": "cough",
"reason": "B1B2;留到 A2 看病单元"
}
]
}