From 37329590bc5e99143a0ac94106630323453e038a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 12 Jan 2026 23:10:08 +0000 Subject: [PATCH 1/2] Add instructor documentation for Epic Workshop agent authoring Co-authored-by: me --- instructor/.gitkeep | 1 + instructor/agent-brief-template.md | 85 +++++++++++++ instructor/epic-workshop-anatomy.md | 132 ++++++++++++++++++++ instructor/exercise-authoring.md | 106 ++++++++++++++++ instructor/mdx-style-guide.md | 111 ++++++++++++++++ instructor/readme.md | 34 +++++ instructor/validation-and-quality.md | 105 ++++++++++++++++ instructor/workshop-design-playbook.md | 121 ++++++++++++++++++ instructor/workshop-template-checklist.md | 66 ++++++++++ reference-workshops/mcp-auth | 1 + reference-workshops/mcp-ui | 1 + reference-workshops/mocking-techniques | 1 + reference-workshops/react-fundamentals | 1 + reference-workshops/react-performance | 1 + reference-workshops/react-server-components | 1 + reference-workshops/web-forms | 1 + 16 files changed, 768 insertions(+) create mode 100644 instructor/.gitkeep create mode 100644 instructor/agent-brief-template.md create mode 100644 instructor/epic-workshop-anatomy.md create mode 100644 instructor/exercise-authoring.md create mode 100644 instructor/mdx-style-guide.md create mode 100644 instructor/readme.md create mode 100644 instructor/validation-and-quality.md create mode 100644 instructor/workshop-design-playbook.md create mode 100644 instructor/workshop-template-checklist.md create mode 160000 reference-workshops/mcp-auth create mode 160000 reference-workshops/mcp-ui create mode 160000 reference-workshops/mocking-techniques create mode 160000 reference-workshops/react-fundamentals create mode 160000 reference-workshops/react-performance create mode 160000 reference-workshops/react-server-components create mode 160000 reference-workshops/web-forms diff --git a/instructor/.gitkeep b/instructor/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/instructor/.gitkeep @@ -0,0 +1 @@ + diff --git a/instructor/agent-brief-template.md b/instructor/agent-brief-template.md new file mode 100644 index 0000000..a1c473b --- /dev/null +++ b/instructor/agent-brief-template.md @@ -0,0 +1,85 @@ +# Agent brief template (copy/paste for instructors) + +Use this prompt to instruct an agent to generate a complete Epic Workshop on a topic. + +## Prompt + +### Context + +You are building an **Epic Workshop** repository using the Epic Workshop format. + +You must: + +- scope the topic appropriately for a workshop +- design a cohesive set of exercises with small deltas +- generate exercises/steps in the correct directory structure +- write all required `README.mdx`/`FINISHED.mdx` files +- add tests or other verification for each step +- validate by running through the workshop using the **Epic Workshop MCP server tools** + +### Inputs + +- **Topic**: +- **Audience**: +- **Timebox**: +- **Assumed prerequisites**: + - +- **Target outcomes** (3–7 bullets): + - +- **Preferred stack/runtime** (if any): + - +- **Constraints**: + - All filenames must be lower-kebab-case. + - Keep problem→solution diffs small and focused. + +### Repository starting point + +Start from an existing template: + +- clone/copy `workshop-template/` into a new repo directory +- update root `package.json#name` and `package.json#epicshop` metadata +- ensure `npm run setup` and `npm start` work + +### Deliverables (must produce all) + +1. **Workshop plan** (before writing code): + - title + subtitle + - outcomes + - exercise list with step titles and acceptance criteria + - app type per exercise (simple vs project) + - tests plan per step +2. **Workshop implementation**: + - correct `exercises/` structure + - all MDX instructions written + - problem/solution apps created for each step + - tests (or verification) for each step +3. **Validation proof**: + - demonstrate the workshop can be navigated using the Epic Workshop MCP tools: + - `get_workshop_context` + - `set_playground` + - `get_exercise_step_context` + - `open_exercise_step_files` + - `get_exercise_step_progress_diff` + - `get_what_is_next` + - ensure at least one full exercise is completable end-to-end + +### Working agreement (iteration) + +Work in an iterative loop: + +- implement **exercise 01 fully**, validate it, then proceed +- do not generate the entire workshop without intermediate validation +- when you discover missing prerequisites or scope issues, adjust the plan and continue + +### Tone and instruction style + +Write learner instructions that include: + +- what to do +- why it matters +- where to work (use `` when helpful) +- acceptance criteria +- at least one helpful tip or gotcha when appropriate + +Now begin by producing the **Workshop plan** only. + diff --git a/instructor/epic-workshop-anatomy.md b/instructor/epic-workshop-anatomy.md new file mode 100644 index 0000000..227faec --- /dev/null +++ b/instructor/epic-workshop-anatomy.md @@ -0,0 +1,132 @@ +# Epic Workshop anatomy (repo structure + conventions) + +This is the **non-negotiable “shape”** of an Epic Workshop. Agents should follow this exactly unless there’s a strong reason not to. + +## Core definitions + +- **Workshop**: the entire repository. +- **Workshop app**: the Epic Workshop app that renders exercises and runs apps/tests. +- **Exercise**: each directory inside `exercises/` like `01.topic-name/`. +- **Exercise step**: each subdirectory inside an exercise like `01.problem.some-step/` and `01.solution.some-step/`. +- **Problem app**: the starting state for a step. +- **Solution app**: the finished state for a step. +- **Playground**: where learners do their work; “Set to Playground” copies a chosen app into `playground/`. + +## Canonical directory structure + +At a high level: + +``` +. +├── README.md +├── package.json +├── package-lock.json +├── epicshop/ +│ ├── package.json +│ ├── setup.js +│ └── ... workshop app helpers ... +├── exercises/ +│ ├── README.mdx +│ ├── FINISHED.mdx +│ ├── 01.some-exercise/ +│ │ ├── README.mdx +│ │ ├── FINISHED.mdx +│ │ ├── 01.problem.some-step/ +│ │ │ ├── README.mdx +│ │ │ └── ... app files ... +│ │ └── 01.solution.some-step/ +│ │ ├── README.mdx +│ │ └── ... app files ... +│ └── 02.next-exercise/ +│ └── ... +└── playground/ + └── (generated by “Set to playground”) +``` + +### Naming rules + +- **Exercise directories**: `NN.exercise-title` (e.g. `01.js-hello-world`, `07.csrf`). +- **Step directories**: `NN.problem.step-name` and `NN.solution.step-name`. +- **All names should be lower-kebab-case**. +- Use **2-digit** exercise folders when possible (many repos do both; be consistent in a workshop). + +## App types: “simple” vs “project” + +The workshop app supports two app types: + +### Simple app + +If there is **no** `package.json` with a `dev` script in the app directory, it’s treated as a *simple app*. + +Common patterns: + +- `index.html` + inline `