scaffold-exercises
vinvcn/mattpocock-skills-zh-cn
Scaffold exercise directory structures with chapters, problems, solutions, and explanations that pass linting.
What is scaffold-exercises?
Creates standardized exercise directory structures for course content with proper naming conventions, required files, and linting validation. Use this when setting up new course sections, creating exercise stubs, or organizing educational material that needs to pass pnpm ai-hero-cli linting.
- Generates exercise directories with sections (XX-section-name) and exercises (XX.YY-exercise-name) following dash-case naming
- Creates required readme.md files for problem/, solution/, and explainer/ variants with minimal valid content
- Validates directory structure and file requirements against linting rules (non-empty readmes, no broken links, proper main.ts files)
- Runs pnpm ai-hero-cli internal lint automatically and iterates until all checks pass
- Supports moving and renaming exercises with git mv to preserve history and maintain numeric ordering
How to install scaffold-exercises
npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill scaffold-exercises- pnpm installed and configured
- Access to a git repository with ai-hero-cli available
- Understanding of the exercise structure: sections, exercises, and variants (problem/solution/explainer)
How to use scaffold-exercises
- 1.Parse your course plan to extract section names, exercise names, and variant types (problem, solution, explainer)
- 2.Run the skill to create directories and stub files based on your plan
- 3.Review generated readme.md files and update titles/descriptions as needed
- 4.Execute pnpm ai-hero-cli internal lint to validate the structure
- 5.Fix any linting errors by adding missing files or correcting content (non-empty readmes, no broken links)
- 6.Commit the scaffolded structure with git
Use cases
- Setting up a new course chapter with multiple exercises and variants (problem/solution/explainer)
- Creating exercise stubs from a plan that specifies section names, exercise names, and variant types
- Reorganizing or renumbering existing exercises while maintaining git history and linting compliance
- Scaffolding readme-only exercises for conceptual material without code components
- Batch-creating exercise directories that conform to ai-hero-cli standards
- Course creators and instructors building educational content
- Content developers managing exercise repositories with strict linting requirements
- Teams using ai-hero-cli for exercise validation and deployment
- Anyone organizing structured learning materials with multiple exercise variants
scaffold-exercises FAQ
The default is explainer/ unless your plan specifies other variants like problem/ or solution/.
Only if the subfolder contains code. Readme-only exercises are acceptable for stubs, but if you add code later, main.ts (>1 line) becomes required.
Use git mv instead of mv to rename directories, update numeric prefixes to maintain order, then run lint again. Example: git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings
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 code exists.
Yes, readme-only exercises are valid for stubs and conceptual material, but the readme.md must be non-empty with at least a title.
Full instructions (SKILL.md)
Source of truth, from vinvcn/mattpocock-skills-zh-cn.
name: scaffold-exercises description: 创建包含章节、题目、答案和讲解的练习目录结构,并确保通过 linting。适用于用户想 scaffold exercises、创建 exercise stubs,或设置新的课程章节时。
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 repository settings for Matt Pocock's engineering skills: issue tracker, triage labels, and domain docs layout.

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

setup-ts-deep-modules
Enforce deep module boundaries in TypeScript monorepos using dependency-cruiser.

tdd
Test-Driven Development: write failing tests first, then minimal code to pass them.

teach
Create a structured learning workspace to teach users new skills or concepts with lessons, references, and progress tracking.

to-issues
Break plans into independent vertical-slice issues for your tracker using tracer-bullet decomposition.