Files
doodle-mini/skills/update-age-config/SKILL.md
T
2026-05-20 17:57:39 +08:00

8.5 KiB
Raw Blame History

name, description
name description
update-age-config 基于 cache/page-config.json 更新分龄页 age.config.ts 中的 AGE_ABILITIES 与 AGE_WEEK_PLANS。在用户说「更新分龄页数据」「更新分龄config」「更新分龄学习计划」 或同类表述时使用;每次执行须同时更新上述两个常量。

Skill: update-age-config

一次性更新 miniprogram/pages/age/age.config.ts 中的 AGE_ABILITIESAGE_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_ABILITIESAGE_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
    • titlesubtitlepath
    • categoryageBanddifficulty
    • 若有:ageMin / ageMaxdownloadslikes

执行后先向用户简报worksheet 总数、各 category 数量、各年龄段可匹配数量,请用户确认数据为最新。

年龄段匹配规则

数据源中 ageBand 多为「3-5岁」「4-6岁」等区间文案。映射到 config key 时:

  • 使用 core/data/difficulty.tsAGE_BANDSminAge / 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 内容)

若某年龄段内容集中在特定领域,可调整维度名称以更贴合实际。

输出数据结构

export const AGE_ABILITIES: Record<AgeBandKey, AbilityItem[]> = {
    '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. 主题连贯:每周有明确 theme46 个汉字)
  4. 基于实际内容:每条练习必须来自数据源,禁止虚构 _id / path
  5. 合理搭配:每周 3 个练习尽量来自不同分类
  6. 第 4 周综合:综合巩固前 3 周核心技能

主题命名规范

  • 46 个汉字,体现当周重点
  • 示例:数感启蒙、形状与连线、趣味专注、综合练习、拼音入门

worksheet 不足时

  • 不足 12 条(4×3)时,允许同一条在不同周出现,但同一年龄段内尽量少重复
  • 某段完全无匹配项时,可选用相邻年龄段且 ageBand 最接近 的真实条目,并在回复中说明
  • 仍须使用数据源中的真实 id_idtitlesubtitlepath

选题优先级

在同一年龄段内,优先 downloads + likes 较高、难度与周次匹配的 worksheet。

输出数据结构

export type WeekExercise = {
    _id: string; // = 数据源 item.id
    title: string;
    subtitle: string;
    path: string; // 与数据源完全一致,可含 query
};

export const AGE_WEEK_PLANS: Record<AgeBandKey, WeekPlan[]> = {
    '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'
};

周计划数据规范

  • 每个年龄段 4WeekPlanweek 为 14
  • 每个 WeekPlan 3exercises
  • 四字段齐全:_idtitlesubtitlepath
  • _idpathsubtitlecache/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_ABILITIESAGE_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