习题脚手架
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/scaffold-exercises。
技能介绍
为什么需要它
新建一套习题目录时,手写结构很容易踩坑:章节叫 05-memory-skill-building 还是 05_memory?习题编号用 05.01 还是 05-01?每道题需要 problem/、solution/、explainer/ 三个变体,漏建一个,学生提交和参考实现就对不上。更常见的是,每个目录里的 readme.md 是空文件,提交后 CI 的 linter 直接报错。
这个技能负责把「骨架」这一步自动化:输入一份习题规划,输出一组可直接填充的目录结构,并通过项目 linter 校验。
核心能力
解析规划
从用户描述中抽出章节名、习题名和变体类型(problem / solution / explainer),也支持接收 ExercisePlan 工件。
目录命名
- 章节:
exercises/下的XX-section-name/,如01-retrieval-skill-building - 习题:章节内的
XX.YY-exercise-name/,如01.03-retrieval-with-bm25 - 名称一律小写连字符,编号维护顺序
变体结构
每道题至少包含一个子目录:
problem/:学生工作区,带 TODOsolution/:参考实现explainer/:概念材料,无 TODO
桩默认用 explainer/。
必需文件
- 每个子目录需要非空
readme.md(至少一行标题) - 有代码的子目录需要
main.ts(超过一行) - 桩只需要标题加描述的最小 readme
lint 与重命名
用项目 linter(如 pnpm ai-hero-cli internal lint)校验,迭代修复直到通过。调整结构时用 git mv 保留历史,更新数字前缀后重跑 lint。
适用边界
- 只搭结构,不写实现:生成的是骨架,
solution/里的答案和explainer/里的正文需要内容作者填充 - lint 规则以项目为准:文中给的是常见规则,具体以项目实际配置的 linter 为准
- 桩不需要
main.ts:只有包含代码的子目录才需要,纯文档桩用 readme 即可 - 下游消费:骨架可交给内容作者填充,或交给 teach 用于教学
使用场景
- 新课程立项,要把记忆技能章节拆成 05.01 介绍、05.02 短期记忆等习题目录,并生成最小 readme 桩
- 已有习题树缺少 problem/ 与 solution/ 变体,需要批量补齐目录结构并让 linter 通过
- 调整章节编号顺序,用 git mv 重命名章节前缀,保留提交历史并重跑 lint
- 内容作者尚未动笔,先要一份可直接填充的习题骨架,包含 explainer/ 变体
适合人员
- 课程工程师:每接手一门新课,需要按统一命名规范生成习题目录骨架并通过 lint
- 内容作者:往 solution/ 和 explainer/ 填充答案与讲解前,需要先拿到带非空 readme 的骨架
- 教学平台维护者:多个课程共用 exercises/ 目录规范,需保持编号顺序与变体结构一致