Files
doodle-mini/skills/generate-age-weekly-plans/SKILL.md
T
2026-05-06 17:28:51 +08:00

169 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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<AgeBandKey, WeekPlan[]> = {
'3-4': [
{
week: 1,
theme: '数感启蒙',
exercises: [
{
_id: 'xxxxxxxx',
title: '找数字,涂一涂',
subtitle: '在数字方阵中找出目标数字并涂色',
path: '/mathPages/mathDraw/mathDraw?id=number-find',
},
// ...
],
},
// week 24
],
// '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` — 方案文档