Files
English/kouyu_english/assets/courses/A1/A1-U17.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

911 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-U17",
"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": "16",
"use": "active"
},
{
"id": "59-2",
"use": "active"
},
{
"id": "123",
"use": "active"
},
{
"id": "250",
"use": "active",
"reason": "CEFR-J 未标级别,Could you ...? 是向酒店提要求时最礼貌的说法"
},
{
"id": "117",
"use": "active"
}
],
"coreItems": [
{
"id": "A1-U17-P01",
"type": "phrase",
"en": "There's no hot water.",
"zh": "没有热水。",
"sceneWord": false,
"match": [
[
"no hot water"
]
],
"example": {
"en": "There's no hot water in the shower.",
"zh": "淋浴没有热水。"
},
"review": {
"prompt": "告诉前台房间没有热水。"
}
},
{
"id": "A1-U17-P02",
"type": "phrase",
"en": "The TV doesn't work.",
"zh": "电视坏了。",
"sceneWord": false,
"match": [
[
"doesn't work",
"don't work"
]
],
"example": {
"en": "The light doesn't work.",
"zh": "灯不亮。"
},
"review": {
"prompt": "说房间的灯不亮。"
}
},
{
"id": "A1-U17-W01",
"type": "word",
"en": "broken",
"zh": "坏的",
"sceneWord": false,
"match": [
[
"broken"
]
],
"example": {
"en": "The chair is broken.",
"zh": "椅子坏了。"
},
"review": {
"prompt": "说房间的椅子坏了。"
}
},
{
"id": "A1-U17-W02",
"type": "word",
"en": "dirty",
"zh": "脏的",
"sceneWord": false,
"match": [
[
"dirty"
]
],
"example": {
"en": "The towels are dirty.",
"zh": "毛巾是脏的。"
},
"review": {
"prompt": "说床单是脏的。"
}
},
{
"id": "A1-U17-P03",
"type": "phrase",
"en": "Can I have another towel?",
"zh": "可以再给我一条毛巾吗?",
"sceneWord": false,
"match": [
[
"another towel",
"more towels"
]
],
"example": {
"en": "Can I have two more towels?",
"zh": "可以再给我两条毛巾吗?"
},
"review": {
"prompt": "再要一条毛巾。"
}
},
{
"id": "A1-U17-P04",
"type": "phrase",
"en": "It's too noisy.",
"zh": "太吵了。",
"sceneWord": true,
"sceneReason": "noisy 为 A2,投诉房间时离不开这个词",
"match": [
[
"noisy"
]
],
"example": {
"en": "My room is too noisy.",
"zh": "我的房间太吵了。"
},
"review": {
"prompt": "说房间太吵,睡不着。"
}
},
{
"id": "A1-U17-P05",
"type": "phrase",
"en": "Can you send someone?",
"zh": "能派个人来吗?",
"sceneWord": true,
"sceneReason": "send 为 A2,请酒店派人处理问题时必需",
"match": [
[
"send someone"
]
],
"example": {
"en": "Can you send someone to my room?",
"zh": "能派个人来我房间吗?"
},
"review": {
"prompt": "请前台派人来修。"
}
},
{
"id": "A1-U17-P06",
"type": "phrase",
"en": "Can I change rooms?",
"zh": "我能换个房间吗?",
"sceneWord": false,
"match": [
[
"change rooms",
"another room"
]
],
"example": {
"en": "Can I have another room?",
"zh": "能给我换一间房吗?"
},
"review": {
"prompt": "问能不能换房间。"
}
},
{
"id": "A1-U17-P07",
"type": "phrase",
"en": "Could you bring me some water?",
"zh": "能给我拿点水吗?",
"sceneWord": false,
"match": [
[
"bring me"
]
],
"example": {
"en": "Could you bring me a blanket?",
"zh": "能给我拿条毛毯吗?"
},
"review": {
"prompt": "请服务员给你拿点水。"
}
},
{
"id": "A1-U17-P08",
"type": "phrase",
"en": "My room number is 1206.",
"zh": "我的房间号是 1206。",
"sceneWord": false,
"match": [
[
"room number"
]
],
"example": {
"en": "What's your room number?",
"zh": "你的房间号是多少?"
},
"review": {
"prompt": "打电话给前台时先说房间号。"
}
},
{
"id": "A1-U17-P09",
"type": "phrase",
"en": "I can't open the door.",
"zh": "我打不开门。",
"sceneWord": false,
"match": [
[
"can't open"
]
],
"example": {
"en": "I can't open the window.",
"zh": "我打不开窗。"
},
"review": {
"prompt": "说你打不开房门。"
}
},
{
"id": "A1-U17-P10",
"type": "phrase",
"en": "Please clean my room.",
"zh": "请打扫我的房间。",
"sceneWord": false,
"match": [
[
"clean my room",
"clean the room"
]
],
"example": {
"en": "Please clean the room at ten.",
"zh": "请十点打扫房间。"
},
"review": {
"prompt": "请酒店打扫你的房间。"
}
},
{
"id": "A1-U17-P11",
"type": "phrase",
"en": "Thank you for your help.",
"zh": "谢谢你的帮助。",
"sceneWord": false,
"match": [
[
"thank you for",
"thanks for"
]
],
"example": {
"en": "Thanks for the towels.",
"zh": "谢谢你送的毛巾。"
},
"review": {
"prompt": "问题解决后道谢。"
}
}
],
"receptiveWords": [
{
"id": "A1-U17-R01",
"en": "noise",
"zh": "噪音"
},
{
"id": "A1-U17-R02",
"en": "paper",
"zh": "纸"
},
{
"id": "A1-U17-R03",
"en": "wall",
"zh": "墙"
},
{
"id": "A1-U17-R04",
"en": "desk",
"zh": "书桌"
},
{
"id": "A1-U17-R05",
"en": "chair",
"zh": "椅子"
},
{
"id": "A1-U17-R06",
"en": "couch",
"zh": "沙发"
},
{
"id": "A1-U17-R07",
"en": "blanket",
"zh": "毛毯"
},
{
"id": "A1-U17-R08",
"en": "shampoo",
"zh": "洗发水"
},
{
"id": "A1-U17-R09",
"en": "lamp",
"zh": "台灯"
},
{
"id": "A1-U17-R10",
"en": "repair",
"zh": "修理"
},
{
"id": "A1-U17-R11",
"en": "moment",
"zh": "片刻"
},
{
"id": "A1-U17-R12",
"en": "give",
"zh": "给"
},
{
"id": "A1-U17-R13",
"en": "break",
"zh": "弄坏"
},
{
"id": "A1-U17-R14",
"en": "hole",
"zh": "洞"
},
{
"id": "A1-U17-R15",
"en": "hear",
"zh": "听见"
},
{
"id": "A1-U17-R16",
"en": "matter",
"zh": "事情(What's the matter?"
},
{
"id": "A1-U17-R17",
"en": "happen",
"zh": "发生"
},
{
"id": "A1-U17-R18",
"en": "lock",
"zh": "锁"
},
{
"id": "A1-U17-R19",
"en": "extra",
"zh": "额外的"
},
{
"id": "A1-U17-R20",
"en": "rude",
"zh": "粗鲁的"
},
{
"id": "A1-U17-R21",
"en": "strange",
"zh": "奇怪的"
},
{
"id": "A1-U17-R22",
"en": "awake",
"zh": "醒着的"
},
{
"id": "A1-U17-R23",
"en": "hard",
"zh": "硬的"
},
{
"id": "A1-U17-R24",
"en": "bad",
"zh": "坏的;糟糕的"
},
{
"id": "A1-U17-R25",
"en": "call",
"zh": "打电话"
}
],
"segments": [
{
"id": "A1-U17-S1",
"title": "房间里的问题",
"minutes": 13,
"itemIds": [
"A1-U17-P01",
"A1-U17-P02",
"A1-U17-W01",
"A1-U17-W02",
"A1-U17-P08"
],
"listening": {
"text": "Hello, this is room 1206. There's no hot water. And the TV doesn't work. OK, sir. What's your room number again? My room number is 1206.",
"question": "客人房间有什么问题?",
"options": [
"没有热水,电视坏了",
"太吵,门打不开",
"毛巾脏了"
]
},
"speaking": [
{
"text": "There's no hot water."
},
{
"text": "The TV doesn't work."
},
{
"text": "The chair is broken.",
"tip": "broken 读 /ˈbrəʊkən/"
},
{
"text": "The towels are dirty."
},
{
"text": "My room number is 1206."
}
],
"reading": {
"text": "Room problems\nThe lamp on the desk doesn't work.\nThe couch is dirty.\nThere's a hole in the wall.\nThe shower has no hot water.\nThere's no toilet paper and no shampoo.\nCall 0 and give us your room number. We can repair everything soon!",
"question": "客人发现问题时应该怎么做?",
"options": [
"拨 0 并说房间号",
"自己修理",
"去前台排队"
]
},
"writing": {
"prompt": "写两句话:说出房间号,再说没有热水。",
"example": "My room number is 1206. There's no hot water.",
"itemIds": [
"A1-U17-P08",
"A1-U17-P01"
]
},
"independent": {
"prompt": "用英语打电话给前台,说你房间的两个问题。",
"itemIds": [
"A1-U17-P08",
"A1-U17-P02",
"A1-U17-W01",
"A1-U17-W02"
]
}
},
{
"id": "A1-U17-S2",
"title": "请求帮助",
"minutes": 12,
"itemIds": [
"A1-U17-P03",
"A1-U17-P05",
"A1-U17-P07",
"A1-U17-P10",
"A1-U17-P11"
],
"listening": {
"text": "Hi, can I have another towel? And could you bring me some water? Sure. Anything else? Can you send someone? The light is broken. Yes, in a moment. Thank you for your help.",
"question": "客人要了哪两样东西?",
"options": [
"毛巾和水",
"毛毯和水",
"毛巾和洗发水"
]
},
"speaking": [
{
"text": "Can I have another towel?"
},
{
"text": "Can you send someone?"
},
{
"text": "Could you bring me some water?",
"tip": "Could you 常连读成 /kʊdʒu/"
},
{
"text": "Please clean my room."
},
{
"text": "Thank you for your help."
}
],
"reading": {
"text": "Hotel help\nNeed something extra? Call 0.\n· Towels, blankets and shampoo: we can bring them to your room.\n· Something is broken? We can send someone.\n· Please clean my room: put this card on your door.\n· Don't break the lock! If you can't open the door, call us.",
"question": "想让酒店打扫房间,应该怎么做?",
"options": [
"把卡挂在门上",
"拨 0",
"去前台"
]
},
"writing": {
"prompt": "写两句话:再要一条毛巾,再请人拿点水。",
"example": "Can I have another towel? Could you bring me some water?",
"itemIds": [
"A1-U17-P03",
"A1-U17-P07"
]
},
"independent": {
"prompt": "用英语请酒店派人来修电视,最后道谢。",
"itemIds": [
"A1-U17-P05",
"A1-U17-P02",
"A1-U17-P11"
]
}
},
{
"id": "A1-U17-S3",
"title": "换房间",
"minutes": 12,
"itemIds": [
"A1-U17-P04",
"A1-U17-P06",
"A1-U17-P09"
],
"listening": {
"text": "What's the matter? It's too noisy. I can hear music from the next room. Can I change rooms? Sure. Here is the key to room 1508. ... Hello? I can't open the door.",
"question": "客人为什么要换房间?",
"options": [
"太吵了",
"门打不开",
"房间太脏"
]
},
"speaking": [
{
"text": "It's too noisy."
},
{
"text": "Can I change rooms?"
},
{
"text": "I can't open the door."
}
],
"reading": {
"text": "A bad night\nWhat happened? I can't sleep. My room is too noisy. There's a strange noise from the wall, and I'm awake at 3 am. The bed is very hard too. I call the front desk, but the man is rude. He says, \"No, you can't change rooms.\" Tomorrow I can ask again.",
"question": "写这段话的人为什么睡不着?",
"options": [
"房间太吵,床也太硬",
"房间太冷",
"灯坏了"
]
},
"writing": {
"prompt": "写两句话:说太吵了,问能不能换房间。",
"example": "It's too noisy. Can I change rooms?",
"itemIds": [
"A1-U17-P04",
"A1-U17-P06"
]
},
"independent": {
"prompt": "你拿到新房卡却打不开门,用英语向前台说明。",
"itemIds": [
"A1-U17-P09",
"A1-U17-P08",
"A1-U17-P05"
]
}
}
],
"scenes": [
{
"id": "A1-U17-C1",
"kind": "main",
"title": "打电话给前台",
"learnerRole": "客人",
"aiRole": "前台",
"setting": "你刚入住,发现房间有几个问题,打电话给前台。",
"turns": [
{
"ai": "Front desk. How can I help you?",
"goal": "先说房间号",
"model": "Hello. My room number is 1206.",
"zh": "你好,我的房间号是 1206。",
"itemIds": [
"A1-U17-P08"
]
},
{
"ai": "Yes, Mr Chen. What's the matter?",
"goal": "说没有热水",
"model": "There's no hot water.",
"zh": "没有热水。",
"itemIds": [
"A1-U17-P01"
]
},
{
"ai": "I'm sorry. Anything else?",
"goal": "说电视也坏了",
"model": "And the TV doesn't work.",
"zh": "电视也坏了。",
"itemIds": [
"A1-U17-P02"
]
},
{
"ai": "OK. What can we do for you?",
"goal": "请前台派人来",
"model": "Can you send someone?",
"zh": "能派个人来吗?",
"itemIds": [
"A1-U17-P05"
]
},
{
"ai": "Yes, in ten minutes.",
"goal": "道谢",
"model": "Thank you for your help.",
"zh": "谢谢你的帮助。",
"itemIds": [
"A1-U17-P11"
]
}
]
},
{
"id": "A1-U17-C2",
"kind": "variant",
"title": "房间太吵要换房",
"learnerRole": "客人",
"aiRole": "前台",
"setting": "半夜房间很吵,你到前台要求换房间。",
"turns": [
{
"ai": "Good evening. Can I help you?",
"goal": "说房间太吵",
"model": "Yes. My room is too noisy.",
"zh": "是的,我的房间太吵了。",
"itemIds": [
"A1-U17-P04"
]
},
{
"ai": "Oh, I'm sorry. Is it the music?",
"goal": "问能不能换房间",
"model": "Yes. Can I change rooms?",
"zh": "是的。我能换个房间吗?",
"itemIds": [
"A1-U17-P06"
]
},
{
"ai": "Sure. Here is the key to room 815.",
"goal": "说房间也有点脏",
"model": "Thank you. And my room is a little dirty.",
"zh": "谢谢。我的房间也有点脏。",
"itemIds": [
"A1-U17-W02"
]
},
{
"ai": "Sorry about that. We can clean it tomorrow.",
"goal": "请明天早上打扫房间",
"model": "OK. Please clean my room in the morning.",
"zh": "好的。请早上打扫我的房间。",
"itemIds": [
"A1-U17-P10"
]
},
{
"ai": "Yes. Anything else?",
"goal": "请给你拿点水",
"model": "Could you bring me some water?",
"zh": "能给我拿点水吗?",
"itemIds": [
"A1-U17-P07"
]
}
]
},
{
"id": "A1-U17-C3",
"kind": "variant",
"title": "进不去房间",
"learnerRole": "客人",
"aiRole": "前台",
"setting": "你回到酒店,房门打不开,房间里的东西也有问题。",
"turns": [
{
"ai": "Hello again! Is everything OK?",
"goal": "说你打不开门",
"model": "No. I can't open the door.",
"zh": "不好。我打不开门。",
"itemIds": [
"A1-U17-P09"
]
},
{
"ai": "Oh, the key card is broken. Here is a new one.",
"goal": "再要一条毛巾",
"model": "Thanks. Can I have another towel?",
"zh": "谢谢。可以再给我一条毛巾吗?",
"itemIds": [
"A1-U17-P03"
]
},
{
"ai": "Yes. Anything else?",
"goal": "说椅子坏了",
"model": "The chair in my room is broken.",
"zh": "我房间的椅子坏了。",
"itemIds": [
"A1-U17-W01"
]
},
{
"ai": "I can send someone. What's your room number?",
"goal": "说房间号",
"model": "My room number is 815.",
"zh": "我的房间号是 815。",
"itemIds": [
"A1-U17-P08"
]
},
{
"ai": "OK, in a moment.",
"goal": "道谢",
"model": "Thank you for your help.",
"zh": "谢谢你的帮助。",
"itemIds": [
"A1-U17-P11"
]
}
]
}
],
"tasks": [
{
"id": "A1-U17-T1",
"sceneId": "A1-U17-C1",
"goal": "打电话给前台说明房间问题并请人来修",
"itemIds": [
"A1-U17-P08",
"A1-U17-P01",
"A1-U17-P02",
"A1-U17-P05",
"A1-U17-P11"
],
"slots": [
"房间号",
"问题",
"派人"
]
},
{
"id": "A1-U17-T2",
"sceneId": "A1-U17-C2",
"goal": "当面投诉房间太吵并换房",
"itemIds": [
"A1-U17-P04",
"A1-U17-P06",
"A1-U17-W02",
"A1-U17-P10",
"A1-U17-P07"
],
"slots": [
"问题",
"换房",
"其他请求"
]
},
{
"id": "A1-U17-T3",
"sceneId": "A1-U17-C3",
"goal": "进不去房间时处理多个小问题",
"itemIds": [
"A1-U17-P09",
"A1-U17-P03",
"A1-U17-W01",
"A1-U17-P08",
"A1-U17-P11"
],
"slots": [
"房门",
"毛巾",
"损坏"
]
}
],
"materials": [
{
"id": "A1-U17-M1",
"mode": "listening",
"title": "打给前台报房间问题",
"text": "Hello, front desk? This is room 1206. I'm sorry, but there are some problems, and I can't sleep. There's no hot water, and the TV is broken; it doesn't work. The lamp on the desk is broken too. The room is a little dirty, and there is a hole in the wall. It's also very noisy — I can hear a strange noise all night, so I'm still awake. Can you send someone to repair these things and clean the room? Could you bring me another blanket, some shampoo and a new chair? Can I change rooms? One moment — sorry, that's a lot. Thank you for your help.",
"glosses": {
"send": "派(人)",
"still": "仍然",
"things": "东西"
},
"questions": [
{
"type": "gist",
"question": "客人打电话主要是为了什么?",
"options": [
"报告房间的问题",
"订早餐",
"问路"
]
},
{
"type": "detail",
"question": "下面哪个是客人说的问题?",
"options": [
"没有热水,电视坏了",
"床太小",
"房间太贵"
]
}
]
},
{
"id": "A1-U17-M2",
"mode": "reading",
"title": "读一段对话:报修",
"text": "Guest: Hi, my room number is 305. The TV doesn't work, and there's no hot water.\nAnna: I'm so sorry. What's the matter? I'll send someone to repair it now.\nGuest: Thank you. There's also a strange noise in the wall. What happened? I can't sleep; I'm still awake.\nAnna: Sorry for the trouble. Can I bring you anything?\nGuest: Yes, please. Can I have another blanket, some shampoo, and paper? And the lamp is broken.\nAnna: Of course. We'll give you a new lamp and repair the door lock too.\nGuest: Thank you. The couch has a hole in it, and the chair is broken. Sorry, that's a lot!\nAnna: No problem. Some guests are rude, but you are very kind. I'll fix everything today.\nGuest: One moment — could you bring an extra towel too?\nAnna: Sure, I'll bring it now.\nGuest: Thank you for your help.",
"glosses": {
"fix": "修理,解决",
"trouble": "麻烦",
"course": "of course 当然",
"still": "仍然"
},
"questions": [
{
"type": "detail",
"question": "客人房间里什么坏了?",
"options": [
"电视和台灯",
"空调",
"窗户"
]
},
{
"type": "detail",
"question": "客人还额外要了什么?",
"options": [
"一条毛巾",
"一双鞋",
"一份报纸"
]
}
]
}
],
"excluded": [
{
"en": "pillow",
"reason": "B1A1 用 blanket、towel 这类词"
},
{
"en": "heater",
"reason": "B1A1 用 no hot water / it's cold 表达"
}
]
}