From skills-for-learning
Generate a structured learning repository for any software-development topic. Use this skill whenever the user says "tutorial", "teach me", "I want to learn", "create a learning project for", "help me study", or otherwise indicates they want to learn a new technology, framework, language, or software concept from scratch. Also trigger when the user wants to create a hands-on practice project with guided steps, or when they mention creating a beginner/intermediate/advanced course on a topic. This skill creates the repo — the companion "guide" skill coaches the learner through the practice.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills-for-learning:tutorialThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a self-contained learning repository for a software-development topic. The repo pairs **theory** (structured markdown with Mermaid visuals) with **practice** (a scaffolded app with milestone-based TODOs that the learner builds commit-by-commit).
Generate a self-contained learning repository for a software-development topic. The repo pairs theory (structured markdown with Mermaid visuals) with practice (a scaffolded app with milestone-based TODOs that the learner builds commit-by-commit).
The user wants to learn a topic and you need to generate the learning materials. After the repo is generated, the user switches to the guide skill to work through the practice steps.
Before generating anything, understand what the learner needs:
.guide/learner-profile.md in the current directory. If it exists, this is a follow-up tutorial. Read the weak points from the previous tutorial and factor them into the theory and practice design.If the user provides a clear topic like "tutorial on Docker", skip unnecessary questions — infer level as beginner and pick a sensible project. Only ask when genuinely ambiguous.
Create a git-initialized repo with this structure:
learn-<topic>/
├── README.md
├── theory/
│ ├── 01-core-concepts.md
│ ├── 02-controversies.md
│ └── 03-expert-quiz.md
├── practice/
│ └── <project-name>/
│ ├── README.md
│ └── <minimal scaffold>
└── .guide/
└── learner-profile.md
A brief overview that orients the learner:
# Learn <Topic>
A structured learning repo: theory to read, code to write.
## How to Use
1. **Read the theory** — Start with `theory/01-core-concepts.md` to build mental models
2. **Work the practice** — Open `practice/<project>/README.md` and follow the milestones
3. **Use the guide** — Run the `guide` command when you start a milestone to get coaching
## Structure
- `theory/` — Core concepts, controversies, and an expert-level quiz
- `practice/` — A hands-on project with step-by-step milestones
- `.guide/` — Your learner profile (auto-updated as you practice)
## Theory Sections
| File | Purpose |
| --------------------- | -------------------------------------------------------- |
| `01-core-concepts.md` | Mental models, key abstractions, how things fit together |
| `02-controversies.md` | The confusing, debated, and criticized parts |
| `03-expert-quiz.md` | 10 questions that separate experts from practitioners |
The foundational mental models for the topic. Structure:
# Core Concepts: <Topic>
## Overview
<2-3 sentence summary of what this technology/concept is and why it exists>
## Concept Map
<!-- A Mermaid diagram showing how the core concepts relate to each other -->
```mermaid
graph TD
A[Concept A] --> B[Concept B]
A --> C[Concept C]
B --> D[Concept D]
C --> D
```
<Explanation with bullet points. Include a Mermaid diagram if the concept involves a flow, lifecycle, or architecture.>
...
**Quality bar for concepts:**
- Explain the **why** before the **what** — why does this concept exist? What problem does it solve?
- Use Mermaid diagrams liberally: flowcharts for processes, sequence diagrams for interactions, class diagrams for structures, state diagrams for lifecycles
- Each concept should be self-contained: someone could read just one section and learn something useful
- Cover 5-8 core concepts (not an exhaustive reference — focus on the concepts that unlock understanding)
- If the topic has a mental model or analogy that practitioners use, include it
### theory/02-controversies.md
The parts that trip people up, spark debates, or are widely criticized. This is where real understanding happens — the nuance that separates someone who read the docs from someone who has used the technology in production.
```markdown
# Controversies & Confusions: <Topic>
## Common Confusions
### <Confusion 1: e.g., "When to use X vs Y">
<Explain why this is confusing, what the actual distinction is, and a practical heuristic for deciding>
```mermaid
graph TD
Q{Need to decide?} -->|Condition A| X[Use X]
Q -->|Condition B| Y[Use Y]
The criticism: The counterargument: The reality: <Your honest assessment — not a fence-sit, take a position>
<Something that bites people in production but isn't obvious from tutorials>
**Quality bar:**
- Include at least 3 confusions, 2 criticisms, and 2 gotchas
- Take positions — don't be wishy-washy. "Both sides have a point" is not helpful. Say what you'd actually recommend and why.
- These should be things that come up in real engineering discussions, not strawman complaints
### theory/03-expert-quiz.md
10 questions that distinguish genuine expertise from surface familiarity. These are not trivia — they test understanding of trade-offs, edge cases, and design decisions.
```markdown
# Expert Quiz: <Topic>
Test your understanding. These questions are designed to distinguish deep expertise from surface knowledge.
For each question, think through your answer before revealing the solution.
---
### Q1: <Question>
<details>
<summary>Reveal Answer</summary>
<Thorough answer — not just the "what" but the "why" and "when it matters">
</details>
---
### Q2: <Question>
<details>
<summary>Reveal Answer</summary>
<Answer>
</details>
...
Quality bar for questions:
The hands-on project guide, structured as milestones with ordered steps.
# <Project Name>
<1-2 sentence description of what you're building and what you'll learn>
## Prerequisites
- <What needs to be installed>
- <What the learner should already know>
##
## Milestone 1: <Name> — <What this achieves>
> **Goal:** <One sentence describing the outcome>
>
> **Concepts practiced:** <Links to theory sections>
- [ ] **Step 1.1:** <Specific, actionable instruction>
- <Brief explanation of why this step matters>
- [ ] **Step 1.2:** <Next step>
- <Explanation>
- [ ] **Step 1.3:** <Verification step — how to confirm it works>
##
## Milestone 2: <Name>
...
Quality bar for milestones:
theory/ it exercises
Generate the minimal project scaffold needed to start Milestone 1. This means:
Pick the language/framework that is most natural for the topic. If the tutorial IS about a specific framework (e.g., "tutorial on Express.js"), use that framework. If the tutorial is about a concept (e.g., "tutorial on event sourcing"), pick the language that best demonstrates it and is most practical for the learner.
Initialize an empty learner profile:
# Learner Profile
## Tutorial
- **Topic:** <topic>
- **Level:** <level>
- **Started:** <date>
## Weak Points
<!-- Updated automatically by the guide skill as you practice -->
## Session Log
<!-- Updated automatically by the guide skill -->
After generating all files:
git init in the repo roottheory/01-core-concepts.md, then move to practice/<project>/README.mdguide command when they start working on the practice milestones
A tutorial can have multiple practice projects under practice/. This is useful when:
practice/deploy-app/ and practice/write-operator/)
When adding a practice project to an existing tutorial repo, create it under practice/ alongside existing projects. Do not modify existing projects.
When .guide/learner-profile.md exists and has weak points from a previous tutorial:
references/topic-mapping.md — Quick reference for mapping topics to project types, tech stacks, and milestone sizing. Read this when deciding what kind of practice project to scaffold.Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
npx claudepluginhub iannbing/skills-for-learning --plugin skills-for-learning