Skill Tracer
Skills › Skills For Real Engineers › scaffold-exercises

scaffold-exercises

skill · 106 lines · MIT · skills/misc/scaffold-exercises/SKILL.md

The facts

Its description

Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent would pick this skill when someone wants to lay out a course's exercise folders — creating section and exercise directories, stubbing readmes, or setting up a new section — rather than writing the exercise content itself.

Things a person might say (the model's guesses)

  • “Scaffold the exercises for section 05 on memory skill building”
  • “Create exercise stubs from this plan”
  • “Set up a new course section with explainer folders”

A model's summary of when it is used.

A model's reading

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (1) Close

The text

Open on GitHub
1---
2name: scaffold-exercises
3description: Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
4---
5
6# Scaffold Exercises
7
8Create exercise directory structures that pass `pnpm ai-hero-cli internal lint`, then commit with `git commit`.
9

Scaffold Exercises

Create exercise directory structures that pass pnpm ai-hero-cli internal lint, then commit with git commit.

Raw lines 1 to 9
10## Directory naming
12- **Sections**: `XX-section-name/` inside `exercises/` (e.g., `01-retrieval-skill-building`)
13- **Exercises**: `XX.YY-exercise-name/` inside a section (e.g., `01.03-retrieval-with-bm25`)
14- Section number = `XX`, exercise number = `XX.YY`
15- Names are dash-case (lowercase, hyphens)

Directory naming

  • Sections: XX-section-name/ inside exercises/ (e.g., 01-retrieval-skill-building)
  • Exercises: XX.YY-exercise-name/ inside a section (e.g., 01.03-retrieval-with-bm25)
  • Section number = XX, exercise number = XX.YY
  • Names are dash-case (lowercase, hyphens)
Raw lines 10 to 16
17## Exercise variants
19Each exercise needs at least one of these subfolders:
21- `problem/` - student workspace with TODOs
22- `solution/` - reference implementation
23- `explainer/` - conceptual material, no TODOs
25When stubbing, default to `explainer/` unless the plan specifies otherwise.

Exercise variants

Each exercise needs at least one of these subfolders:

  • problem/ - student workspace with TODOs
  • solution/ - reference implementation
  • explainer/ - conceptual material, no TODOs

When stubbing, default to explainer/ unless the plan specifies otherwise.

Raw lines 17 to 26
27## Required files
29Each subfolder (`problem/`, `solution/`, `explainer/`) needs a `readme.md` that:
31- Is **not empty** (must have real content, even a single title line works)
32- Has no broken links
34When stubbing, create a minimal readme with a title and a description:
36```md
37# Exercise Title
39Description here
40```
42If the subfolder has code, it also needs a `main.ts` (>1 line). But for stubs, a readme-only exercise is fine.

Required files

Each subfolder (problem/, solution/, explainer/) needs a readme.md that:

  • Is not empty (must have real content, even a single title line works)
  • Has no broken links

When stubbing, create a minimal readme with a title and a description:

# Exercise Title

Description here

If the subfolder has code, it also needs a main.ts (>1 line). But for stubs, a readme-only exercise is fine.

Raw lines 27 to 43
44## Workflow
461. **Parse the plan** - extract section names, exercise names, and variant types
472. **Create directories** - `mkdir -p` for each path
483. **Create stub readmes** - one `readme.md` per variant folder with a title
494. **Run lint** - `pnpm ai-hero-cli internal lint` to validate
505. **Fix any errors** - iterate until lint passes

Workflow

  1. Parse the plan - extract section names, exercise names, and variant types
  2. Create directories - mkdir -p for each path
  3. Create stub readmes - one readme.md per variant folder with a title
  4. Run lint - pnpm ai-hero-cli internal lint to validate
  5. Fix any errors - iterate until lint passes
Raw lines 44 to 51
52## Lint rules summary
54The linter (`pnpm ai-hero-cli internal lint`) checks:
56- Each exercise has subfolders (`problem/`, `solution/`, `explainer/`)
57- At least one of `problem/`, `explainer/`, or `explainer.1/` exists
58- `readme.md` exists and is non-empty in the primary subfolder
59- No `.gitkeep` files
60- No `speaker-notes.md` files
61- No broken links in readmes
62- No `pnpm run exercise` commands in readmes
63- `main.ts` required per subfolder unless it's readme-only

Lint rules summary

The linter (pnpm ai-hero-cli internal lint) checks:

  • Each exercise has subfolders (problem/, solution/, explainer/)
  • At least one of problem/, explainer/, or explainer.1/ exists
  • readme.md exists and is non-empty in the primary subfolder
  • No .gitkeep files
  • No speaker-notes.md files
  • No broken links in readmes
  • No pnpm run exercise commands in readmes
  • main.ts required per subfolder unless it's readme-only
Raw lines 52 to 64
65## Moving/renaming exercises
67When renumbering or moving exercises:
691. Use `git mv` (not `mv`) to rename directories - preserves git history
702. Update the numeric prefix to maintain order
713. Re-run lint after moves
73Example:
75```bash
76git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings
77```

Moving/renaming exercises

When renumbering or moving exercises:

  1. Use git mv (not mv) to rename directories - preserves git history
  2. Update the numeric prefix to maintain order
  3. Re-run lint after moves

Example:

git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings
Raw lines 65 to 78
79## Example: stubbing from a plan
81Given a plan like:
83```
84Section 05: Memory Skill Building
85- 05.01 Introduction to Memory
86- 05.02 Short-term Memory (explainer + problem + solution)
87- 05.03 Long-term Memory
88```
90Create:
92```bash
93mkdir -p exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer
94mkdir -p exercises/05-memory-skill-building/05.02-short-term-memory/{explainer,problem,solution}
95mkdir -p exercises/05-memory-skill-building/05.03-long-term-memory/explainer
96```
98Then create readme stubs:
100```
101exercises/05-memory-skill-building/05.01-introduction-to-memory/explainer/readme.md -> "# Introduction to Memory"
102exercises/05-memory-skill-building/05.02-short-term-memory/explainer/readme.md -> "# Short-term Memory"
103exercises/05-memory-skill-building/05.02-short-term-memory/problem/readme.md -> "# Short-term Memory"
104exercises/05-memory-skill-building/05.02-short-term-memory/solution/readme.md -> "# Short-term Memory"
105exercises/05-memory-skill-building/05.03-long-term-memory/explainer/readme.md -> "# Long-term Memory"
106```

Example: stubbing from a plan

Given a plan like:

Section 05: Memory Skill Building
- 05.01 Introduction to Memory
- 05.02 Short-term Memory (explainer + problem + solution)
- 05.03 Long-term Memory

Create:

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

Then create 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"
Raw lines 79 to 106

From mattpocock/skills at 4ae2317, 2026-10-31. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.