scaffold-exercises
Agent skill fromvinvcn/mattpocock-skills-zh-CN
创建包含章节、题目、答案和讲解的练习目录结构,并确保通过 linting。适用于用户想 scaffold exercises、创建 exercise stubs,或设置新的课程章节时。
How to install scaffold-exercises
install scaffold-exercises
# install the mattpocock-skills-zh-CN pack with the skills CLI
npx skills add vinvcn/mattpocock-skills-zh-CN# or add only this skill to Claude Code: copy the folder
skills/misc/scaffold-exercises/
# into
~/.claude/skills/scaffold-exercises/ (all projects)
.claude/skills/scaffold-exercises/ (one project)
1# 搭建练习23创建能通过 `pnpm ai-hero-cli internal lint` 的 exercise directory structures,然后用 `git commit` 提交。45## 目录命名67- **Sections**:`exercises/` 下的 `XX-section-name/`(例如 `01-retrieval-skill-building`)8- **Exercises**:section 下的 `XX.YY-exercise-name/`(例如 `01.03-retrieval-with-bm25`)9- Section number = `XX`,exercise number = `XX.YY`10- Names 使用 dash-case(小写、连字符)1112## Exercise 变体1314每个 exercise 至少需要这些 subfolders 中的一个:1516- `problem/` - student workspace,包含 TODOs17- `solution/` - reference implementation18- `explainer/` - conceptual material,不含 TODOs1920创建 stub 时,除非 plan 指定其他 variant,否则默认使用 `explainer/`。2122## 必需文件2324每个 subfolder(`problem/`、`solution/`、`explainer/`)都需要一个 `readme.md`,要求:2526- **非空**(必须有真实内容,即使只有一行 title 也可以)27- 没有 broken links2829创建 stub 时,生成带 title 和 description 的最小 readme:3031```md32# Exercise Title3334Description here35```3637如果 subfolder 有 code,还需要 `main.ts`(>1 行)。但对 stubs 来说,readme-only exercise 可以接受。3839## 工作流40411. **Parse the plan** - 提取 section names、exercise names 和 variant types422. **Create directories** - 对每个 path 执行 `mkdir -p`433. **Create stub readmes** - 每个 variant folder 一个带 title 的 `readme.md`444. **Run lint** - 执行 `pnpm ai-hero-cli internal lint` 验证455. **Fix any errors** - 迭代直到 lint 通过4647## Lint 规则摘要4849linter(`pnpm ai-hero-cli internal lint`)检查:5051- 每个 exercise 有 subfolders(`problem/`、`solution/`、`explainer/`)52- 至少存在 `problem/`、`explainer/` 或 `explainer.1/` 之一53- primary subfolder 中存在非空 `readme.md`54- 没有 `.gitkeep` files55- 没有 `speaker-notes.md` files56- readmes 中没有 broken links57…
Excerpt shown under the repository's MIT license.
