home / skills / nickcrew / claude-cortex / tutorial-design

tutorial-design skill

/skills/tutorial-design

This skill helps you craft hands-on tutorials with progressive disclosure, exercises, and troubleshooting to boost learning outcomes.

npx playbooks add skill nickcrew/claude-cortex --skill tutorial-design

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
7.0 KB
---
name: tutorial-design
description: >-
  Design and write hands-on tutorials with progressive disclosure, exercises,
  and troubleshooting sections. Use when creating learning content, workshops,
  or step-by-step guides.
version: 1.0.0
tags: [tutorials, pedagogy, learning, workshops, documentation]
triggers:
  - write tutorial
  - create workshop
  - step-by-step guide
  - hands-on walkthrough
  - learning content
  - lab exercise
dependencies:
  skills: [documentation-production, code-explanation]
  tools: [Read, Write]
token_estimate: ~2500
---

# Tutorial Design

Design and write hands-on tutorials that transform complex technical concepts into engaging,
progressive learning experiences with exercises, checkpoints, and troubleshooting guidance.

## When to Use This Skill

- Writing a getting-started tutorial for a library, API, or tool
- Creating workshop materials for team training or conferences
- Building multi-part learning series with progressive difficulty
- Designing coding exercises with self-assessment checkpoints
- Converting existing documentation into guided learning content
- Creating quick-start guides that get users productive fast

## Quick Reference

| Resource | Purpose | Load when |
|----------|---------|-----------|
| `references/design-patterns.md` | Progressive disclosure patterns, exercise types, checkpoint design, difficulty calibration, prerequisite mapping | Planning tutorial structure or designing exercises |

---

## Workflow Overview

```
Phase 1: Objectives   → Define learning outcomes, prerequisites, and audience
Phase 2: Decompose    → Break concepts into atomic, sequenced steps
Phase 3: Design       → Create exercises, checkpoints, and troubleshooting tips
Phase 4: Write        → Produce tutorial content with runnable examples
Phase 5: Validate     → Test the tutorial path end-to-end
```

---

## Phase 1: Define Learning Objectives

Every tutorial starts with clear outcomes.

### Opening Section Template

```markdown
## What You'll Learn

- [Specific, measurable outcome 1]
- [Specific, measurable outcome 2]
- [Specific, measurable outcome 3]

## Prerequisites

- [Required knowledge or setup]
- [Tools needed]

## Time Estimate

~[X] minutes

## What You'll Build

[Brief description or screenshot of the final result]
```

**Writing good objectives:**
- Use action verbs: "build", "configure", "debug", "deploy" — not "understand" or "learn about"
- Make them testable: the reader should be able to verify they achieved each outcome
- Scope realistically: 3-5 objectives per tutorial

---

## Phase 2: Concept Decomposition

Break the topic into atomic learning steps.

### Sequencing Rules

1. **One concept per section** — never introduce two new ideas at once
2. **Dependency order** — concepts must build on what came before
3. **Concrete before abstract** — show the working example, then explain the theory
4. **Simple before complex** — start with the minimal version, layer complexity

### Concept Map

Before writing, sketch a dependency graph:

```
[Prerequisites] → [Core concept A] → [Core concept B]
                                    ↘ [Variation 1]
                  [Core concept A] → [Core concept C] → [Advanced topic]
```

Each node becomes a section. Dependencies become the section order.

---

## Phase 3: Design Exercises and Checkpoints

### Exercise Types

| Type | Difficulty | When to use |
|------|-----------|-------------|
| **Fill-in-the-blank** | Low | Reinforce syntax after an example |
| **Debug challenge** | Medium | Teach error reading and common mistakes |
| **Extension task** | Medium | Add a feature to working code |
| **From scratch** | High | Build based on requirements only |
| **Refactoring** | High | Improve existing implementation |

### Checkpoint Pattern

After every major section, insert a checkpoint:

```markdown
### Checkpoint

At this point you should have:
- [ ] A running server on port 3000
- [ ] The `/health` endpoint returning `{ "status": "ok" }`
- [ ] Server logs showing incoming requests

**If something's wrong**, see the [Troubleshooting](#troubleshooting) section below.
```

### Troubleshooting Sections

For every section, anticipate 2-3 common errors:

```markdown
### Troubleshooting

**Error: `EADDRINUSE: address already in use`**
Another process is using port 3000. Run `lsof -i :3000` to find it,
then stop it or change your port.

**Error: `Cannot find module 'express'`**
You haven't installed dependencies yet. Run `npm install` in the project root.
```

---

## Phase 4: Write the Tutorial

### Section Structure (for each concept)

1. **Brief intro** (1-2 sentences) — what this section covers and why it matters
2. **Minimal example** — complete, runnable code showing the concept
3. **Line-by-line explanation** — walk through the important parts
4. **Try it** — tell the reader to run the code and what to expect
5. **Extend it** — optional exercise to deepen understanding
6. **Troubleshooting** — common errors for this section

### Writing Principles

- **Show, then explain** — code first, theory second
- **Frequent validation** — readers should run code every 2-3 minutes
- **Fail forward** — include intentional errors to teach debugging
- **Incremental complexity** — each step adds one thing to the previous
- **Copy-paste friendly** — examples must work when pasted directly

### Content Elements

**Code blocks must:**
- Be complete and runnable (no `...` elisions in critical paths)
- Include expected output in a separate block
- Use meaningful variable names
- Have inline comments only where non-obvious

**Explanations should:**
- Connect to real-world use cases
- Provide the "why" behind each step
- Use analogies to familiar concepts
- Anticipate the reader's "but what about...?" questions

### Closing Section

```markdown
## Summary

You've learned how to:
- [Outcome 1 restated]
- [Outcome 2 restated]

## Next Steps

- [Natural follow-on tutorial or topic]
- [Related documentation]
- [Community resources]
```

---

## Phase 5: Validate

Before publishing, test the entire tutorial path:

1. Follow every step from a clean environment
2. Run every code example and verify output matches
3. Trigger every troubleshooting scenario at least once
4. Time the tutorial — does it match the estimate?
5. Have someone unfamiliar with the topic attempt it

---

## Tutorial Formats

| Format | Duration | When to use |
|--------|----------|-------------|
| **Quick Start** | 5 min | First contact, get running fast |
| **Deep Dive** | 30-60 min | Comprehensive single-topic exploration |
| **Workshop Series** | Multi-part | Progressive learning across sessions |
| **Cookbook** | Variable | Problem-solution pairs, non-linear reading |
| **Interactive Lab** | 15-45 min | Hands-on environment with guided steps |

## Anti-Patterns

- Introducing concepts before they are needed ("you'll use this later")
- Showing code snippets that cannot run standalone
- Assuming knowledge not listed in prerequisites
- Walls of text without code breaks
- Exercises without solutions (even collapsed/hidden ones)
- Skipping the "why" and only showing the "how"

Overview

This skill designs and writes hands-on tutorials with progressive disclosure, exercises, checkpoints, and troubleshooting guidance. It turns complex technical topics into runnable, testable learning paths that keep learners engaged and productive. Use it to create workshops, quick-starts, multi-part series, or workshop-ready materials.

How this skill works

I define clear learning objectives and prerequisites, decompose the topic into atomic, dependency-ordered steps, and design exercises of varying difficulty. Each section contains a minimal runnable example, a line-by-line explanation, a checkpoint, extension tasks, and targeted troubleshooting. The final phase validates the path end-to-end from a clean environment.

When to use it

  • Creating a getting-started tutorial for a library, API, or tool
  • Designing workshop materials for team training or conferences
  • Building multi-part learning series with increasing difficulty
  • Converting reference docs into guided, runnable lessons
  • Authoring quick-start guides that get users productive fast

Best practices

  • Write 3–5 measurable learning outcomes using action verbs
  • Break topics into single-concept sections ordered by dependency
  • Show code first (complete runnable snippet), then explain it line-by-line
  • Insert checkpoints every 1–3 minutes of reader work and include troubleshooting for each section
  • Provide extension tasks and at least one higher-difficulty exercise with solution hidden or separate

Example use cases

  • Quick Start: guide to install and run a minimal example in 5 minutes
  • Deep Dive: 30–60 minute single-topic tutorial with exercises and checkpoints
  • Workshop Series: multi-session curriculum with progressive objectives and labs
  • Cookbook entry: problem→solution recipe with copy-paste examples and expected output
  • Interactive Lab: hands-on environment steps with checkpoints and targeted troubleshooting

FAQ

How long should a single tutorial take to complete?

Target 15–45 minutes for standalone tutorials; use 5 minutes for quick-starts and 30–60 minutes for deep dives. Always include an estimated time in the opening section.

How many exercises should I include?

Include a checkpoint after each major section and 1–2 exercises per section: one low-difficulty (fill-in or run-and-observe) and one medium/high extension or debugging task.