From e86e5f5aa7491c07b87287ba0e58bc30fee6082c Mon Sep 17 00:00:00 2001 From: R524809 Date: Wed, 20 May 2026 17:57:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E7=94=9F=E6=88=90age?= =?UTF-8?q?.config.ts=20=E7=9A=84skill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...R5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg | Bin 0 -> 136998 bytes cache/page-config.json | 1 + cloudbaserc.json | 4 + miniprogram/pages/age/age.config.ts | 664 +++++++++--------- skills/generate-age-abilities/SKILL.md | 149 ---- skills/generate-age-weekly-plans/SKILL.md | 168 ----- skills/update-age-config/SKILL.md | 243 +++++++ 7 files changed, 580 insertions(+), 649 deletions(-) create mode 100644 cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg create mode 100644 cache/page-config.json create mode 100644 cloudbaserc.json delete mode 100644 skills/generate-age-abilities/SKILL.md delete mode 100644 skills/generate-age-weekly-plans/SKILL.md create mode 100644 skills/update-age-config/SKILL.md diff --git a/cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg b/cache/g4_cBIR5i1_tddab9a90d4a6bea9369a3629eb1254d2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..046bf5281157b42917d8d2934197a186d171fb6b GIT binary patch literal 136998 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 literal 0 HcmV?d00001 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