scaffold-exercises
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
Skill by mattpocock
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mattpocock-scaffold-exercises
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: education, code-generation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/scaffold-exercises
What's inside
- Skill 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.
- License
- MIT
- Instructions
- 103 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# 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"
```From mattpocock/skills, MIT.
More from mattpocock/skills
- 0.885score
setup-pre-commit
mattpocock
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.882score
setup-ts-deep-modules
mattpocock
Wire dependency-cruiser into a TypeScript repo so each package is a deep module, with implementation hidden in subfolders and reachable only through its…
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
writing-shape
mattpocock
Writing, exploit: shape raw material into an article, paragraph by paragraph.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
writing-beats
mattpocock
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
chief-of-staff
mattpocock
Pursue a long-running goal in a single session by co-ordinating subagents.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.875score
writing-fragments
mattpocock
Writing, explore: mine raw fragments, no structure yet.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.750score
diagnosing-bugs
mattpocock
Diagnosis loop for hard bugs and performance regressions.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.750score
git-guardrails-claude-code
mattpocock
Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.745score
codebase-design
mattpocock
Shared vocabulary for designing deep modules.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.745score
code-review
mattpocock
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding…
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.745score
domain-modeling
mattpocock
Build and sharpen a project's domain model.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.745score
prototype
mattpocock
Build a throwaway prototype to answer a design question.
SkillAFreshness: A★ 302.4KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 302,383
- Forks
- 25,428
- Open issues
- 184
- Last commit (this folder)
- Jul 13, 2026 (3 months ago)
- Last release
- Oct 4, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/mattpocock/skills
- Website
- aihero.dev/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.369score
scaffold-exercises
leandrocfe
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillBFreshness: B★ 40Claude Code +9 - 0.362score
scaffold-exercises
tajo9128
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillAFreshness: A★ 4Claude Code +9 - 0.362score
scaffold-exercises
vasyapym
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillBFreshness: B★ 20Claude Code +9 - 0.336score
scaffold-exercises
tt-a1i
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 187Claude Code +9 - 0.321score
scaffold-exercises
uwvwko-zzz
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 10Claude Code +9 - 0.319score
scaffold-exercises
harshit2490
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 6Claude Code +9 - 0.315score
scaffold-exercises
jamesdebatty
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillBFreshness: BClaude Code +9 - 0.309score
scaffold-exercises
mkurman
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillAFreshness: A★ 325Claude Code +9 - 0.298score
scaffold-exercises
steph-frtech
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 1Claude Code +9 - 0.298score
scaffold-exercises
ThorStarlord
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 1Claude Code +9 - 0.295score
scaffold-exercises
arkan
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: C★ 1Claude Code +9 - 0.282score
scaffold-exercises
Hsiang-LinC
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting.
SkillCFreshness: CClaude Code +9
More from mattpocock
- 0.885score
setup-pre-commit
mattpocock
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.882score
setup-ts-deep-modules
mattpocock
Wire dependency-cruiser into a TypeScript repo so each package is a deep module, with implementation hidden in subfolders and reachable only through its…
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
writing-shape
mattpocock
Writing, exploit: shape raw material into an article, paragraph by paragraph.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
chief-of-staff
mattpocock
Pursue a long-running goal in a single session by co-ordinating subagents.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.878score
writing-beats
mattpocock
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
SkillAFreshness: A★ 302.4KClaude Code +9 - 0.875score
writing-fragments
mattpocock
Writing, explore: mine raw fragments, no structure yet.
SkillAFreshness: A★ 302.4KClaude Code +9
Cite this page
scaffold-exercises skill. Agent Mart. https://agentmart.dev/skills/mattpocock-scaffold-exercises (last updated 2026-10-24)