← Matt Skills CuratedCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Matt Skills Curated
Snapshot Sep 30, 2026 · 23:14 UTC · version 1.1.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Scaffold course, workshop, or tutorial exercises following repository conventions. Use when creating exercise folders, problem/solution/explainer variants, numbered lesson files, or workshop boilerplate — even if the user says \"add a new exercise\". Do NOT use for routine application feature scaffolding.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 108
}
],
"name": "scaffold-exercises",
"skill_md_contents": "---\nname: scaffold-exercises\ndescription: \"Scaffold course, workshop, or tutorial exercises following repository conventions. Use when creating exercise folders, problem/solution/explainer variants, numbered lesson files, or workshop boilerplate — even if the user says \\\"add a new exercise\\\". Do NOT use for routine application feature scaffolding.\"\n---\n\n# Scaffold Exercises\n\nScaffold standardized educational exercise directories, problem/solution/explainer variant subfolders, and boilerplate TypeScript modules that strictly pass repository linter rules.\n\n---\n\n## Core Invariants\n\n1. **Strict Dash-Case Numeric Hierarchy**:\n - Section folders: `exercises/XX-section-name/` (2-digit zero-padded number).\n - Exercise folders: `exercises/XX-section-name/XX.YY-exercise-name/` (section.exercise format).\n2. **Mandatory Variant Subfolders**: Every exercise must contain at least one of `problem/`, `solution/`, or `explainer/` (defaulting to `explainer/` for stubs).\n3. **Non-Empty Readme Standards**: Every variant folder must contain a non-empty `readme.md` with a clean `# Title`, description, and zero broken links.\n4. **Git-Aware Moves**: Always use `git mv` instead of raw filesystem renames when renumbering or restructuring existing exercises to preserve commit history.\n5. **Mandatory CLI Lint Gate**: Execute and verify `pnpm ai-hero-cli internal lint` before concluding the scaffolding step.\n\n---\n\n## Architecture & Map of Content (MOC)\n\n```\n[ Curriculum Plan / Outline ] ──► [ Generate Numbered Directories ] ──► [ Scaffold Variant Subfolders ] ──► [ Lint & Commit Gate ]\n```\n\n| Variant Folder | Student Purpose | Required Files |\n|---|---|---|\n| `problem/` | Active student workspace with `// TODO:` markers | `readme.md`, `main.ts` |\n| `solution/` | Complete reference implementation | `readme.md`, `main.ts` |\n| `explainer/` | Conceptual deep-dive without code tasks | `readme.md` |\n\n---\n\n## Step-by-Step Procedure (TWI)\n\n### Step 1: Parse Curriculum Plan & Compute Hierarchy\n- **Action**: Extract section names, exercise titles, and required variant types from the provided outline.\n- **Key Point**: Formulate proper 2-digit numeric prefixes (`01`, `02`, `01.01`, `01.02`).\n- **Why**: Consistent numbering ensures exercises display in correct chronological order in the CLI and UI.\n\n### Step 2: Scaffold Directory Tree and Variant Files\n- **Action**: Create folders (`mkdir -p`) and populate `readme.md` stubs with titles and descriptions.\n- **Key Point**: If code execution is involved, generate a non-empty `main.ts`.\n- **Inline Checklist**:\n - [ ] Dash-case directory naming strictly enforced\n - [ ] Non-empty `readme.md` created in each variant subfolder\n - [ ] No forbidden `.gitkeep` or `speaker-notes.md` files introduced\n\n### Step 3: Run Internal Linter & Fix Issues\n- **Action**: Execute `pnpm ai-hero-cli internal lint` to validate the exercise structure.\n- **Key Point**: Iterate on any reported broken links or missing files until the linter passes completely.\n- **Why**: Pre-commit linting prevents breaking curriculum builds and automated runner harnesses.\n\n---\n\n## Anti-Rationalization Guardrails\n\n| Tempting Rationalization | Binding Rule | Engineering Rationale |\n|---|---|---|\n| *\"Use raw `mv` when renumbering exercises.\"* | **Mandatory `git mv` for all renames and moves.** | Raw moves break Git blame and make diffs unreadable in PR reviews. |\n| *\"Create empty `.gitkeep` files in exercise folders.\"* | **Forbidden. Populate meaningful `readme.md` stubs.** | Linter rules forbid `.gitkeep` files in exercise packages. |\n| *\"Skip running `pnpm ai-hero-cli internal lint` on stubs.\"* | **Mandatory green linter verification.** | Missing title headers or invalid subfolder names break downstream test runners. |\n\n"
}SHA-256 of public snapshot: b322d9790f374ef8fe79bef9bf6424fc4687ea8533a01a1c5c7060bef298a488