Skill detail
scaffold-exercises
Scaffolds graded problem sets with sections, problems, worked solutions, and explainers across analytical, empirical, and coding types, emitting a student set and solution key.
Why we recommend it: Problem sets with solutions can support student practice, though it is built for instructors.
Inspect before use
Read the source instructions and check the requirements before you install this skill.
SKILL.md
The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.
--- name: scaffold-exercises description: Scaffold a graded problem set with sections, problems, worked solutions, and short "why this matters" explainers across analytical, empirical, and coding types. Use when user says "make a problem set on X", "scaffold exercises for this lecture", "create practice problems", "generate homework with a solution key", "build a graded assignment on topic Y". Emits a clean student set plus a separate solution key — NOT for grading submissions or auto-checking student answers. argument-hint: "[topic] [--difficulty intro|core|advanced] [--count N] [--types analytical,empirical,coding] [--dataset path] [--no-solutions]" allowed-tools: ["Read", "Grep", "Glob", "Write", "Bash"] effort: medium --- # `/scaffold-exercises` — Problem Set Scaffolder Generate a graded problem set as two files: a clean **student set** (problems only) and a **solution key** (worked solutions + a one-line explainer per problem). Pattern imported from `mattpocock/skills`, adapted for economics teaching — the primary lens is graded coursework that mixes derivation, estimation, and code. **Input:** `$ARGUMENTS` — a topic (e.g., "instrumental variables", "consumer theory", "quantile regression") and optional flags. See [Flags](#flags). --- ## When to use - You have a lecture or reading and want a matching assignment with an answer key. - You want a mix of problem types (derive, estimate, code) at a controlled difficulty, with solutions emitted **separately** so the student file stays clean. Do **not** use this to grade submissions, auto-check answers, or build a timed exam — it scaffolds *practice/graded* material, not assessment infrastructure. --- ## Problem types | Type | What the student does | Solution artifact | | --- | --- | --- | | **analytical** | Derive / prove / characterize (theory: optimization, identification, comparative statics) | Step-by-step derivation with the key lemma named | | **empirical** | Estimate + interpret on a provided or simulated dataset | Expected estimate, sign/magnitude reasoning, common-mistake note | | **coding** | Implement an estimator or simulation in R or Stata | Runnable reference snippet + expected output shape | If no dataset is supplied for an empirical problem, generate a small **simulated** one with a fixed seed (YYYYMMDD) so the answer key is deterministic and reproducible. --- ## Workflow ### Phase 0: Set topic, difficulty, counts, types (Pre-Flight) Read any source material the user points at (lecture `.tex`/`.qmd`, a paper, a dataset header) and produce a Pre-Flight Report **before** generating problems: ```markdown ## Pre-Flight Report — Problem Set **Topic:** [topic] **Source(s) read:** [lecture/paper/dataset — one-line takeaway each] **Difficulty:** intro | core | advanced **Counts by type:** analytical=N, empirical=N, coding=N (total = `--count`) **Dataset:** [provided path | simulated with seed YYYYMMDD | none] **Learning objectives:** [2-4 bullets the set should exercise] ``` Resolve every flag here (interactive choices are gathered before generation, not mid-run). If the topic is too vague to write objectives, ask one clarifying question and stop. Otherwise proceed. ### Phase 1: Generate problems For each problem, write a number, a section heading, the prompt, and any data/notation it needs. Conventions: - **Motivation before mechanics** — one sentence on why the problem is worth solving, matching `create-lecture`'s pedagogy. - **Notation reuse** — match symbols to the source lecture; never introduce a clashing symbol for an already-defined object. - **Difficulty calibration** — *intro* checks one concept; *core* chains 2-3 steps; *advanced* requires a non-obvious insight or identification argument. - **Self-contained** — each problem states its own assumptions; no "as in lecture 4" dangling references. ### Phase 2: Generate worked solutions + explainers For every problem, write: 1. A **worked solution** — full derivation, expected estimate, orRead the full source on GitHub (opens external page)