Files
English/kouyu_english/assets/courses/A0/a0-10.json
T
shenleiandClaude Opus 5 6b42b7abc3 feat: 独立词库、三向认词与当日快闪复习
## 独立词库

理解词原先只能跟着课程单元走,学完 A0 十课词汇量只增加约 22 个实词,
不足以解决"记不住单词"。新增一份独立词库 assets/words/wordbank.json
(2748 词,A1–B1),挂进 receptiveWordRegistry 的合成单元 bank-A1/A2/B1,
完全复用理解词已有的状态机,不依赖课程进度,第一天就能用。

数据来源、许可与合成规则记在 tool/words/DATA-NOTE.md:CEFR-J 定等级、
公开词书提供音标、AI 重写全部释义并生成例句、OpenSubtitles 提供口语词频。
词书部分为 CC BY-NC-SA 4.0 且上游权利不明,仅供个人非商用;
若要分发或上架,须替换音标那一列。

## 背单词机制

- 间隔阶梯 1/3/7/15/30/60/120 天,连续答对上一级,答错回第一级。
  原先首次答对后要等 7 天才复习,正是"第二天就忘"的成因。
- 每日新词上限(10 分钟 8 个 / 20 分钟 15 个 / 30 分钟 20 个)。
  阶梯第一级是次日,今天引入的新词就是明天的工作量。
- 新词按口语频率发放,不再按字母序 —— A1 从 a.m./ability 变成 no/not/know/just。
- 三个方向按层级轮转:看词(英→中)→ 听词(音→中)→ 想词(中→英)。
  想词题仍是选择题,不要求产出,理解词定位不变,不进升级分母。
- 单词页独立成 tab,首页今日任务卡下方给一张认词入口卡。

## 用法对照

课程 JSON 增加 usage 字段(when/reply/swap/confuse):一个句型用在什么场合、
对方通常怎么答、还能怎么说、跟哪个学过的句型容易混。
知道 How are you? 的意思,不等于知道它不是用来问名字的。

## 复习流

- 当日快闪(recap)独立成队列,不占复习预算,也不计入积压。
- 只发放当日预算内的量,其余保持到期状态等下次,不悄悄丢弃或改期。
- 答错的项隔几题后回来,而不是立刻重问。

测试 296 通过,flutter analyze 干净。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 23:54:17 +09:00

218 lines
5.8 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.
{
"id": "a0-10",
"level": "A0",
"status": "approved",
"title": "A0 综合任务",
"canDo": "没听清时请对方重复,并完成自我介绍、喜好和反问",
"categories": [],
"coreItems": [
{
"id": "A0-W24",
"type": "word",
"en": "water",
"zh": "水",
"match": [
[
"water"
]
],
"review": {
"prompt": "把“水”写成英文。",
"dictation": {
"sentence": "I like water.",
"meaning": "我喜欢喝水。"
}
}
},
{
"id": "A0-P20",
"type": "phrase",
"en": "Please say that again.",
"match": [
[
"please say that again",
"please speak slowly"
]
],
"review": {
"prompt": "请对方再说一次。",
"dictation": {
"sentence": "Please say that again.",
"meaning": "请再说一遍。"
}
},
"usage": {
"when": "没听清对方说了什么,请他再说一次。",
"reply": "对方会把刚才的话重说一遍,通常会慢一点。",
"confuse": [
{
"id": "A0-P04",
"note": "How do you spell that? 是听清了但不会写,这句是根本没听清。"
}
]
}
}
],
"segments": [
{
"id": "a0-10-a",
"title": "A0 综合任务",
"minutes": 12,
"itemIds": [
"A0-W24",
"A0-P20"
],
"grammarNote": "礼貌请求以 Please 开头:Please say that again.",
"vocabulary": [
{
"id": "a0-10-water",
"word": "water",
"meaning": "水",
"example": "I like water.",
"exampleMeaning": "我喜欢喝水。",
"ipa": "/ˈwɔːtər/"
},
{
"id": "a0-10-again",
"word": "Please say that again.",
"meaning": "请再说一遍。",
"example": "Please say that again.",
"exampleMeaning": "请再说一遍。"
},
{
"id": "a0-10-slowly",
"word": "Please speak slowly.",
"meaning": "请说慢一点。",
"example": "Please speak slowly.",
"exampleMeaning": "请说慢一点。"
}
],
"sceneId": "a0-10-a",
"listening": {
"text": "Do you like water? Sorry, please say that again.",
"question": "第二个人希望对方做什么?",
"options": [
"再说一遍",
"说慢一点",
"给他一杯水"
]
},
"speaking": [
{
"text": "Sorry, please say that again. I like water.",
"tip": "water 的 t 常读得很轻,像轻轻的 d。先清楚,不必快。"
}
],
"reading": {
"text": "Alex: Hi! Im Alex. Where are you from?\nShen: Sorry? Please say that again.\nAlex: Where are you from?\nShen: Im from Hong Kong. Do you like coffee?\nAlex: No, I dont. I like water.",
"question": "Alex 喜欢喝什么?",
"options": [
"Water",
"Coffee",
"Tea"
]
},
"writing": {
"prompt": "写姓名、地点和喜好三句,喜好用 water。",
"example": "Im Shen.\nIm from Hong Kong.\nI like water.",
"accept": [
[
"i am",
"my name is"
],
[
"from"
],
[
"like"
],
[
"water"
]
],
"hint": "分别写姓名、来自哪里和喜好三部分,喜好用 waterI like water."
},
"independent": {
"prompt": "不看帮助:先请对方再说一遍,再说姓名、喜欢喝什么,并反问对方。",
"help": "Please say that again. / Im … / I like water. / Do you like …?",
"accept": [
[
"say that again",
"speak slowly",
"pardon"
],
[
"i'm + #word",
"i am + #word",
"my name is",
"my name's"
],
[
"i like",
"i love"
],
[
"#question"
]
]
}
}
],
"scenes": [
{
"id": "a0-10-a",
"kind": "main",
"title": "A0 综合任务",
"goal": "请求重复或放慢语速,并完成基础沟通",
"turns": [
{
"ai": "Say: Please say that again.",
"aiZh": "请说:Please say that again(请再说一遍)。",
"goal": "请求对方重复",
"model": "Please say that again.",
"accept": [
"say that again",
"again",
"pardon"
]
},
{
"ai": "Say: Please speak slowly.",
"aiZh": "请说:Please speak slowly(请说慢一点)。",
"goal": "请求对方放慢语速",
"model": "Please speak slowly.",
"accept": [
"slowly",
"slow"
]
},
{
"ai": "Now ask me your name or where I am from.",
"aiZh": "现在请问我的名字或我来自哪里。",
"goal": "反问名字或来自哪里",
"model": "Whats your name?",
"accept": [
"what's your name",
"what is your name",
"where are you from",
"your name",
"#question"
]
},
{
"ai": "Tell me what you like to drink.",
"aiZh": "告诉我你喜欢喝什么。",
"goal": "说出你喜欢喝什么",
"model": "I like water.",
"accept": [
"i like",
"i love"
]
}
]
}
],
"tasks": [],
"materials": []
}