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

955 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-U16",
"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": "239",
"use": "active"
},
{
"id": "61",
"use": "active",
"reason": "用 It's raining 描述眼前的天气"
},
{
"id": "69",
"use": "active",
"reason": "只用 Is it going to rain? 问天气预报,这是出门前必问的一句"
},
{
"id": "117",
"use": "active"
},
{
"id": "161",
"use": "receptive"
}
],
"coreItems": [
{
"id": "A1-U16-P01",
"type": "phrase",
"en": "What's the weather like today?",
"zh": "今天天气怎么样?",
"sceneWord": false,
"match": [
[
"what's the weather like",
"what is the weather like"
]
],
"example": {
"en": "What's the weather like in Tokyo?",
"zh": "东京天气怎么样?"
},
"review": {
"prompt": "问朋友今天天气怎么样。"
}
},
{
"id": "A1-U16-P02",
"type": "phrase",
"en": "It's sunny.",
"zh": "天气晴朗。",
"sceneWord": false,
"match": [
[
"sunny",
"cloudy",
"rainy",
"snowy"
]
],
"example": {
"en": "It's cloudy and cool today.",
"zh": "今天多云,挺凉快。"
},
"review": {
"prompt": "说今天是晴天。"
}
},
{
"id": "A1-U16-P03",
"type": "phrase",
"en": "It's raining.",
"zh": "正在下雨。",
"sceneWord": false,
"match": [
[
"raining",
"snowing"
]
],
"example": {
"en": "It's raining outside.",
"zh": "外面在下雨。"
},
"review": {
"prompt": "说外面正在下雨。"
}
},
{
"id": "A1-U16-W01",
"type": "word",
"en": "warm",
"zh": "暖和的",
"sceneWord": false,
"match": [
[
"warm"
]
],
"example": {
"en": "It's warm in spring.",
"zh": "春天很暖和。"
},
"review": {
"prompt": "说今天很暖和。"
}
},
{
"id": "A1-U16-W02",
"type": "word",
"en": "cool",
"zh": "凉快的",
"sceneWord": false,
"match": [
[
"cool"
]
],
"example": {
"en": "The evening is cool.",
"zh": "晚上很凉快。"
},
"review": {
"prompt": "说早上挺凉快。"
}
},
{
"id": "A1-U16-P04",
"type": "phrase",
"en": "It's very cold outside.",
"zh": "外面很冷。",
"sceneWord": false,
"match": [
[
"cold outside",
"hot outside"
]
],
"example": {
"en": "It's very hot outside today.",
"zh": "今天外面很热。"
},
"review": {
"prompt": "说外面很热。"
}
},
{
"id": "A1-U16-P05",
"type": "phrase",
"en": "What's the temperature?",
"zh": "气温多少度?",
"sceneWord": true,
"sceneReason": "temperature 为 A2,旅行前查天气时必需",
"match": [
[
"temperature"
]
],
"example": {
"en": "What's the temperature in London?",
"zh": "伦敦气温多少度?"
},
"review": {
"prompt": "问现在气温多少度。"
}
},
{
"id": "A1-U16-P06",
"type": "phrase",
"en": "Take an umbrella.",
"zh": "带把伞。",
"sceneWord": false,
"match": [
[
"take an umbrella",
"take your umbrella"
]
],
"example": {
"en": "It's raining. Take your umbrella.",
"zh": "下雨了,带上你的伞。"
},
"review": {
"prompt": "提醒朋友带伞。"
}
},
{
"id": "A1-U16-P07",
"type": "phrase",
"en": "Put on your coat.",
"zh": "穿上外套。",
"sceneWord": false,
"match": [
[
"put on"
]
],
"example": {
"en": "Put on your hat. It's cold.",
"zh": "戴上帽子,很冷。"
},
"review": {
"prompt": "提醒孩子穿上外套。"
}
},
{
"id": "A1-U16-P08",
"type": "phrase",
"en": "Take off your jacket.",
"zh": "把夹克脱了吧。",
"sceneWord": false,
"match": [
[
"take off"
]
],
"example": {
"en": "It's hot. Take off your coat.",
"zh": "很热,把外套脱了吧。"
},
"review": {
"prompt": "屋里很热,让朋友脱掉外套。"
}
},
{
"id": "A1-U16-P09",
"type": "phrase",
"en": "I like summer.",
"zh": "我喜欢夏天。",
"sceneWord": false,
"match": [
[
"summer",
"winter",
"spring",
"autumn"
]
],
"example": {
"en": "I don't like winter.",
"zh": "我不喜欢冬天。"
},
"review": {
"prompt": "说你最喜欢哪个季节。"
}
},
{
"id": "A1-U16-P10",
"type": "phrase",
"en": "Is it going to rain?",
"zh": "会下雨吗?",
"sceneWord": false,
"match": [
[
"going to rain",
"going to snow"
]
],
"example": {
"en": "Is it going to snow tomorrow?",
"zh": "明天会下雪吗?"
},
"review": {
"prompt": "出门前问会不会下雨。"
}
},
{
"id": "A1-U16-P11",
"type": "phrase",
"en": "The wind is strong.",
"zh": "风很大。",
"sceneWord": false,
"match": [
[
"wind"
]
],
"example": {
"en": "The wind is strong today. Take a coat.",
"zh": "今天风很大,带件外套。"
},
"review": {
"prompt": "说今天风很大。"
}
}
],
"receptiveWords": [
{
"id": "A1-U16-R01",
"en": "rainy",
"zh": "下雨的"
},
{
"id": "A1-U16-R02",
"en": "cloudy",
"zh": "多云的"
},
{
"id": "A1-U16-R03",
"en": "snowy",
"zh": "下雪的"
},
{
"id": "A1-U16-R04",
"en": "foggy",
"zh": "有雾的"
},
{
"id": "A1-U16-R05",
"en": "snow",
"zh": "雪;下雪"
},
{
"id": "A1-U16-R06",
"en": "cloud",
"zh": "云"
},
{
"id": "A1-U16-R07",
"en": "sun",
"zh": "太阳"
},
{
"id": "A1-U16-R08",
"en": "sunshine",
"zh": "阳光"
},
{
"id": "A1-U16-R09",
"en": "sky",
"zh": "天空"
},
{
"id": "A1-U16-R10",
"en": "moon",
"zh": "月亮"
},
{
"id": "A1-U16-R11",
"en": "dry",
"zh": "干燥的"
},
{
"id": "A1-U16-R12",
"en": "wet",
"zh": "湿的"
},
{
"id": "A1-U16-R13",
"en": "storm",
"zh": "暴风雨"
},
{
"id": "A1-U16-R14",
"en": "degree",
"zh": "度"
},
{
"id": "A1-U16-R15",
"en": "windy",
"zh": "刮风的"
},
{
"id": "A1-U16-R16",
"en": "spring",
"zh": "春天"
},
{
"id": "A1-U16-R17",
"en": "autumn",
"zh": "秋天"
},
{
"id": "A1-U16-R18",
"en": "winter",
"zh": "冬天"
},
{
"id": "A1-U16-R19",
"en": "blow",
"zh": "吹"
},
{
"id": "A1-U16-R20",
"en": "scarf",
"zh": "围巾"
},
{
"id": "A1-U16-R21",
"en": "sunglasses",
"zh": "墨镜"
},
{
"id": "A1-U16-R22",
"en": "tree",
"zh": "树"
},
{
"id": "A1-U16-R23",
"en": "flower",
"zh": "花"
},
{
"id": "A1-U16-R24",
"en": "bird",
"zh": "鸟"
},
{
"id": "A1-U16-R25",
"en": "grow",
"zh": "生长"
},
{
"id": "A1-U16-R26",
"en": "jump",
"zh": "跳"
},
{
"id": "A1-U16-R27",
"en": "terrible",
"zh": "糟糕的"
},
{
"id": "A1-U16-R28",
"en": "wonderful",
"zh": "极好的"
},
{
"id": "A1-U16-R29",
"en": "bright",
"zh": "明亮的"
},
{
"id": "A1-U16-R30",
"en": "idea",
"zh": "主意"
},
{
"id": "A1-U16-R31",
"en": "really",
"zh": "真的"
}
],
"segments": [
{
"id": "A1-U16-S1",
"title": "今天天气怎么样",
"minutes": 13,
"itemIds": [
"A1-U16-P01",
"A1-U16-P02",
"A1-U16-P03",
"A1-U16-P05",
"A1-U16-P04"
],
"listening": {
"text": "What's the weather like today? It's sunny in the morning, but it's cloudy in the afternoon. What's the temperature? Twenty-five degrees.",
"question": "下午天气怎么样?",
"options": [
"多云",
"晴天",
"下雨"
]
},
"speaking": [
{
"text": "What's the weather like today?"
},
{
"text": "It's sunny."
},
{
"text": "It's raining.",
"tip": "raining 的 ai 读 /eɪ/"
},
{
"text": "What's the temperature?"
},
{
"text": "It's very cold outside."
}
],
"reading": {
"text": "Weather in five cities\nLondon: rainy, 12 degrees\nBeijing: sunny and dry, 30 degrees\nTokyo: cloudy and windy, 18 degrees\nSydney: foggy in the morning, then sunshine, 22 degrees\nSeoul: snowy, -3 degrees. There is ice on the roads!",
"question": "哪个城市在下雪?",
"options": [
"首尔",
"伦敦",
"东京"
]
},
"writing": {
"prompt": "写两句话:问今天天气怎么样,再说外面在下雨。",
"example": "What's the weather like today? It's raining.",
"itemIds": [
"A1-U16-P01",
"A1-U16-P03"
]
},
"independent": {
"prompt": "看看窗外,用英语说说今天的天气和气温。",
"itemIds": [
"A1-U16-P02",
"A1-U16-P04",
"A1-U16-P05"
]
}
},
{
"id": "A1-U16-S2",
"title": "出门穿什么",
"minutes": 12,
"itemIds": [
"A1-U16-W01",
"A1-U16-W02",
"A1-U16-P06",
"A1-U16-P07",
"A1-U16-P08",
"A1-U16-P11"
],
"listening": {
"text": "Is it cold? No, it's warm today. Take off your jacket. But take an umbrella. It's cloudy. And in the evening it's cool, so put on a coat.",
"question": "晚上天气怎么样?",
"options": [
"凉快",
"暖和",
"很热"
]
},
"speaking": [
{
"text": "It's warm today."
},
{
"text": "The evening is cool."
},
{
"text": "Take an umbrella."
},
{
"text": "Put on your coat."
},
{
"text": "Take off your jacket."
},
{
"text": "The wind is strong."
}
],
"reading": {
"text": "What to wear\nSunny and hot: wear shorts, a T-shirt and sunglasses. Take water too.\nRainy and wet: take an umbrella and wear a coat.\nCold and snowy: put on a warm coat, a hat and a scarf.\nWindy: the wind can blow your hat away!",
"question": "刮风时要注意什么?",
"options": [
"帽子会被吹走",
"要戴墨镜",
"要穿短裤"
]
},
"writing": {
"prompt": "写两句话:提醒朋友带伞、穿上外套。",
"example": "Take an umbrella. Put on your coat.",
"itemIds": [
"A1-U16-P06",
"A1-U16-P07"
]
},
"independent": {
"prompt": "朋友要出门,今天风很大很冷,用英语提醒他穿什么。",
"itemIds": [
"A1-U16-P11",
"A1-U16-P07",
"A1-U16-P04"
]
}
},
{
"id": "A1-U16-S3",
"title": "季节和天气预报",
"minutes": 12,
"itemIds": [
"A1-U16-P09",
"A1-U16-P10"
],
"listening": {
"text": "Is it going to rain tomorrow? No, it's going to be sunny. Great! I like summer because I can swim every day.",
"question": "说话人为什么喜欢夏天?",
"options": [
"可以每天游泳",
"天气凉快",
"可以看雪"
]
},
"speaking": [
{
"text": "I like summer."
},
{
"text": "Is it going to rain?"
},
{
"text": "I don't like winter. It's very cold."
}
],
"reading": {
"text": "Spring, summer, autumn and winter in my city\nSpring is warm. Trees and flowers grow, and birds sing.\nSummer is very hot. The sun is bright, and there are no clouds in the blue sky.\nAutumn is cool and dry. I love it more than summer.\nWinter is terrible: there are storms and it snows. But children jump in the snow and look at the moon at night. It's wonderful for them!",
"question": "作者更喜欢哪个季节?",
"options": [
"秋天",
"夏天",
"冬天"
]
},
"writing": {
"prompt": "写两句话:说你喜欢哪个季节,再问明天会不会下雨。",
"example": "I like autumn. Is it going to rain tomorrow?",
"itemIds": [
"A1-U16-P09",
"A1-U16-P10"
]
},
"independent": {
"prompt": "用英语说说你最喜欢的季节和那时的天气。",
"itemIds": [
"A1-U16-P09",
"A1-U16-P02",
"A1-U16-W01"
]
}
}
],
"scenes": [
{
"id": "A1-U16-C1",
"kind": "main",
"title": "出门前问天气",
"learnerRole": "游客",
"aiRole": "酒店前台",
"setting": "你住在酒店,今天要出去玩,先问问前台天气。",
"turns": [
{
"ai": "Good morning! Going out today?",
"goal": "问今天天气怎么样",
"model": "Yes. What's the weather like today?",
"zh": "是的。今天天气怎么样?",
"itemIds": [
"A1-U16-P01"
]
},
{
"ai": "It's sunny now, but it's cloudy later.",
"goal": "问气温多少度",
"model": "What's the temperature?",
"zh": "气温多少度?",
"itemIds": [
"A1-U16-P05"
]
},
{
"ai": "About twenty degrees. It's warm.",
"goal": "问会不会下雨",
"model": "Is it going to rain?",
"zh": "会下雨吗?",
"itemIds": [
"A1-U16-P10"
]
},
{
"ai": "Maybe in the evening.",
"goal": "说那你带上伞",
"model": "OK. I can take an umbrella.",
"zh": "好的,我带把伞。",
"itemIds": [
"A1-U16-P06"
]
},
{
"ai": "Good idea. And the wind is strong by the sea.",
"goal": "说你穿上外套",
"model": "Thanks. I can put on my coat.",
"zh": "谢谢,我穿上外套。",
"itemIds": [
"A1-U16-P07"
]
}
]
},
{
"id": "A1-U16-C2",
"kind": "variant",
"title": "和朋友视频聊天气",
"learnerRole": "你",
"aiRole": "在外国的朋友",
"setting": "你和住在国外的朋友视频,互相问天气。",
"turns": [
{
"ai": "Hi! What's the weather like there?",
"goal": "说外面正在下雨,很冷",
"model": "It's raining. It's very cold outside.",
"zh": "在下雨,外面很冷。",
"itemIds": [
"A1-U16-P03",
"A1-U16-P04"
]
},
{
"ai": "Oh no! Here it's sunny and hot.",
"goal": "问那边气温多少度",
"model": "What's the temperature?",
"zh": "气温多少度?",
"itemIds": [
"A1-U16-P05"
]
},
{
"ai": "Thirty-two degrees! I like summer.",
"goal": "说你喜欢冬天,不喜欢夏天",
"model": "I don't like summer. I like winter. It's cool.",
"zh": "我不喜欢夏天,我喜欢冬天,很凉快。",
"itemIds": [
"A1-U16-P09",
"A1-U16-W02"
]
},
{
"ai": "Really? Is it going to snow there?",
"goal": "说风很大,但是不会下雪",
"model": "No, but the wind is strong.",
"zh": "不会,但是风很大。",
"itemIds": [
"A1-U16-P11"
]
},
{
"ai": "Put on your coat, then!",
"goal": "让朋友脱掉外套",
"model": "And you, take off your jacket!",
"zh": "你呢,把夹克脱了吧!",
"itemIds": [
"A1-U16-P08"
]
}
]
},
{
"id": "A1-U16-C3",
"kind": "variant",
"title": "带孩子出门",
"learnerRole": "家长",
"aiRole": "孩子",
"setting": "你要带孩子去公园,孩子不想多穿衣服。",
"turns": [
{
"ai": "Can we go to the park now?",
"goal": "说外面很冷",
"model": "Yes, but it's very cold outside.",
"zh": "可以,但是外面很冷。",
"itemIds": [
"A1-U16-P04"
]
},
{
"ai": "I don't want my coat!",
"goal": "让孩子穿上外套",
"model": "Put on your coat, please.",
"zh": "请穿上外套。",
"itemIds": [
"A1-U16-P07"
]
},
{
"ai": "OK... Is it going to rain?",
"goal": "说会下雨,带把伞",
"model": "Yes, it's going to rain. Take an umbrella.",
"zh": "会下雨,带把伞。",
"itemIds": [
"A1-U16-P10",
"A1-U16-P06"
]
},
{
"ai": "Look! It's sunny now!",
"goal": "说现在暖和了",
"model": "Yes, it's sunny and warm now.",
"zh": "是啊,现在出太阳了,很暖和。",
"itemIds": [
"A1-U16-W01",
"A1-U16-P02"
]
},
{
"ai": "I'm hot!",
"goal": "让孩子把夹克脱了",
"model": "OK, take off your jacket.",
"zh": "好,把夹克脱了吧。",
"itemIds": [
"A1-U16-P08"
]
}
]
}
],
"tasks": [
{
"id": "A1-U16-T1",
"sceneId": "A1-U16-C1",
"goal": "出门前问清天气并决定带什么",
"itemIds": [
"A1-U16-P01",
"A1-U16-P05",
"A1-U16-P10",
"A1-U16-P06",
"A1-U16-P07"
],
"slots": [
"天气",
"气温",
"要带的东西"
]
},
{
"id": "A1-U16-T2",
"sceneId": "A1-U16-C2",
"goal": "和朋友比较两地的天气和季节",
"itemIds": [
"A1-U16-P03",
"A1-U16-P04",
"A1-U16-P05",
"A1-U16-P09",
"A1-U16-P11",
"A1-U16-P08",
"A1-U16-W02"
],
"slots": [
"天气",
"气温",
"喜欢的季节"
]
},
{
"id": "A1-U16-T3",
"sceneId": "A1-U16-C3",
"goal": "根据天气提醒孩子穿什么",
"itemIds": [
"A1-U16-P04",
"A1-U16-P07",
"A1-U16-P10",
"A1-U16-P06",
"A1-U16-W01",
"A1-U16-P02",
"A1-U16-P08"
],
"slots": [
"冷热",
"下雨",
"穿脱"
]
}
],
"materials": [
{
"id": "A1-U16-M1",
"mode": "listening",
"title": "天气预报",
"text": "Good morning! Here is today's weather. In spring the sky is bright and blue, with a warm sun and sunshine. This morning it is dry, about twenty degrees; take your sunglasses. In the afternoon clouds will grow, the wind will blow strong, and it will be a windy, wet day — it is going to rain. Take an umbrella. Tonight a storm will come, so it will be cold; put on your coat and a scarf. Tomorrow the rainy sky will go away and it will be sunny again. The trees, flowers and birds love the sun. Have a wonderful day!",
"glosses": {
"blue": "蓝色的",
"away": "go away 离开、消散"
},
"questions": [
{
"type": "gist",
"question": "这是什么内容?",
"options": [
"今天的天气预报",
"一条新闻",
"一个广告"
]
},
{
"type": "detail",
"question": "下午天气怎么样?",
"options": [
"刮大风,要下雨",
"一直是晴天",
"下雪"
]
}
]
},
{
"id": "A1-U16-M2",
"mode": "reading",
"title": "读一段对话:聊天气和出行",
"text": "Mia: What's the weather like today? I want to go to the park and see the flowers and birds.\nBen: The sky is cloudy now, and it's wet after the rain. It's not a bright day.\nMia: Is a storm coming? Should I take an umbrella?\nBen: Yes. The wind will blow hard — it's windy and cold. Put on a coat and a scarf.\nMia: What a terrible day! What about tomorrow?\nBen: Tomorrow the sun will grow bright and the sky will be blue and dry. A wonderful day for the beach!\nMia: Great idea! In summer I love the sunshine, the sea and the trees.\nBen: Me too. Let's go early, before the clouds come back.\nMia: Really? Then let's jump on the first bus. Perfect!",
"glosses": {
"perfect": "完美的",
"blue": "蓝色的",
"hard": "用力地"
},
"questions": [
{
"type": "detail",
"question": "Ben 建议 Mia 今天带什么?",
"options": [
"雨伞、大衣和围巾",
"相机",
"什么都不用带"
]
},
{
"type": "detail",
"question": "明天天气怎么样?",
"options": [
"晴朗干燥",
"下雨",
"刮大风"
]
}
]
}
],
"excluded": [
{
"en": "season",
"reason": "B1A1 直接说 spring、summer、autumn、winter"
},
{
"en": "forecast",
"reason": "B1A1 用 Is it going to rain? 表达"
}
]
}