diff --git a/cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg b/cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg new file mode 100644 index 0000000..046bf52 Binary files /dev/null and b/cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg differ diff --git a/cache/page-config.json b/cache/page-config.json new file mode 100644 index 0000000..ed9a27d --- /dev/null +++ b/cache/page-config.json @@ -0,0 +1 @@ +{"_id":"current","home":{"searchPlaceholder":"搜索你喜欢的练习册...","categoryTabs":[{"id":"all","name":"全部"},{"id":"math","name":"数感启蒙"},{"id":"puzzle","name":"益智游戏"},{"id":"pinyin","name":"汉语拼音"},{"id":"chinese","name":"识字练字"},{"id":"english","name":"英语启蒙"},{"id":"craft","name":"创意手工"}],"ageBands":[{"key":"3-4","label":"3-4 岁","desc":"启蒙认知","path":"/pages/age/age"},{"key":"4-5","label":"4-5 岁","desc":"基础练习","path":"/pages/age/age"},{"key":"5-6","label":"5-6 岁","desc":"能力提升","path":"/pages/age/age"},{"key":"6-7","label":"6-7 岁","desc":"幼小衔接","path":"/pages/age/age"},{"key":"7-8","label":"7-8 岁","desc":"知识拓展","path":"/pages/age/age"}],"featured":[{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"handwriting-sheet","title":"自定义练字帖","subtitle":"自定义田字格练字帖","category":"chinese","ageBand":"4-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/handwriting-sheet.jpg","badge":"","path":"/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet","available":true},{"id":"letter-tracing-daily-checkin","title":"每日打卡","subtitle":"四宫格每日字母打卡练习","category":"english","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-daily-checkin.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin","available":true},{"id":"dot-connect","title":"数字点连线","subtitle":"按数字顺序连点成图","category":"puzzle","ageBand":"4-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/dot-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=dot-connect","available":true}],"hot":[{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"make-ten","title":"凑十法练习","subtitle":"20以内进位加法","category":"math","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=make-ten","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"counting-matching","title":"数一数,连一连","subtitle":"连线配对数字和数量","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/counting-matching.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=counting-matching","available":true}],"sections":[{"id":"math","title":"数感启蒙","subtitle":"","morePath":"/pages/category/category?id=math","items":[{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"make-ten","title":"凑十法练习","subtitle":"20以内进位加法","category":"math","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=make-ten","available":true},{"id":"number-decompose","title":"10以内数的分与合","subtitle":"把数字分一分,合一合","category":"math","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-decompose.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-decompose","available":true},{"id":"number-find","title":"找数字,涂一涂","subtitle":"找出目标数字并涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-find.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-find","available":true}]},{"id":"puzzle","title":"益智游戏","subtitle":"","morePath":"/pages/category/category?id=puzzle","items":[{"id":"position-coloring","title":"方位涂涂乐","subtitle":"观察位置,在方格中涂色","category":"puzzle","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/position-coloring.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=position-coloring","available":true},{"id":"line-recognition","title":"线条识别","subtitle":"认识不同线条,画对应线条","category":"puzzle","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/line-recognition.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=line-recognition","available":true},{"id":"grid-reasoning","title":"方格推理","subtitle":"推理出合并方格并连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/grid-reasoning.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=grid-reasoning","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"shape-symbol","title":"图形符号配对","subtitle":"根据图形画对应符号","category":"puzzle","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/shape-symbol.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=shape-symbol","available":true}]},{"id":"pinyin","title":"汉语拼音","subtitle":"","morePath":"/pages/category/category?id=pinyin","items":[{"id":"pinyin-tracing","title":"拼音描红练习","subtitle":"跟着描红学拼音字母","category":"pinyin","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing","available":true},{"id":"pinyin-dictation","title":"拼音默写练习","subtitle":"空白格子默写拼音字母","category":"pinyin","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation","available":true},{"id":"pinyin-tracing-v2","title":"拼音描红 8 列","subtitle":"跟写描红,声韵分块","category":"pinyin","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing-v2.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing-v2","available":true},{"id":"pinyin-dictation-v2","title":"拼音默写 8 列","subtitle":"空白默写,声韵分块","category":"pinyin","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation-v2.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation-v2","available":true},{"id":"pinyin-daily","title":"拼音每日打卡","subtitle":"四宫格每日打卡练习","category":"pinyin","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-daily.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily","available":true}]},{"id":"chinese","title":"识字练字","subtitle":"","morePath":"/pages/category/category?id=chinese","items":[{"id":"word-coloring-grid","title":"网格涂色","subtitle":"田字格涂色识字练习","category":"chinese","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-grid.jpg","badge":"","path":"/chinesePages/wordColoring/wordColoring?id=word-coloring-grid","available":true},{"id":"word-coloring-find","title":"找字涂色","subtitle":"在字海中找到目标字并涂色","category":"chinese","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-find.jpg","badge":"","path":"/chinesePages/wordColoring/wordColoring?id=word-coloring-find","available":true},{"id":"handwriting-sheet","title":"自定义练字帖","subtitle":"自定义田字格练字帖","category":"chinese","ageBand":"4-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/handwriting-sheet.jpg","badge":"","path":"/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet","available":true}]},{"id":"english","title":"英语启蒙","subtitle":"","morePath":"/pages/category/category?id=english","items":[{"id":"letter-tracing-daily-checkin","title":"每日打卡","subtitle":"四宫格每日字母打卡练习","category":"english","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-daily-checkin.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin","available":true},{"id":"letter-tracing-single","title":"默认字帖","subtitle":"配图、例句与描红","category":"english","ageBand":"4-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-single.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-single","available":true},{"id":"letter-tracing-case-pairing","title":"大小写对照","subtitle":"半组字母左大写右小写","category":"english","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-case-pairing.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing","available":true},{"id":"letter-tracing-half","title":"13字母半表","subtitle":"每行一个字母,13 字母半表","category":"english","ageBand":"5-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-half.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-half","available":true},{"id":"letter-tracing-two-column","title":"两列描红","subtitle":"左 A–M、右 N–Z 配对描红","category":"english","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-two-column.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-two-column","available":true}]}]},"category":null,"age":null,"version":20,"updatedAt":"2026-05-20T07:32:13.444Z"} \ No newline at end of file diff --git a/cloudbaserc.json b/cloudbaserc.json new file mode 100644 index 0000000..d3e02b1 --- /dev/null +++ b/cloudbaserc.json @@ -0,0 +1,4 @@ +{ + "envId": "cloud1-9gifs7a2756e2c87", + "version": "2.0" +} diff --git a/miniprogram/pages/age/age.config.ts b/miniprogram/pages/age/age.config.ts index b9799f0..0067c9e 100644 --- a/miniprogram/pages/age/age.config.ts +++ b/miniprogram/pages/age/age.config.ts @@ -30,38 +30,38 @@ export const AGE_TAB_SUB: Record = { '7-8': '知识拓展', }; -/** 各年龄段能力目标(初版,可由 AI Skill 更新) */ +/** 各年龄段能力目标(由 update-age-config Skill 基于 cache/page-config.json 生成) */ export const AGE_ABILITIES: Record = { '3-4': [ - { icon: '🔢', title: '数感', desc: '认读 1-5、点数对应' }, - { icon: '✏️', title: '书写', desc: '涂鸦线条、简单描红' }, - { icon: '🧩', title: '思维', desc: '找相同、简单配对' }, + { icon: '🔢', title: '数感', desc: '找数字涂色、数物对应' }, + { icon: '✏️', title: '书写', desc: '识字涂色、字母描红' }, + { icon: '🧩', title: '思维', desc: '线条识别、图形配对' }, ], '4-5': [ - { icon: '🔢', title: '数感', desc: '10 以内数数、比大小' }, - { icon: '✏️', title: '书写', desc: '笔画模仿、图形描边' }, - { icon: '🧩', title: '思维', desc: '规律排序、图形分类' }, + { icon: '🔢', title: '数感', desc: '比大小、数字排序' }, + { icon: '✏️', title: '书写', desc: '拼音描红、字母入门' }, + { icon: '🧩', title: '思维', desc: '方位涂色、连线专注' }, ], '5-6': [ - { icon: '🔢', title: '数感', desc: '10以内加减法、凑十法' }, - { icon: '✏️', title: '书写', desc: '练字帖、拼音入门' }, - { icon: '🧩', title: '思维', desc: '方格推理、格子仿画 5×5' }, + { icon: '🔢', title: '数感', desc: '凑十法、数的分合' }, + { icon: '✏️', title: '书写', desc: '拼音描默、识字涂色' }, + { icon: '🧩', title: '思维', desc: '方格推理、译码连线' }, ], '6-7': [ - { icon: '🔢', title: '数感', desc: '20 以内运算、应用题启蒙' }, - { icon: '✏️', title: '书写', desc: '常用字书写、词语积累' }, - { icon: '🧩', title: '思维', desc: '逻辑填空、空间想象' }, + { icon: '🔢', title: '数感', desc: '凑十分解、数字排序' }, + { icon: '✏️', title: '书写', desc: '拼音默写、字母书写' }, + { icon: '🧩', title: '思维', desc: '方格推理、方位专注' }, ], '7-8': [ - { icon: '🔢', title: '数感', desc: '乘除启蒙、巧算练习' }, - { icon: '✏️', title: '书写', desc: '段落抄写、古诗诵读' }, - { icon: '🧩', title: '思维', desc: '数独入门、综合推理' }, + { icon: '🔢', title: '数感', desc: '凑十法、数的分合' }, + { icon: '✏️', title: '书写', desc: '拼音默写、每日打卡' }, + { icon: '🧩', title: '思维', desc: '译码连线、综合推理' }, ], }; /** - * 4 周路线(初版):每项含 _id / subtitle / path,与线上 worksheet 或本地分类兜底一致。 - * AI Skill 生成时应从 .cache/page-config.json 的 category.items[] 复制 id→_id、title、subtitle、path。 + * 4 周路线:每项含 _id / subtitle / path,与 cache/page-config.json 一致。 + * AI Skill 生成时应从 cache/page-config.json 的 home.sections[].items[] 复制 id→_id、title、subtitle、path。 */ export const AGE_WEEK_PLANS: Record = { '3-4': [ @@ -72,130 +72,38 @@ export const AGE_WEEK_PLANS: Record = { { _id: 'number-find', title: '找数字,涂一涂', - subtitle: '在数字方阵中找出目标数字并涂色', + subtitle: '找出目标数字并涂色', path: '/mathPages/mathDraw/mathDraw?id=number-find', }, - { - _id: 'addition-5', - title: '5以内加法', - subtitle: '图形化展示 5 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=addition-5', - }, { _id: 'counting-matching', title: '数一数,连一连', - subtitle: '连线配对数字和对应数量图形', + subtitle: '连线配对数字和数量', path: '/mathPages/mathDraw/mathDraw?id=counting-matching', }, - ], - }, - { - week: 2, - theme: '形状与连线', - exercises: [ - { - _id: 'shape-recognition', - title: '识别形状', - subtitle: '识别形状,涂一涂', - path: '/focusPages/focusDraw/focusDraw?id=shape-recognition', - }, - { - _id: 'line-recognition', - title: '线条识别', - subtitle: '认识不同线条,画出颜色对应的线条', - path: '/focusPages/focusDraw/focusDraw?id=line-recognition', - }, - { - _id: 'dot-connect', - title: '数字点连线', - subtitle: '按数字顺序连点成图', - path: '/focusPages/focusDraw/focusDraw?id=dot-connect', - }, - ], - }, - { - week: 3, - theme: '趣味专注', - exercises: [ - { - _id: 'color-pattern', - title: '颜色找规律', - subtitle: '观察颜色规律,在空白图形中涂色', - path: '/focusPages/focusDraw/focusDraw?id=color-pattern', - }, - { - _id: 'grid-drawing-3x3', - title: '格子仿画 3×3', - subtitle: '简单有趣,培养专注力', - path: '/focusPages/focusDraw/focusDraw?id=grid-drawing-3x3', - }, - { - _id: 'match-connect', - title: '连连看', - subtitle: '根据物品连一连', - path: '/focusPages/focusDraw/focusDraw?id=match-connect', - }, - ], - }, - { - week: 4, - theme: '综合练习', - exercises: [ - { - _id: 'addition-10', - title: '10以内加法', - subtitle: '图形化展示 10 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=addition-10', - }, - { - _id: 'word-recognition', - title: '识字卡', - subtitle: '输入或选字生成涂色识字卡', - path: '/pages/index/index', - }, { _id: 'number-coloring', title: '按数字,涂颜色', - subtitle: '按指定数字给对应圆圈涂色', + subtitle: '按指定数字涂色', path: '/mathPages/mathDraw/mathDraw?id=number-coloring', }, ], }, - ], - '4-5': [ - { - week: 1, - theme: '数数与比较', - exercises: [ - { - _id: 'counting-fill', - title: '数一数,填一填', - subtitle: '数出物品数量,填写数字', - path: '/mathPages/mathDraw/mathDraw?id=counting-fill', - }, - { - _id: 'compare', - title: '数一数,比大小', - subtitle: '比较数量,填入 ><=', - path: '/mathPages/mathDraw/mathDraw?id=compare', - }, - { - _id: 'number-object-match', - title: '数物连线', - subtitle: '连线相同数量的物品和数字', - path: '/mathPages/mathDraw/mathDraw?id=number-object-match', - }, - ], - }, { week: 2, theme: '线条与形状', exercises: [ { - _id: 'number-write', - title: '看数字,写一写', - subtitle: '按笔画顺序练习书写数字', - path: '/mathPages/mathDraw/mathDraw?id=number-write', + _id: 'line-recognition', + title: '线条识别', + subtitle: '认识不同线条,画对应线条', + path: '/focusPages/focusDraw/focusDraw?id=line-recognition', + }, + { + _id: 'dot-connect', + title: '数字点连线', + subtitle: '按数字顺序连点成图', + path: '/focusPages/focusDraw/focusDraw?id=dot-connect', }, { _id: 'shape-symbol', @@ -203,24 +111,36 @@ export const AGE_WEEK_PLANS: Record = { subtitle: '根据图形画对应符号', path: '/focusPages/focusDraw/focusDraw?id=shape-symbol', }, - { - _id: 'counting-matching', - title: '数一数,连一连', - subtitle: '连线配对数字和对应数量图形', - path: '/mathPages/mathDraw/mathDraw?id=counting-matching', - }, ], }, { week: 3, - theme: '规律与分类', + theme: '识字涂色', exercises: [ { - _id: 'color-pattern', - title: '颜色找规律', - subtitle: '观察颜色规律,在空白图形中涂色', - path: '/focusPages/focusDraw/focusDraw?id=color-pattern', + _id: 'word-coloring-grid', + title: '网格涂色', + subtitle: '田字格涂色识字练习', + path: '/chinesePages/wordColoring/wordColoring?id=word-coloring-grid', }, + { + _id: 'word-coloring-find', + title: '找字涂色', + subtitle: '在字海中找到目标字并涂色', + path: '/chinesePages/wordColoring/wordColoring?id=word-coloring-find', + }, + { + _id: 'position-coloring', + title: '方位涂涂乐', + subtitle: '观察位置,在方格中涂色', + path: '/focusPages/focusDraw/focusDraw?id=position-coloring', + }, + ], + }, + { + week: 4, + theme: '综合练习', + exercises: [ { _id: 'number-sort', title: '数字排序', @@ -228,34 +148,114 @@ export const AGE_WEEK_PLANS: Record = { path: '/mathPages/mathDraw/mathDraw?id=number-sort', }, { - _id: 'color-shape-match', - title: '根据颜色画图形', - subtitle: '根据颜色画出对应图形', - path: '/focusPages/focusDraw/focusDraw?id=color-shape-match', + _id: 'handwriting-sheet', + title: '自定义练字帖', + subtitle: '自定义田字格练字帖', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', + }, + { + _id: 'letter-tracing-single', + title: '默认字帖', + subtitle: '配图、例句与描红', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-single', + }, + ], + }, + ], + '4-5': [ + { + week: 1, + theme: '数感入门', + exercises: [ + { + _id: 'number-coloring', + title: '按数字,涂颜色', + subtitle: '按指定数字涂色', + path: '/mathPages/mathDraw/mathDraw?id=number-coloring', + }, + { + _id: 'counting-matching', + title: '数一数,连一连', + subtitle: '连线配对数字和数量', + path: '/mathPages/mathDraw/mathDraw?id=counting-matching', + }, + { + _id: 'number-find', + title: '找数字,涂一涂', + subtitle: '找出目标数字并涂色', + path: '/mathPages/mathDraw/mathDraw?id=number-find', + }, + ], + }, + { + week: 2, + theme: '排序与连线', + exercises: [ + { + _id: 'number-sort', + title: '数字排序', + subtitle: '写出正确的数字顺序', + path: '/mathPages/mathDraw/mathDraw?id=number-sort', + }, + { + _id: 'dot-connect', + title: '数字点连线', + subtitle: '按数字顺序连点成图', + path: '/focusPages/focusDraw/focusDraw?id=dot-connect', + }, + { + _id: 'shape-symbol', + title: '图形符号配对', + subtitle: '根据图形画对应符号', + path: '/focusPages/focusDraw/focusDraw?id=shape-symbol', + }, + ], + }, + { + week: 3, + theme: '观察与专注', + exercises: [ + { + _id: 'line-recognition', + title: '线条识别', + subtitle: '认识不同线条,画对应线条', + path: '/focusPages/focusDraw/focusDraw?id=line-recognition', + }, + { + _id: 'position-coloring', + title: '方位涂涂乐', + subtitle: '观察位置,在方格中涂色', + path: '/focusPages/focusDraw/focusDraw?id=position-coloring', + }, + { + _id: 'word-coloring-grid', + title: '网格涂色', + subtitle: '田字格涂色识字练习', + path: '/chinesePages/wordColoring/wordColoring?id=word-coloring-grid', }, ], }, { week: 4, - theme: '综合提升', + theme: '书写启蒙', exercises: [ { - _id: 'code-connect', - title: '译码连线', - subtitle: '按数字顺序将数字对应颜色连线', - path: '/focusPages/focusDraw/focusDraw?id=code-connect', + _id: 'pinyin-tracing', + title: '拼音描红练习', + subtitle: '跟着描红学拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing', }, { - _id: 'match-connect', - title: '连连看', - subtitle: '根据物品连一连', - path: '/focusPages/focusDraw/focusDraw?id=match-connect', + _id: 'letter-tracing-single', + title: '默认字帖', + subtitle: '配图、例句与描红', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-single', }, { - _id: 'addition-10', - title: '10以内加法', - subtitle: '图形化展示 10 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=addition-10', + _id: 'handwriting-sheet', + title: '自定义练字帖', + subtitle: '自定义田字格练字帖', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', }, ], }, @@ -263,25 +263,25 @@ export const AGE_WEEK_PLANS: Record = { '5-6': [ { week: 1, - theme: '加减入门', + theme: '数感巩固', exercises: [ { - _id: 'addition-5', - title: '5以内加法', - subtitle: '图形化展示 5 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=addition-5', + _id: 'number-sort', + title: '数字排序', + subtitle: '写出正确的数字顺序', + path: '/mathPages/mathDraw/mathDraw?id=number-sort', }, { - _id: 'addition-10', - title: '10以内加法', - subtitle: '图形化展示 10 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=addition-10', + _id: 'counting-matching', + title: '数一数,连一连', + subtitle: '连线配对数字和数量', + path: '/mathPages/mathDraw/mathDraw?id=counting-matching', }, { - _id: 'subtraction-10', - title: '10以内减法', - subtitle: '图形化展示 10 以内减法', - path: '/mathPages/mathDraw/mathDraw?id=subtraction-10', + _id: 'number-coloring', + title: '按数字,涂颜色', + subtitle: '按指定数字涂色', + path: '/mathPages/mathDraw/mathDraw?id=number-coloring', }, ], }, @@ -292,7 +292,7 @@ export const AGE_WEEK_PLANS: Record = { { _id: 'make-ten', title: '凑十法练习', - subtitle: '20 以内进位加法', + subtitle: '20以内进位加法', path: '/mathPages/mathDraw/mathDraw?id=make-ten', }, { @@ -301,133 +301,35 @@ export const AGE_WEEK_PLANS: Record = { subtitle: '把数字分一分,合一合', path: '/mathPages/mathDraw/mathDraw?id=number-decompose', }, - { - _id: 'one-digit-addition', - title: '一位数加法', - subtitle: '通过圆点学习一位数加法运算', - path: '/mathPages/mathDraw/mathDraw?id=one-digit-addition', - }, - ], - }, - { - week: 3, - theme: '逻辑与推理', - exercises: [ { _id: 'grid-reasoning', title: '方格推理', subtitle: '推理出合并方格并连线', path: '/focusPages/focusDraw/focusDraw?id=grid-reasoning', }, - { - _id: 'grid-drawing-5x5', - title: '格子仿画 5×5', - subtitle: '创意挑战,提升观察力', - path: '/focusPages/focusDraw/focusDraw?id=grid-drawing-5x5', - }, - { - _id: 'missing-number', - title: '填上缺少的数字', - subtitle: '在数列中找出并填写缺失数字', - path: '/mathPages/mathDraw/mathDraw?id=missing-number', - }, - ], - }, - { - week: 4, - theme: '综合应用', - exercises: [ - { - _id: 'addition-subtraction-10', - title: '10以内加减法', - subtitle: '加减法混合运算', - path: '/mathPages/mathDraw/mathDraw?id=addition-subtraction-10', - }, - { - _id: 'practice-addition', - title: '加法运算', - subtitle: '10/20/50/100 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=practice-addition', - }, - { - _id: 'copybook', - title: '练字帖', - subtitle: '选字生成田字格笔顺练字帖', - path: '/pages/copyBook/copyBook', - }, - ], - }, - ], - '6-7': [ - { - week: 1, - theme: '20 以内运算', - exercises: [ - { - _id: 'practice-addition', - title: '加法运算', - subtitle: '10/20/50/100 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=practice-addition', - }, - { - _id: 'practice-subtraction', - title: '减法运算', - subtitle: '10/20/50/100 以内减法', - path: '/mathPages/mathDraw/mathDraw?id=practice-subtraction', - }, - { - _id: 'practice-mixed', - title: '混合运算', - subtitle: '10/20/50/100 以内加减法混合', - path: '/mathPages/mathDraw/mathDraw?id=practice-mixed', - }, - ], - }, - { - week: 2, - theme: '识字与词语', - exercises: [ - { - _id: 'copybook', - title: '练字帖', - subtitle: '选字生成田字格笔顺练字帖', - path: '/pages/copyBook/copyBook', - }, - { - _id: 'match-connect', - title: '连连看', - subtitle: '根据物品连一连', - path: '/focusPages/focusDraw/focusDraw?id=match-connect', - }, - { - _id: 'word-recognition', - title: '识字卡', - subtitle: '输入或选字生成涂色识字卡', - path: '/pages/index/index', - }, ], }, { week: 3, - theme: '逻辑与空间', + theme: '拼音与识字', exercises: [ { - _id: 'grid-reasoning', - title: '方格推理', - subtitle: '推理出合并方格并连线', - path: '/focusPages/focusDraw/focusDraw?id=grid-reasoning', + _id: 'pinyin-tracing', + title: '拼音描红练习', + subtitle: '跟着描红学拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing', }, { - _id: 'position-coloring', - title: '方位涂涂乐', - subtitle: '观察位置,在方格中涂色', - path: '/focusPages/focusDraw/focusDraw?id=position-coloring', + _id: 'pinyin-tracing-v2', + title: '拼音描红 8 列', + subtitle: '跟写描红,声韵分块', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing-v2', }, { - _id: 'code-connect', - title: '译码连线', - subtitle: '按数字顺序将数字对应颜色连线', - path: '/focusPages/focusDraw/focusDraw?id=code-connect', + _id: 'word-coloring-find', + title: '找字涂色', + subtitle: '在字海中找到目标字并涂色', + path: '/chinesePages/wordColoring/wordColoring?id=word-coloring-find', }, ], }, @@ -436,78 +338,78 @@ export const AGE_WEEK_PLANS: Record = { theme: '综合提升', exercises: [ { - _id: 'break-ten', - title: '破十法练习', - subtitle: '20 以内退位减法', - path: '/mathPages/mathDraw/mathDraw?id=break-ten', + _id: 'pinyin-dictation', + title: '拼音默写练习', + subtitle: '空白格子默写拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation', }, { - _id: 'flat-ten', - title: '平十法练习', - subtitle: '20 以内退位减法', - path: '/mathPages/mathDraw/mathDraw?id=flat-ten', + _id: 'letter-tracing-case-pairing', + title: '大小写对照', + subtitle: '半组字母左大写右小写', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing', }, { - _id: 'number-decompose-20', - title: '20以内数的分与合', - subtitle: '把数字分一分,合一合', - path: '/mathPages/mathDraw/mathDraw?id=number-decompose-20', + _id: 'code-connect', + title: '译码连线', + subtitle: '按数字顺序连线', + path: '/focusPages/focusDraw/focusDraw?id=code-connect', }, ], }, ], - '7-8': [ + '6-7': [ { week: 1, - theme: '乘除启蒙', + theme: '运算进阶', exercises: [ { - _id: 'multiplication-table', - title: '九九乘法表', - subtitle: '学习九九乘法口诀', - path: '/mathPages/mathDraw/mathDraw?id=multiplication-table', + _id: 'make-ten', + title: '凑十法练习', + subtitle: '20以内进位加法', + path: '/mathPages/mathDraw/mathDraw?id=make-ten', }, { - _id: 'practice-addition', - title: '加法运算', - subtitle: '10/20/50/100 以内加法', - path: '/mathPages/mathDraw/mathDraw?id=practice-addition', + _id: 'number-decompose', + title: '10以内数的分与合', + subtitle: '把数字分一分,合一合', + path: '/mathPages/mathDraw/mathDraw?id=number-decompose', }, { - _id: 'practice-subtraction', - title: '减法运算', - subtitle: '10/20/50/100 以内减法', - path: '/mathPages/mathDraw/mathDraw?id=practice-subtraction', + _id: 'number-sort', + title: '数字排序', + subtitle: '写出正确的数字顺序', + path: '/mathPages/mathDraw/mathDraw?id=number-sort', }, ], }, { week: 2, - theme: '巧算与策略', + theme: '拼音书写', exercises: [ { - _id: 'make-ten', - title: '凑十法练习', - subtitle: '20 以内进位加法', - path: '/mathPages/mathDraw/mathDraw?id=make-ten', + _id: 'pinyin-tracing-v2', + title: '拼音描红 8 列', + subtitle: '跟写描红,声韵分块', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing-v2', }, { - _id: 'borrow-ten', - title: '借十法练习', - subtitle: '20 以上退位减法', - path: '/mathPages/mathDraw/mathDraw?id=borrow-ten', + _id: 'pinyin-dictation', + title: '拼音默写练习', + subtitle: '空白格子默写拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation', }, { - _id: 'practice-mixed', - title: '混合运算', - subtitle: '10/20/50/100 以内加减法混合', - path: '/mathPages/mathDraw/mathDraw?id=practice-mixed', + _id: 'handwriting-sheet', + title: '自定义练字帖', + subtitle: '自定义田字格练字帖', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', }, ], }, { week: 3, - theme: '综合推理', + theme: '逻辑专注', exercises: [ { _id: 'grid-reasoning', @@ -518,38 +420,136 @@ export const AGE_WEEK_PLANS: Record = { { _id: 'code-connect', title: '译码连线', - subtitle: '按数字顺序将数字对应颜色连线', + subtitle: '按数字顺序连线', path: '/focusPages/focusDraw/focusDraw?id=code-connect', }, { - _id: 'dot-connect', - title: '数字点连线', - subtitle: '按数字顺序连点成图', - path: '/focusPages/focusDraw/focusDraw?id=dot-connect', + _id: 'position-coloring', + title: '方位涂涂乐', + subtitle: '观察位置,在方格中涂色', + path: '/focusPages/focusDraw/focusDraw?id=position-coloring', }, ], }, { week: 4, - theme: '能力拓展', + theme: '综合衔接', exercises: [ + { + _id: 'pinyin-daily', + title: '拼音每日打卡', + subtitle: '四宫格每日打卡练习', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily', + }, + { + _id: 'letter-tracing-half', + title: '13字母半表', + subtitle: '每行一个字母,13 字母半表', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-half', + }, { _id: 'letter-tracing-two-column', - title: '两列练习', - subtitle: '左 A-M、右 N-Z,大小写配对描红', + title: '两列描红', + subtitle: '左 A–M、右 N–Z 配对描红', path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-two-column', }, + ], + }, + ], + '7-8': [ + { + week: 1, + theme: '巧算思维', + exercises: [ { - _id: 'word-recognition', - title: '识字卡', - subtitle: '输入或选字生成涂色识字卡', - path: '/pages/index/index', + _id: 'make-ten', + title: '凑十法练习', + subtitle: '20以内进位加法', + path: '/mathPages/mathDraw/mathDraw?id=make-ten', }, { - _id: 'practice-mixed', - title: '混合运算', - subtitle: '10/20/50/100 以内加减法混合', - path: '/mathPages/mathDraw/mathDraw?id=practice-mixed', + _id: 'number-decompose', + title: '10以内数的分与合', + subtitle: '把数字分一分,合一合', + path: '/mathPages/mathDraw/mathDraw?id=number-decompose', + }, + { + _id: 'grid-reasoning', + title: '方格推理', + subtitle: '推理出合并方格并连线', + path: '/focusPages/focusDraw/focusDraw?id=grid-reasoning', + }, + ], + }, + { + week: 2, + theme: '拼音精进', + exercises: [ + { + _id: 'pinyin-dictation-v2', + title: '拼音默写 8 列', + subtitle: '空白默写,声韵分块', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation-v2', + }, + { + _id: 'pinyin-dictation', + title: '拼音默写练习', + subtitle: '空白格子默写拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation', + }, + { + _id: 'pinyin-tracing', + title: '拼音描红练习', + subtitle: '跟着描红学拼音字母', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing', + }, + ], + }, + { + week: 3, + theme: '译码与字母', + exercises: [ + { + _id: 'code-connect', + title: '译码连线', + subtitle: '按数字顺序连线', + path: '/focusPages/focusDraw/focusDraw?id=code-connect', + }, + { + _id: 'letter-tracing-case-pairing', + title: '大小写对照', + subtitle: '半组字母左大写右小写', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing', + }, + { + _id: 'letter-tracing-half', + title: '13字母半表', + subtitle: '每行一个字母,13 字母半表', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-half', + }, + ], + }, + { + week: 4, + theme: '综合拓展', + exercises: [ + { + _id: 'pinyin-daily', + title: '拼音每日打卡', + subtitle: '四宫格每日打卡练习', + path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily', + }, + { + _id: 'letter-tracing-daily-checkin', + title: '每日打卡', + subtitle: '四宫格每日字母打卡练习', + path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin', + }, + { + _id: 'handwriting-sheet', + title: '自定义练字帖', + subtitle: '自定义田字格练字帖', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', }, ], }, diff --git a/skills/generate-age-abilities/SKILL.md b/skills/generate-age-abilities/SKILL.md deleted file mode 100644 index dd95f7e..0000000 --- a/skills/generate-age-abilities/SKILL.md +++ /dev/null @@ -1,149 +0,0 @@ -# Skill: generate-age-abilities - -> 生成分龄页各年龄段的「能力目标」数据,更新 `age.config.ts` 中的 `AGE_ABILITIES`。 - -## 触发条件 - -当用户提到以下内容时触发: -- "生成能力目标"、"更新能力目标"、"generate age abilities" -- "更新分龄页第二部分"、"更新分龄能力" - -## 任务描述 - -你是一位拥有 15 年经验的儿童早教专家,专注于 3-8 岁儿童的认知发展和学习能力培养。你需要基于当前系统中已上线的所有 worksheet(打印练习册)内容,为 5 个年龄段(3-4 岁、4-5 岁、5-6 岁、6-7 岁、7-8 岁)生成精准的能力目标描述。 - -## 执行步骤 - -### Step 1:获取 worksheet 数据 - -`page-config.json` 存储在微信云存储中(路径:`/content/page-config.json`),本地项目中不存在此文件。按以下优先级获取数据: - -**方式一:读取本地缓存(优先)** - -1. 使用 Glob 搜索 `.cache/page-config.json` 是否存在 -2. 如果存在,读取 `category.categories` 数组,提取每个分类下的 `items[]` -3. 从每个 item 中提取:`id`、`title`、`description`、`category`、`ageBand`、`difficulty` - -**方式二:通过微信开发者工具下载** - -如果本地缓存不存在,提示用户按以下步骤获取: - -1. 打开微信开发者工具 -2. 进入「云开发控制台」→「存储」 -3. 找到 `/content/page-config.json` 文件,点击下载 -4. 将文件保存到项目根目录的 `.cache/page-config.json` - -```bash -# 确保 .cache 目录存在 -mkdir -p .cache -# 用户手动将下载的文件放入:.cache/page-config.json -``` - -**方式三:通过云函数调用获取** - -如果用户已安装 `tcb` CLI(腾讯云开发 CLI),可以直接下载: - -```bash -mkdir -p .cache -tcb storage:download /content/page-config.json .cache/page-config.json -``` - -> **重要**:请在获取数据后告知用户文件中有多少个 worksheet,以及覆盖了哪些分类和年龄段,让用户确认数据是最新的。 - -### Step 2:分析 worksheet 内容 - -1. 将所有 worksheet 按年龄段(`ageBand`)分组 -2. 在每个年龄段内,按分类(`category`)统计覆盖的知识领域 -3. 分析每个年龄段的 worksheet 主要涉及哪些能力维度 - -当前系统的分类体系: -- `math` - 数感启蒙(数字认知、计算、数学思维) -- `puzzle` - 益智游戏(逻辑推理、空间想象、专注力) -- `pinyin` - 汉语拼音(拼音认读、拼写) -- `chinese` - 趣味识字(汉字书写、识字、词语) -- `english` - 英语启蒙(字母、单词、简单句型) -- `craft` - 创意手工(动手能力、创造力) - -年龄段定义(来自 `core/data/difficulty.ts`): -- `3-4`:3-4 岁 -- `4-5`:4-5 岁 -- `5-6`:5-6 岁 -- `6-7`:6-7 岁 -- `7-8`:7-8 岁 - -### Step 3:生成能力目标 - -以早教专家视角,为每个年龄段生成 **3 个核心能力维度**: - -**生成原则:** - -1. **基于实际内容**:能力目标必须反映系统中实际存在的 worksheet 内容,不能脱离实际可练习的内容空谈 -2. **发展阶梯性**:5 个年龄段的能力描述应体现明显的递进关系 -3. **具体可衡量**:描述要具体到可练习的技能点,避免笼统表述 -4. **简洁有力**:每个 `desc` 控制在 10 个汉字以内,用顿号分隔 2-3 个技能点 - -**能力维度选择参考(可根据实际 worksheet 内容调整):** -- 🔢 数感(数字认知、计算能力) -- ✏️ 书写(笔画、汉字、拼音书写) -- 🧩 思维(逻辑推理、空间想象) -- 🔤 语言(拼音、英语启蒙) -- 🎨 创造(手工、绘画、创意表达) - -如果某个年龄段的 worksheet 内容集中在特定领域,可以调整能力维度以更准确地反映实际内容。 - -### Step 4:更新 age.config.ts - -1. 读取 `miniprogram/pages/age/age.config.ts` 文件 -2. 找到 `AGE_ABILITIES` 常量(如果不存在则在现有代码中 `MOCK_ABILITY` 的位置创建) -3. 替换为新生成的数据 - -**输出数据结构:** - -```ts -export const AGE_ABILITIES: Record = { - '3-4': [ - { icon: '🔢', title: '数感', desc: '认读 1-5、点数对应' }, - { icon: '✏️', title: '书写', desc: '涂鸦线条、简单描红' }, - { icon: '🧩', title: '思维', desc: '找相同、简单配对' }, - ], - '4-5': [ - { icon: '🔢', title: '数感', desc: '10 以内数数、比大小' }, - { icon: '✏️', title: '书写', desc: '笔画模仿、图形描边' }, - { icon: '🧩', title: '思维', desc: '规律排序、图形分类' }, - ], - '5-6': [ - { icon: '🔢', title: '数感', desc: '10以内加减法、凑十法' }, - { icon: '✏️', title: '书写', desc: '练字帖、拼音入门' }, - { icon: '🧩', title: '思维', desc: '方格推理、格子仿画 5×5' }, - ], - '6-7': [ - { icon: '🔢', title: '数感', desc: '20 以内运算、应用题启蒙' }, - { icon: '✏️', title: '书写', desc: '常用字书写、词语积累' }, - { icon: '🧩', title: '思维', desc: '逻辑填空、空间想象' }, - ], - '7-8': [ - { icon: '🔢', title: '数感', desc: '乘除启蒙、巧算练习' }, - { icon: '✏️', title: '书写', desc: '段落抄写、古诗诵读' }, - { icon: '🧩', title: '思维', desc: '数独入门、综合推理' }, - ], -}; -``` - -### Step 5:验证 - -1. 确认每个年龄段都有 3 个能力维度 -2. 确认 `desc` 简洁(≤10 个汉字) -3. 确认 5 个年龄段之间有明显的能力递进 -4. 确认 `icon` 使用了合适的 emoji -5. 确认数据结构与 `AbilityItem` 类型匹配 - -## 相关文件 - -- `miniprogram/pages/age/age.config.ts` — 输出目标文件 -- `miniprogram/pages/age/age.ts` — 分龄页逻辑(引用 config) -- `miniprogram/core/data/difficulty.ts` — AGE_BANDS 定义 -- `miniprogram/core/data/categories.ts` — CATEGORY_LIST 分类定义 -- `.cache/page-config.json` — worksheet 数据本地缓存(从云存储下载) -- 云存储 `/content/page-config.json` — worksheet 数据源(Source of Truth) -- `cloudfunctions/worksheetsQuery/` — 查询 worksheet 的云函数(备选数据源) -- `docs/分龄页内容管理方案.md` — 方案文档 diff --git a/skills/generate-age-weekly-plans/SKILL.md b/skills/generate-age-weekly-plans/SKILL.md deleted file mode 100644 index 13baf4b..0000000 --- a/skills/generate-age-weekly-plans/SKILL.md +++ /dev/null @@ -1,168 +0,0 @@ -# Skill: generate-age-weekly-plans - -> 生成分龄页各年龄段的「4 周推荐学习路线」,更新 `age.config.ts` 中的 `AGE_WEEK_PLANS`。 - -## 触发条件 - -当用户提到以下内容时触发: -- "生成学习路线"、"更新学习路线"、"更新周计划"、"generate weekly plans" -- "更新分龄页第三部分"、"更新分龄路线" - -## 任务描述 - -你是一位拥有 15 年经验的儿童早教专家,专注于 3-8 岁儿童的系统化学习规划。你需要基于当前系统中已上线的所有 worksheet(打印练习册),为 5 个年龄段设计科学的 4 周学习路线,确保每周推荐的练习都是系统中实际存在的 worksheet。 - -## 执行步骤 - -### Step 1:获取 worksheet 数据 - -`page-config.json` 存储在微信云存储中(路径:`/content/page-config.json`),本地项目中不存在此文件。按以下优先级获取数据: - -**方式一:读取本地缓存(优先)** - -1. 使用 Glob 搜索 `.cache/page-config.json` 是否存在 -2. 如果存在,读取 `category.categories` 数组,提取每个分类下的 `items[]` -3. 从每个 item 中提取关键信息(与 `pageContentBuild` 下发的 `category.items[]` 一致): - - `id`(云 worksheet `_id`,写入配置时作为 `_id` 字段) - - `title`、`subtitle`、`path` - - 可选辅助:`ageMin` / `ageMax`、`category`、`difficulty`、`downloads`、`likes` - -**方式二:通过微信开发者工具下载** - -如果本地缓存不存在,提示用户按以下步骤获取: - -1. 打开微信开发者工具 -2. 进入「云开发控制台」→「存储」 -3. 找到 `/content/page-config.json` 文件,点击下载 -4. 将文件保存到项目根目录的 `.cache/page-config.json` - -```bash -# 确保 .cache 目录存在 -mkdir -p .cache -# 用户手动将下载的文件放入:.cache/page-config.json -``` - -**方式三:通过云函数调用获取** - -如果用户已安装 `tcb` CLI(腾讯云开发 CLI),可以直接下载: - -```bash -mkdir -p .cache -tcb storage:download /content/page-config.json .cache/page-config.json -``` - -> **重要**:请在获取数据后告知用户文件中有多少个 worksheet,以及覆盖了哪些分类和年龄段,让用户确认数据是最新的。 - -### Step 2:按年龄段分组和分析 - -1. 将所有 worksheet 按年龄段(`ageBand`)分组 -2. 在每个年龄段内,按分类统计 worksheet 数量 -3. 记录每个 worksheet 的难度等级(`difficulty`) -4. 按 `downloads + likes` 排序,优先选择受欢迎的 worksheet - -当前系统的分类体系: -- `math` - 数感启蒙 -- `puzzle` - 益智游戏 -- `pinyin` - 汉语拼音 -- `chinese` - 趣味识字 -- `english` - 英语启蒙 -- `craft` - 创意手工 - -年龄段定义(来自 `core/data/difficulty.ts`): -- `3-4`:3-4 岁 -- `4-5`:4-5 岁 -- `5-6`:5-6 岁 -- `6-7`:6-7 岁 -- `7-8`:7-8 岁 - -### Step 3:设计 4 周学习路线 - -以早教专家视角,为每个年龄段设计 4 周学习计划。 - -**编排原则:** - -1. **由易到难**:第 1 周以基础入门为主,逐周提升难度 -2. **跨领域覆盖**:4 周合计应覆盖该年龄段可用的多个学科分类,避免单一 -3. **主题连贯**:每周设定一个明确的学习主题(如"数感启蒙""形状与空间""趣味文字"等) -4. **基于实际内容**:每个练习必须对应系统中实际存在的 worksheet,**必须**带上真实的 `_id`、`subtitle`、`path`(与数据源一致,禁止手写虚构 path) -5. **合理搭配**:每周 3 个练习应尽量来自不同分类,提供多元学习体验 -6. **第 4 周综合**:最后一周安排综合练习,涵盖前 3 周的核心技能 - -**主题命名规范:** -- 简洁明了,4-6 个汉字 -- 体现该周的学习重点 -- 示例:数感启蒙、形状与连线、趣味专注、综合练习、拼音入门、创意手工 - -**当 worksheet 不足时的处理:** -- 如果某个年龄段的 worksheet 不足 12 个(4 周 × 3 个),允许同一 worksheet 在不同周出现 -- 如果某个年龄段完全没有 worksheet,使用相邻年龄段的内容并标注 -- 若某年龄段可用 worksheet 不足,可放宽年龄筛选,但每条仍须来自数据源中的真实 `id/title/subtitle/path`,**不要**编造 `_id` 或 path - -### Step 4:更新 age.config.ts - -1. 读取 `miniprogram/pages/age/age.config.ts` 文件 -2. 找到 `AGE_WEEK_PLANS` 常量(如果不存在则在现有代码中 `MOCK_WEEKS` 的位置创建) -3. 替换为新生成的数据 - -**`WeekExercise` 输出结构(写入 `age.config.ts`,与小程序分龄页跳转一致):** - -```ts -export type WeekExercise = { - _id: string; // 等于数据源 item.id(即云 worksheets._id) - title: string; // item.title - subtitle: string; // item.subtitle - path: string; // item.path,可含 query;点击「去练习」将按 path 跳转 -}; -``` - -**`AGE_WEEK_PLANS` 示例片段:** - -```ts -export const AGE_WEEK_PLANS: Record = { - '3-4': [ - { - week: 1, - theme: '数感启蒙', - exercises: [ - { - _id: 'xxxxxxxx', - title: '找数字,涂一涂', - subtitle: '在数字方阵中找出目标数字并涂色', - path: '/mathPages/mathDraw/mathDraw?id=number-find', - }, - // ... - ], - }, - // week 2–4 - ], - // '4-5' … '7-8' -}; -``` - -**数据规范:** -- 每个年龄段必须有 4 个 `WeekPlan` -- 每个 `WeekPlan` 必须有 3 个 `exercises` -- 每个 `exercises[]` 元素必须四字段齐全:`_id`、`title`、`subtitle`、`path` -- `_id` 与 `path` 必须与 `.cache/page-config.json`(或云函数拉取结果)中对应 worksheet **逐字一致** -- `theme` 简洁描述本周学习主题 -- 列表 `wx:key` 使用 `_id`,避免同 title 重复导致渲染异常 - -### Step 5:验证 - -1. **结构完整性**:5 个年龄段 × 4 周 × 3 练习 = 60 个练习项 -2. **内容真实性**:抽查每条 `_id`、`path`、`subtitle` 是否与数据源一致(可复制粘贴比对) -3. **递进合理性**:确认每个年龄段的内容难度符合该年龄段认知水平 -4. **跨周不重复**:尽量避免同一 worksheet 在同一年龄段的不同周重复出现 -5. **主题覆盖度**:检查 4 周主题是否覆盖了该年龄段的主要学科 -6. **类型匹配**:确认数据结构与 `WeekPlan` 和 `WeekExercise` 类型定义一致 - -## 相关文件 - -- `miniprogram/pages/age/age.config.ts` — 输出目标文件 -- `miniprogram/pages/age/age.ts` — 分龄页逻辑(引用 config) -- `miniprogram/core/data/difficulty.ts` — AGE_BANDS 定义 -- `miniprogram/core/data/categories.ts` — CATEGORY_LIST 分类定义 -- `.cache/page-config.json` — worksheet 数据本地缓存(从云存储下载) -- 云存储 `/content/page-config.json` — worksheet 数据源(Source of Truth) -- `cloudfunctions/worksheetsQuery/` — 查询 worksheet 的云函数(备选数据源) -- `docs/分龄页内容管理方案.md` — 方案文档 diff --git a/skills/update-age-config/SKILL.md b/skills/update-age-config/SKILL.md new file mode 100644 index 0000000..643f434 --- /dev/null +++ b/skills/update-age-config/SKILL.md @@ -0,0 +1,243 @@ +--- +name: update-age-config +description: >- + 基于 cache/page-config.json 更新分龄页 age.config.ts 中的 AGE_ABILITIES 与 + AGE_WEEK_PLANS。在用户说「更新分龄页数据」「更新分龄config」「更新分龄学习计划」 + 或同类表述时使用;每次执行须同时更新上述两个常量。 +--- + +# Skill: update-age-config + +> 一次性更新 `miniprogram/pages/age/age.config.ts` 中的 **`AGE_ABILITIES`** 与 **`AGE_WEEK_PLANS`**。 + +## 触发条件 + +当用户提到以下内容时**必须**使用本 Skill(不再使用已废弃的 `generate-age-abilities` / `generate-age-weekly-plans`): + +- 「更新分龄页数据」 +- 「更新分龄 config」 +- 「更新分龄学习计划」 +- 含义相同的表述(更新分龄能力目标 + 周计划) + +## 角色与范围 + +你是一位拥有 25 年经验的儿童早教专家,专注于 3-8 岁儿童的认知发展和学习能力培养。你需要基于当前系统中**已上线**的所有 worksheet(打印练习册)内容,为 **5 个固定年龄段**生成: + +1. 精准的能力目标(`AGE_ABILITIES`) +2. 科学的 4 周学习路线(`AGE_WEEK_PLANS`) + +**每次执行本 Skill,必须同时完成以上两部分**,不得只更新其一。 + +### 不可改动的约束 + +- **只修改** `AGE_ABILITIES` 与 `AGE_WEEK_PLANS` 两个常量的对象内容。 +- **禁止修改**:`AGE_TAB_SUB`、类型定义、`age.ts` 逻辑、其他 export。 +- 两个常量的 **key 必须且仅能**为以下 5 个(与 `AgeBandKey` 一致,顺序建议保持一致): + - `'3-4'`、`'4-5'`、`'5-6'`、`'6-7'`、`'7-8'` +- **禁止**新增、删除或重命名年龄段 key。 + +--- + +## Step 1:读取 worksheet 数据源 + +**唯一数据源(必须):** `cache/page-config.json`(项目根目录下,非 `.cache`)。 + +1. 读取该文件;若不存在,提示用户先同步云存储到 `cache/page-config.json` 后重试,**不要**编造 worksheet。 +2. 从 JSON 汇总全部 worksheet: + - 优先遍历 `home.sections[].items[]`(按分类聚合的主列表) + - 可对 `home.featured[]`、`home.hot[]` 做去重合并(以 `id` 为准,避免遗漏仅出现在推荐位的条目) +3. 从每个 item 提取: + - `id`(写入周计划时作为 `_id`) + - `title`、`subtitle`、`path` + - `category`、`ageBand`、`difficulty` + - 若有:`ageMin` / `ageMax`、`downloads`、`likes` + +执行后**先向用户简报**:worksheet 总数、各 `category` 数量、各年龄段可匹配数量,请用户确认数据为最新。 + +### 年龄段匹配规则 + +数据源中 `ageBand` 多为「3-5岁」「4-6岁」等区间文案。映射到 config key 时: + +- 使用 `core/data/difficulty.ts` 中 `AGE_BANDS` 的 `minAge` / `maxAge` +- 若 item 的适龄区间与某 `AgeBandKey` 有重叠,则归入该段(一条 worksheet 可属于多个年龄段) +- 无重叠时跳过,**不要**强行编造 + +### 分类体系(参考) + +| category | 含义 | +| --------- | -------- | +| `math` | 数感启蒙 | +| `puzzle` | 益智游戏 | +| `pinyin` | 汉语拼音 | +| `chinese` | 识字练字 | +| `english` | 英语启蒙 | +| `craft` | 创意手工 | + +--- + +## Step 2:生成 `AGE_ABILITIES` + +为每个年龄段生成 **3 个**核心能力维度(`AbilityItem[]`)。 + +### 生成原则 + +1. **基于实际内容**:必须反映该年龄段在数据源中**真实存在**的 worksheet,禁止空谈 +2. **发展阶梯性**:5 个年龄段之间能力描述有明显递进 +3. **具体可衡量**:落到可练习技能点,避免笼统 +4. **简洁有力**:每个 `desc` ≤ 10 个汉字,顿号分隔 2–3 个技能点 + +### 能力维度选择参考(可按实际 worksheet 调整) + +- 🔢 数感(数字认知、计算) +- ✏️ 书写(笔画、汉字、拼音书写) +- 🧩 思维(逻辑推理、空间想象、专注力) +- 🔤 语言(拼音、英语启蒙) +- 🎨 创造(手工、绘画,若该段有 craft 内容) + +若某年龄段内容集中在特定领域,可调整维度名称以更贴合实际。 + +### 输出数据结构 + +```ts +export const AGE_ABILITIES: Record = { + '3-4': [ + { icon: '🔢', title: '数感', desc: '认读 1-5、点数对应' }, + { icon: '✏️', title: '书写', desc: '涂鸦线条、简单描红' }, + { icon: '🧩', title: '思维', desc: '找相同、简单配对' }, + ], + '4-5': [ + /* 3 项 */ + ], + '5-6': [ + /* 3 项 */ + ], + '6-7': [ + /* 3 项 */ + ], + '7-8': [ + /* 3 项 */ + ], +}; +``` + +### 能力目标验证 + +- [ ] 每个 key 下恰好 3 项 +- [ ] `desc` 字数合规 +- [ ] 五段递进合理 +- [ ] `icon` 为合适 emoji +- [ ] 符合 `AbilityItem` 类型 + +--- + +## Step 3:生成 `AGE_WEEK_PLANS` + +为每个年龄段设计 **4 周**学习计划(`WeekPlan[]`),每周 **3 个**练习(`WeekExercise`)。 + +### 编排原则 + +1. **由易到难**:第 1 周偏入门,逐周提升 +2. **跨领域覆盖**:4 周合计覆盖该段可用的多个 `category` +3. **主题连贯**:每周有明确 `theme`(4–6 个汉字) +4. **基于实际内容**:每条练习必须来自数据源,**禁止**虚构 `_id` / `path` +5. **合理搭配**:每周 3 个练习尽量来自不同分类 +6. **第 4 周综合**:综合巩固前 3 周核心技能 + +### 主题命名规范 + +- 4–6 个汉字,体现当周重点 +- 示例:数感启蒙、形状与连线、趣味专注、综合练习、拼音入门 + +### worksheet 不足时 + +- 不足 12 条(4×3)时,允许同一条在不同周出现,但同一年龄段内尽量少重复 +- 某段完全无匹配项时,可选用相邻年龄段且 **ageBand 最接近** 的真实条目,并在回复中说明 +- 仍须使用数据源中的真实 `id` → `_id`、`title`、`subtitle`、`path` + +### 选题优先级 + +在同一年龄段内,优先 `downloads + likes` 较高、难度与周次匹配的 worksheet。 + +### 输出数据结构 + +```ts +export type WeekExercise = { + _id: string; // = 数据源 item.id + title: string; + subtitle: string; + path: string; // 与数据源完全一致,可含 query +}; + +export const AGE_WEEK_PLANS: Record = { + '3-4': [ + { + week: 1, + theme: '数感启蒙', + exercises: [ + { + _id: 'number-find', + title: '找数字,涂一涂', + subtitle: '找出目标数字并涂色', + path: '/mathPages/mathDraw/mathDraw?id=number-find', + }, + // 共 3 条 + ], + }, + // week: 2, 3, 4 + ], + // '4-5' … '7-8' +}; +``` + +### 周计划数据规范 + +- 每个年龄段 **4** 个 `WeekPlan`,`week` 为 1–4 +- 每个 `WeekPlan` **3** 个 `exercises` +- 四字段齐全:`_id`、`title`、`subtitle`、`path` +- `_id`、`path`、`subtitle` 与 `cache/page-config.json` **逐字一致** + +### 周计划验证 + +- [ ] 结构:5 段 × 4 周 × 3 练习 = 60 条 +- [ ] 抽查 `_id` / `path` 可在数据源中找到 +- [ ] 难度与年龄段匹配 +- [ ] 同段跨周尽量少重复同一 `_id` +- [ ] 符合 `WeekPlan` / `WeekExercise` 类型 + +--- + +## Step 4:写入 `age.config.ts` + +1. 读取 `miniprogram/pages/age/age.config.ts` +2. **仅替换** `AGE_ABILITIES`、`AGE_WEEK_PLANS` 两个常量的完整对象字面量 +3. 保持文件其余部分不变(import、类型、注释风格与周边代码一致) +4. 勿改动 `AGE_WEEK_PLANS` 上方关于数据源的注释含义,可将 `.cache` 字样改为 `cache/page-config.json`(若仍存在旧路径描述) + +--- + +## Step 5:交付说明 + +完成后用中文简要汇报: + +- 数据源 worksheet 数量 +- 各年龄段入选周计划条数 +- 能力目标是否有维度调整(相对旧版) +- 是否有个别年龄段 worksheet 不足及处理方式 + +--- + +## 相关文件 + +| 文件 | 说明 | +| ------------------------------------- | -------------------------- | +| `cache/page-config.json` | **唯一** worksheet 数据源 | +| `miniprogram/pages/age/age.config.ts` | 写入目标 | +| `miniprogram/pages/age/age.ts` | 分龄页引用(只读) | +| `miniprogram/core/data/difficulty.ts` | `AGE_BANDS` / `AgeBandKey` | +| `miniprogram/core/data/categories.ts` | 分类定义 | +| `docs/分龄页内容管理方案.md` | 方案文档(若有) | + +## 已废弃 Skill(勿再使用) + +- `skills/generate-age-abilities/` → 已合并至本 Skill +- `skills/generate-age-weekly-plans/` → 已合并至本 Skill