Exercise Author Skill
You generate missing exercise files from a module's README.md planning table.
When to Use This Skill
Invoke this skill when:
- •A module README.md has an exercise planning table but missing exercise files
- •User asks to "create missing exercises" or "generate exercise files"
- •User points to a module directory and wants all planned exercises implemented
Example invocations:
- •"@exercise-author create missing exercises for module 99"
- •"Generate all exercise files for modules/10-agentic-sdlc/"
- •"Look at module 5 and create any exercises that don't exist yet"
How It Works
Step 1: Read Module README.md
- •Locate the module directory (e.g.,
modules/99-agent-skills-vscode/) - •Read the
README.mdfile - •Find the "📋 Exercise Planning Table" section
- •Parse each row to extract:
- •Exercise number (e.g., "99.1", "99.2")
- •Exercise filename from link (e.g., "exercise-01.md")
- •Exercise title
- •Lead persona
- •Support personas
- •Problem description with metrics
- •Solution description
- •Key metrics (before→after)
- •Artifacts created
Step 2: Check Which Files Exist
For each exercise in the planning table:
- •Check if the file exists in the module directory
- •If the file exists, skip it
- •If the file is missing, add to creation list
Step 3: Create Missing Exercise Files
For each missing exercise file:
- •
Use the TEMPLATE.md structure from
.github/skills/exercise-author/TEMPLATE.md - •
Fill in the template with data from the planning table:
- •Exercise number and title from table
- •Lead persona
- •Support personas
- •Problem metrics from "Problem" column
- •Solution approach from "Solution" column
- •Before/After metrics from "Key Metrics" column
- •Artifacts from "Artifacts" column
- •
Generate realistic content:
- •📖 The Challenge: 2-3 paragraphs showing the problem through persona lenses
- •🔄 The Transformation: Table with Before/After scenarios using metrics from planning table
- •🎯 Your Goal: Single sentence objective derived from solution
- •📋 Steps: 3-4 detailed steps to implement the solution
- •✅ Success Criteria: 3-4 checkboxes for verifiable outcomes
- •📚 Official Docs: 2-3 relevant documentation links
- •🔗 What You Built: List artifacts with purposes
- •➡️ Next Up: Link to next exercise or module
- •
Create the file at
modules/[module-dir]/[exercise-filename]
Important Guidelines
Metrics Must Be Concrete
Every Before/After comparison must include:
- •Time metrics (e.g., "45 minutes → 5 minutes")
- •Count metrics (e.g., "12 violations → 0 violations")
- •Round/cycle metrics (e.g., "3 review rounds → 1 round")
Use the metrics from the planning table's "Key Metrics" column.
Persona Voice Authenticity
Write in the persona's voice (see modules/00-orientation/PERSONAS.md):
- •Sarah (Skeptical Senior): ROI-focused, validates with metrics, "I tested this by..."
- •David (Seasoned Architect): Expertise validation, AI amplifies experience
- •Marcus (DevOps Developer): Infrastructure focus, workflow friction removal
- •Elena (Quality Champion): Quality validation, edge case coverage
- •Rafael (Product Visionary): Business value, stakeholder communication
File Structure
Each exercise file must:
- •Start with
# Exercise N.X: [Title] - •Include all sections from TEMPLATE.md
- •Use proper emoji vocabulary (📖, ❌, ✨, 🎯, 📋, ✅, 📚, 🔗, ➡️)
- •Have horizontal rules (
---) between major sections - •Reference artifacts created (from planning table's "Artifacts" column)
Official Documentation Links
Prioritize documentation in this order:
- •VS Code Copilot docs (for editor features)
- •GitHub Docs (for Copilot concepts, best practices)
- •Microsoft Learn (for Azure/enterprise features if relevant)
Never use third-party blog posts as primary documentation.
Example File Generation
CRITICAL: Whenever an exercise asks users to create a file, automatically generate a reference implementation in examples/completed-config/ to provide copy-paste scaffolding and validation.
Detecting File Creation Instructions
Scan exercise content (especially Steps section) for patterns indicating file creation:
- •"Create
.github/instructions/frontend.instructions.md" - •"Add
docs/ARCHITECTURE.md" - •"Create a new file at
path/to/file.ext" - •"Set up
.github/agents/feature-plan.agent.md" - •Artifacts listed in planning table's "Artifacts" column
Example File Location Mapping
Mirror the repository structure in examples/completed-config/:
| User Creates | Example Location |
|---|---|
.github/copilot-instructions.md | examples/completed-config/.github/copilot-instructions.md |
.github/instructions/frontend.instructions.md | examples/completed-config/.github/instructions/frontend.instructions.md |
.github/prompts/test-suite.prompt.md | examples/completed-config/.github/prompts/test-suite.prompt.md |
.github/skills/api-endpoint-design/SKILL.md | examples/completed-config/.github/skills/api-endpoint-design/SKILL.md |
.github/agents/feature-plan.agent.md | examples/completed-config/.github/agents/feature-plan.agent.md |
.github/hooks/security.json | examples/completed-config/hooks/security.json |
fanhub/docs/ARCHITECTURE.md | examples/completed-config/docs/ARCHITECTURE.md |
Note: .github/ maps to examples/completed-config/.github/ but fanhub/docs/ maps to examples/completed-config/docs/ (no fanhub prefix).
Example Content Generation Guidelines
Create complete, realistic implementations that:
- •Match the exercise's learning objectives — Demonstrate the exact technique being taught
- •Use persona-specific scenarios — Reference FanHub domain (TV shows, characters, episodes)
- •Include inline explanations — Add comments/notes explaining key decisions
- •Show concrete patterns — No placeholders like
[YOUR CODE HERE]orTODO: implement - •Reflect module progression — Later modules build on earlier artifacts
Content quality examples:
✅ Good example content:
# Frontend Instructions
## React Component Patterns
All React components in FanHub must follow these standards:
1. **Functional components with hooks** — No class components
- Use `useState` for local state
- Use `useEffect` for side effects
- Use custom hooks for shared logic (e.g., `useFetchCharacters`)
2. **Props destructuring** — Always destructure props in component signature
```jsx
// ✅ Good
function CharacterCard({ name, actor, imageUrl }) { ... }
// ❌ Avoid
function CharacterCard(props) { const name = props.name; ... }
```
❌ **Avoid placeholder content:** ```markdown # Frontend Instructions ## Component Guidelines [Add your component guidelines here] TODO: Document React patterns
Multi-File Examples
When exercises create multiple related files (e.g., skills with schemas + examples, hooks with JSON + scripts):
- •Generate complete directory structures — Create all subdirectories and files
- •Ensure cross-references work — Relative paths between files must be correct
- •Maintain consistency — Use the same naming/structure conventions
Example: Module 5 (Agent Skills) creates:
- •
examples/completed-config/.github/skills/api-endpoint-design/SKILL.md - •
examples/completed-config/.github/skills/api-endpoint-design/openapi-schema.yaml - •
examples/completed-config/.github/skills/api-endpoint-design/example-endpoints/get-character.js - •
examples/completed-config/.github/skills/api-endpoint-design/example-endpoints/post-review.js
Auto-Insert Compare Your Work Section
When exercises involve file creation, automatically add this to the Success Criteria section:
> 📂 **Compare Your Work**: [`examples/completed-config/{relative-path}`](../../examples/completed-config/{relative-path})
Path calculation rules:
- •Use relative path from module directory to examples folder (typically
../../examples/) - •Include the full path within
completed-config/ - •Link text should show the path for clarity
Examples:
- •Module 1 → Module 5:
../../examples/completed-config/.github/skills/api-endpoint-design/SKILL.md - •Module 10 → hooks:
../../examples/completed-config/hooks/security.json
Example File Metadata
Add frontmatter comments to generated example files linking back to source exercise:
<!-- Reference implementation for Module X, Exercise X.Y: [Title] --> <!-- This example demonstrates: [brief description of what's being taught] --> [Actual content starts here]
Validation Against Existing Examples
Before creating new example files:
- •Check if file already exists in
examples/completed-config/ - •If exists, verify it matches exercise intent — Update if needed
- •If missing, generate new file — Follow existing formatting patterns
- •Cross-reference related examples — Ensure consistency with existing artifacts
Examine examples/completed-config/ structure to maintain:
- •Consistent formatting (Markdown style, YAML structure, code conventions)
- •Appropriate depth (comprehensive but not overwhelming)
- •Domain context (FanHub TV show site, not generic examples)
Example Workflow
User says: "@exercise-author create missing exercises for module 99"
You:
- •Read
modules/99-agent-skills-vscode/README.md - •Parse exercise planning table
- •Check which files exist:
- •
exercise-01.md✅ exists - •
exercise-02.md❌ missing - •
exercise-03.md❌ missing
- •
- •Create
modules/99-agent-skills-vscode/exercise-02.mdusing planning table data + TEMPLATE.md structure - •Detect file creation instructions in exercise-02.md:
- •Step 2 says "Create
.github/skills/bug-analyzer/SKILL.md" - •Artifacts list includes
.github/skills/bug-analyzer/examples/sample-bug.js
- •Step 2 says "Create
- •Generate example files:
- •Create
examples/completed-config/.github/skills/bug-analyzer/SKILL.mdwith complete skill definition - •Create
examples/completed-config/.github/skills/bug-analyzer/examples/sample-bug.jswith realistic bug example - •Add metadata comments linking back to Module 99, Exercise 2
- •Create
- •Add Compare Your Work section to exercise-02.md Success Criteria:
markdown
> 📂 **Compare Your Work**: [`examples/completed-config/.github/skills/bug-analyzer/SKILL.md`](../../examples/completed-config/.github/skills/bug-analyzer/SKILL.md)
- •Create
modules/99-agent-skills-vscode/exercise-03.md(repeat steps 5-7) - •Report: "Created 2 missing exercises and 3 example files: exercise-02.md, exercise-03.md, and reference implementations in examples/completed-config/"
Quality Checklist
Before creating each file, verify:
- • All metrics from planning table are included
- • Lead and support personas match the table
- • Steps are actionable (commands, paths, expected results)
- • Success criteria are verifiable checkboxes
- • Artifacts listed in planning table appear in "What You Built"
- • Official docs links are first-party (GitHub, VS Code, Microsoft)
- • Persona voice is authentic to their background
- • Before/After transformation shows measurable improvement
- • Example files generated for all artifacts users create
- • Compare Your Work sections added when files are created
- • Example content is complete (no placeholders or TODOs)
- • Example paths are correct (verified relative links work)
Related Skills
- •exercise-author: Creates individual exercises from scratch with user guidance
- •module-author: Creates entire module README.md with exercise planning table
Use this skill when the planning is done (exercise table exists) but implementation is missing.