Generated banner for Scaffold Exercises
Generated logo for Scaffold Exercises

Scaffold Exercises

Matt PocockCommunityCreated by Matt Pocock

  • Skill
  • Review and audit
  • Education and learning
  • MIT
  • No issues found

From the author

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 by Matt Pocock

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a standardized workflow for scaffolding educational exercise content. It guides the creation of directory structures, naming conventions, and required documentation files to ensure they meet specific linting requirements. The process includes parsing exercise plans, generating the necessary folder hierarchy, stubbing out readme files, and running internal validation tools to ensure the structure is correct.

What it does

  • Generates directory structures for course sections and exercises using specific naming conventions.
  • Creates stub readme files for problem, solution, and explainer variants.
  • Validates exercise structures against internal linting rules.
  • Provides instructions for safely moving or renaming exercises using version control commands.
  • Ensures exercise directories contain the required files and content.

When to use it

  • When setting up a new course section or module.
  • When creating stubs for new exercises based on a curriculum plan.
  • When renumbering or reorganizing existing exercise directories.
  • When preparing exercise content to pass automated linting checks.

Advantages

  • Ensures consistency across all course exercise directories.
  • Automates the repetitive setup of folder hierarchies and boilerplate files.
  • Reduces errors by integrating automated linting into the creation process.
  • Maintains git history integrity during exercise reorganization.

Usage examples

“Scaffold a new section 06 called Advanced Prompting with exercises 06.01 and 06.02.”
The agent creates the directory structure exercises/06-advanced-prompting/ with subfolders 06.01-exercise-name and 06.02-exercise-name, populates them with readme stubs, and runs the linter.
“Rename exercise 01.03 to 01.04 in the retrieval section.”
The agent provides the correct git mv command to rename the directory while preserving history and prompts to re-run the linter.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mattpocock/scaffold-exercises/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip scaffold-exercises.zip -d .agents/skills

Documentation by Matt Pocock

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:

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

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:

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"

Files

agents/openai.yaml

interface:
  display_name: "Scaffold Exercises"
  short_description: "Scaffold lint-ready course exercises"

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs a command-line tool, Needs Node.js

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Matt Pocock
Publisher
Matt Pocock (Community)
Source
mattpocock/skills · skills/misc/scaffold-exercises · commit 4ae2317
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Matt Pocock.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download scaffold-exercises.zip