Skip to main content
skill Claude Code

scaffold-exercises — Claude Code skill: what it does, how to install

This skill builds course exercise directories with sections, problems, solutions, and explainers. Use it when starting a new course section or creating exercise stubs.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add mattpocock/skills
/plugin install mattpocock-skills@mattpocock
Open on GitHub

What scaffold-exercises does

scaffold-exercises reads a course plan and creates section and exercise directories under exercises/. Names use numeric prefixes and dash-case: sections follow XX-section-name/, while exercises use XX.YY-exercise-name/. Each selected variant gets a non-empty readme.md.

The skill supports problem/, solution/, and explainer/ folders. For stubs, it defaults to explainer/; a code-containing subfolder also needs main.ts. It then runs pnpm ai-hero-cli internal lint, fixes structural issues, and can commit the result with git commit. Renames and moves use git mv so the repository history is preserved.

Install it when a course repository follows these exercise conventions and the structure comes from a written plan. For a one-off folder outside this layout, the skill is unnecessary.

What it helps with

  • create numbered course sections
  • split an exercise into problem/, solution/, and explainer/ folders
  • add non-empty readme.md stubs
  • validate the layout with pnpm ai-hero-cli internal lint
  • renumber an exercise with git mv

Example prompts for the agent

  • Scaffold the sections and exercises from this plan under `exercises/`, then run `pnpm ai-hero-cli internal lint`.
  • Create exercise stubs with `explainer/readme.md`, and add `problem/` and `solution/` for the exercise that lists them.
  • Move this exercise to its new number with `git mv`, update the structure, and run `pnpm ai-hero-cli internal lint` again.

How to install scaffold-exercises

1Plugin marketplace

/plugin marketplace add mattpocock/skills
/plugin install mattpocock-skills@mattpocock

This installs the whole mattpocock-skills plugin with all its skills

2Skills CLI (Vercel)

npx skills add mattpocock/skills --skill scaffold-exercises -a claude-code

3Manually: put the files in place

~/.claude/skills/scaffold-exercises/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/scaffold-exercises/

From the same set32

The whole set →
grill-me Matt Pocock grill-me interviews you about a plan or design to expose gaps and sharpen decisions. Use it before implementation starts. Claude Code 1,424,476installs grill-with-docs Matt Pocock This skill interviews you about a plan or design and creates ADRs and a glossary along the way. Use it when decisions need sharper definition. Claude Code 1,219,756installs improve-codebase-architecture Matt Pocock This skill scans a codebase for architectural friction, then builds a visual HTML report with refactoring candidates. Use it before a deeper architecture review. Claude Code 1,163,035installs tdd Matt Pocock Guides the red-green TDD loop: ensures tests are written first, keep them at public interfaces, and avoid coupling to implementation details. Claude Code 1,141,062installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs handoff Matt Pocock Creates a handoff document from the current conversation so another agent can continue the work. Use it when a task moves to a new session or agent. Claude Code 1,038,491installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. Claude Code 986,201installs

Similar

Questions about scaffold-exercises

How do I install scaffold-exercises in Claude Code?

In Claude Code, run /plugin marketplace add mattpocock/skills, then run /plugin install mattpocock-skills@mattpocock.

What does scaffold-exercises do?

The skill creates section and exercise directories, adds readme.md files for the chosen variants, and checks the result with pnpm ai-hero-cli internal lint.

Which exercise variants does scaffold-exercises support?

It supports problem/, solution/, and explainer/ folders. For a stub, it uses explainer/ by default unless the plan says otherwise.

Source text

SKILL.md · MIT
---
name: scaffold-exercises
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.
---

# Scaffold Exercises

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

## 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)

## 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.

## 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:

```md
# 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.

## 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

## 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

## 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:

```bash
git mv exercises/01-retrieval/01.03-embeddings exercises/01-retrieval/01.04-embeddings
```

## 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:

```bash
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"
```

© Matt Pocock · MIT · mattpocock/skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor