用途:根据给定的练习规划,生成符合 lint 规范的练习目录树,包括章节、题目及题目变体文件夹和最小 readme 桩,最后用 git commit 提交。
目录规范:章节位于 exercises/ 下,形如 XX-section-name/(如 01-retrieval-skill-building);题目位于章节内,形如 XX.YY-exercise-name/(如 01.03-retrieval-with-bm25)。名称使用短横线小写格式。
变体:每个题目至少包含 problem/、solution/、explainer/ 之一。problem 为学生工作区含 TODO,solution 为参考实现,explainer 为概念材料且无 TODO。未指定时默认创建 explainer/。
必需文件:每个子文件夹需有非空 readme.md(至少一行标题,如“# Exercise Title”加描述),且无失效链接。若含代码,还需 main.ts 且超过一行;仅 readme 的桩也可通过验收。
工作流:解析规划提取章节名、题名与变体类型;用 mkdir -p 创建目录;为每个变体创建 readme 桩;运行 pnpm ai-hero-cli internal lint 校验;迭代修复直到通过。
校验规则:题目须有子文件夹;problem/、explainer/ 或 explainer.1/ 至少存在一个;主文件夹中 readme.md 存在且非空;不得有 .gitkeep 和 speaker-notes.md;readme 无失效链接;readme 不得出现 pnpm run exercise 命令;除仅 readme 外每个子文件夹需 main.ts。
移动与重命名:使用 git mv 而非 mv 以保留历史,同时更新数字前缀维持顺序,并在移动后重新运行 lint,例如将 01.03 改为 01.04。
适用场景:按教学计划快速搭建课程、练习仓库时。限制:其行为依赖具体规划与项目内 lint 工具,官方文本暂未提供更多说明;不适用于非该目录结构或非 pnpm ai-hero-cli 环境的项目。