scaffold-exercises
vinvcn/mattpocock-skills-zh-cn
Scaffold exercise directory structures with sections, problems, solutions, and explainers that pass linting.
What is scaffold-exercises?
Creates properly-structured exercise directories for course content with automatic validation. Use this when setting up new course sections, creating exercise stubs, or organizing educational materials that need to pass the ai-hero-cli linter.
- Generates exercise directory hierarchies with sections (XX-name) and exercises (XX.YY-name) following naming conventions
- Creates stub readme.md files for problem/, solution/, and explainer/ variants with minimal required content
- Validates directory structure and content against linting rules (non-empty readmes, no broken links, required main.ts files)
- Supports moving and renaming exercises while preserving git history using git mv
- Handles multiple exercise variants (problem, solution, explainer) with flexible subfolder combinations
- Runs pnpm ai-hero-cli internal lint to verify structure before committing
How to install scaffold-exercises
npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill scaffold-exercises- pnpm installed and available in PATH
- ai-hero-cli accessible via pnpm (pnpm ai-hero-cli internal lint command)
- Git repository initialized in the project root
- exercises/ directory exists or will be created
How to use scaffold-exercises
- 1.Parse your exercise plan to extract section names, exercise names, and variant types (problem/solution/explainer)
- 2.Run the skill with your plan to create all required directories using mkdir -p
- 3.Verify that stub readme.md files are generated in each variant subfolder with title and description
- 4.Execute pnpm ai-hero-cli internal lint to validate the structure
- 5.Fix any lint errors (missing readmes, broken links, etc.) and re-run lint until passing
- 6.Commit the scaffolded structure with git commit
Use cases
- Scaffold a new course section with multiple exercises from a structured plan
- Create exercise stubs for a TypeScript course with problem/solution/explainer variants
- Reorganize and renumber existing exercises while maintaining git history
- Set up a single exercise with multiple learning paths (conceptual explainer + hands-on problem)
- Validate that an exercise directory meets all linting requirements before publishing
- Course creators and instructors building educational content
- Technical educators structuring TypeScript or programming exercises
- Content teams organizing multi-variant learning materials
- Developers maintaining ai-hero-cli compatible exercise repositories
scaffold-exercises FAQ
The default is explainer/ unless your plan specifies other variants like problem/ or solution/.
No, readme-only exercises are acceptable for stubs. main.ts is only required if the subfolder contains code.
Use git mv instead of mv to rename directories, update numeric prefixes to maintain order, then re-run lint.
Non-empty readmes, no broken links, proper subfolder structure (at least problem/, explainer/, or explainer.1/), no .gitkeep or speaker-notes.md files, and main.ts files where needed.
Yes, the linter accepts explainer/ or explainer.1/, explainer.2/, etc. for multiple conceptual variants.
Full instructions (SKILL.md)
Source of truth, from vinvcn/mattpocock-skills-zh-cn.
name: scaffold-exercises description: 创建包含 sections、problems、solutions 和 explainers 的 exercise directory structures,并确保通过 linting。Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
Scaffold Exercises
创建能通过 pnpm ai-hero-cli internal lint 的 exercise directory structures,然后用 git commit 提交。
Directory naming
- Sections:
exercises/下的XX-section-name/(例如01-retrieval-skill-building) - Exercises:section 下的
XX.YY-exercise-name/(例如01.03-retrieval-with-bm25) - Section number =
XX,exercise number =XX.YY - Names 使用 dash-case(小写、连字符)
Exercise variants
每个 exercise 至少需要这些 subfolders 中的一个:
problem/— student workspace,包含 TODOssolution/— reference implementationexplainer/— conceptual material,不含 TODOs
创建 stub 时,除非 plan 指定其他 variant,否则默认使用 explainer/。
Required files
每个 subfolder(problem/、solution/、explainer/)都需要一个 readme.md,要求:
- 非空(必须有真实内容,即使只有一行 title 也可以)
- 没有 broken links
创建 stub 时,生成带 title 和 description 的最小 readme:
# Exercise Title
Description here
如果 subfolder 有 code,还需要 main.ts(>1 行)。但对 stubs 来说,readme-only exercise 可以接受。
Workflow
- Parse the plan — 提取 section names、exercise names 和 variant types
- Create directories — 对每个 path 执行
mkdir -p - Create stub readmes — 每个 variant folder 一个带 title 的
readme.md - Run lint — 执行
pnpm ai-hero-cli internal lint验证 - Fix any errors — 迭代直到 lint 通过
Lint rules summary
linter(pnpm ai-hero-cli internal lint)检查:
- 每个 exercise 有 subfolders(
problem/、solution/、explainer/) - 至少存在
problem/、explainer/或explainer.1/之一 - primary subfolder 中存在非空
readme.md - 没有
.gitkeepfiles - 没有
speaker-notes.mdfiles - readmes 中没有 broken links
- readmes 中没有
pnpm run exercisecommands - 除非是 readme-only,否则每个 subfolder 都需要
main.ts
Moving/renaming exercises
重新编号或移动 exercises 时:
- 使用
git mv(不是mv)重命名 directories,保留 git history - 更新 numeric prefix 以维持顺序
- 移动后重新运行 lint
Example:
git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings
Example: stubbing from a plan
给定这样的 plan:
Section 05: Memory Skill Building
- 05.01 Introduction to Memory
- 05.02 Short-term Memory (explainer + problem + solution)
- 05.03 Long-term Memory
创建:
mkdir -p exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer
mkdir -p exercises/05-memory-skill-building/05.02-short-term-memory/{explainer,problem,solution}
mkdir -p exercises/05-memory-skill-building/05.03-long-term-memory/explainer
然后创建 readme stubs:
exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer/readme.md -> "# Introduction to Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/explainer/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/problem/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.02-short-term-memory/solution/readme.md -> "# Short-term Memory"
exercises/05-memory-skill-building/05.03-long-term-memory/explainer/readme.md -> "# Long-term Memory"
Related skills
More from vinvcn/mattpocock-skills-zh-cn and the wider catalog.

setup-matt-pocock-skills
Configure issue tracker, triage labels, and domain docs for engineering agent skills.

setup-pre-commit
Set up Husky pre-commit hooks with lint-staged, Prettier, type checking, and tests.

tdd
Build features test-first using red-green-refactor cycles with behavior-focused tests.

teach
在这个 workspace 中教用户一个新 skill 或概念。

to-issues
Break plans into vertical-slice issues for your issue tracker using tracer-bullet methodology.

to-prd
Convert conversation context into a structured PRD and publish to your project issue tracker.