Every command, setting, and option. If you just want to try the skill, the README is enough — start there and come back when you need a detail.
Contents
- Commands
- Picking where a lesson starts
- Vocabulary
- Your learning dashboard
- Writing for other people
- First-time setup
- Working across several projects
- Undoing things
- Languages
- Upgrading from version 1.1
Type /skill tutorial-creator on its own and the skill asks what you want. Everything
below is a shortcut for people who already know.
/skill tutorial-creator # ask me what I want to do
/skill tutorial-creator vocab review # quiz me on words I've learned
/skill tutorial-creator vocab gap # what am I getting wrong?
/skill tutorial-creator status # how am I doing overall?
/skill tutorial-creator --mode learn # skip the menu, write me a lesson
/skill tutorial-creator --mode audience # skip the menu, write for others
Working on more than one project:
/skill tutorial-creator open <path> # remember this project
/skill tutorial-creator open # list projects, pick a default
/skill tutorial-creator forget <path> # stop remembering one
/skill tutorial-creator --project-dir <path> # use this project, just this once
The old version 1.1 form still works and behaves like choosing "topic + file":
/skill tutorial-creator [topic] [file]
| I want to… | Type this |
|---|---|
| Be walked through the choices | /skill tutorial-creator |
| Write about a topic in a file I've picked | /skill tutorial-creator <topic> <file> |
| Write about a topic, let the skill find the file | --mode learn, then pick [c] |
| Write about a word I keep getting wrong | --mode learn, then pick [e] |
| Turn a file into an article for other people | --mode audience |
| Be quizzed on what I've learned | vocab review |
| Pull several words in from a source, not one at a time | vocab ingest <source> |
| Get flashcards — Markdown, Anki, or print — from my vocabulary | vocab flashcards |
| See what I'm confused about | vocab gap |
| See my overall progress | status |
| Work on a different project than the folder I'm in | --project-dir <path> |
You don't need a topic and a file ready. Pick whichever of these matches your situation.
| Start from | Pick this when |
|---|---|
| [a] What's next for me | You want the next thing in your learning sequence |
| [b] A topic and a file | You know both already |
| [c] Just a topic | You know the topic; let the skill find a good file |
| [d] A question | You're stuck ("why does my fetch return nothing?") |
| [e] Something I'm confused about | Show me what I keep getting wrong, and teach that |
| [f] Notes I've collected | A doc, post, video, or past session you want to pull together |
How [c] picks a file. It looks for a file that teaches well, not the file with the most examples — a short file with two clear cases beats a long one with twelve scattered through it. You see the candidates and choose. If nothing in your project is a decent example, the skill says so and offers to write a small made-up one instead of quietly settling for a bad file.
How [d] handles a vague question. If your question could mean two things, the skill asks which one you meant rather than guessing and writing the wrong lesson.
How [e] uses your mistakes. It reads the words you've been getting wrong and builds the lesson around one of them. The opening quiz targets the exact part you've been missing.
The skill keeps a list of terms you've met, and how well you know each one.
| Command | What it does |
|---|---|
vocab add <term> |
Add a word you ran into anywhere. The skill drafts a definition and a real example; you fix it or accept it. |
vocab ingest <source> |
Pull several words at once — from a URL, a file, or this conversation. The skill finds the candidates, drafts each one, and adds whichever you pick in one go. |
vocab review |
Quiz on 5 terms, favouring ones you're shaky on. You write the definition from memory. |
vocab gap |
The terms you keep missing, worst first. |
vocab list --status=confused |
Filter by how well you know things. |
vocab list --source=<match> --date=<date> |
Filter by where a word came from, or when you added it. Combine with --status and each other. |
vocab flashcards |
Turn your vocabulary into flashcards — Markdown, an Anki deck, or a print-ready PDF. Takes the same --source, --date, and --status filters as vocab list. |
vocab merge <a> <b> |
Two entries for the same idea become one, keeping your quiz history. |
Four states: new → reviewing → mastered, with confused for ones giving you trouble.
You don't set these yourself — you earn them by taking the quiz. Three correct answers in a row gets you to mastered. Two wrong or partial out of your last three drops you to confused.
The one thing you can change by hand is mastered back to reviewing, for when you realise you've forgotten something. Getting back to mastered means earning it again.
Why it works this way: marking your own understanding is the thing people are worst at judging. A word you feel solid on and a word you can define from memory are different, and only the second one is measurable.
vocab ingest reads whatever you point it at — a session, a URL, a file, or text you
paste in — and finds the words and phrases worth keeping. It shows you what it found
before adding anything, drafts a definition and a real example for each one, and you
accept, edit, or drop them as a group. Nothing gets added silently.
This is different from vocab add: add is one word you already have in mind; ingest
is "here's a source, find what's in it."
vocab review is graded — the skill checks your answer against the real definition.
vocab flashcards skips that: it exports your words so you can study however you want.
- Markdown — plain text, front and back, readable anywhere.
- Anki deck (
.apkg) — import it into Anki and let its own spaced-repetition scheduling take over. - Print — a PDF laid out for two-sided printing. Cut along the guides and each card's word lines up with its definition on the back. The skill asks how your printer handles two-sided pages before generating it, since guessing wrong misaligns every card — print one test page before you commit a full deck to paper.
None of the three feed back into your quiz history. They're a read of your vocabulary,
not a learning event — vocab review's grading stays the only thing that moves a word
toward mastered.
/skill tutorial-creator status is read-only — it changes nothing, it just shows you:
- Lessons written, the last one, your streak, what to do next
- How many words are in each state
- Words you haven't been quizzed on in over two weeks
- Your top few problem words
- A suggested next lesson, based on both your gaps and your sequence
The second path on the main menu is for publishing what you've learned rather than learning it.
Start from one of: a file in your project, something that went wrong and you want to write about, a small made-up example, someone else's public code, or official documentation.
Then four questions shape the result:
- Who's reading? Beginner, intermediate, senior, or mixed. Beginners get more setup and definitions; senior readers get tradeoffs and alternatives.
- Say what it doesn't cover? Yes adds a section naming the limits of what you wrote.
- How long? Small, medium, large, or extra — each venue has its own word targets.
- Where's it going? Picks the writing style.
| Publishing to | Reads like |
|---|---|
reddit |
Punchy, first person, one code block, "Edit:" for follow-ups |
book-chapter |
Long paragraphs, essay style, code supporting the prose |
apple-developer-article |
Reference documentation, lots of code, no "I" |
medium |
Magazine essay, strong opening, light on headings |
blog |
Personal and conversational, dated, code where the story needs it |
repo-doc |
Terse README or runbook, summary first, minimal prose |
The first time you run it, the skill asks five things:
- Which project folder to use (defaults to where you are)
- Where inside it to save lessons
- Your language and framework (it guesses; you confirm)
- How experienced you are
- Which code you're learning from, if that's a different folder
Your answers go in .claude/tutorial-config.yaml. Edit it any time.
One thing to know: that file goes in the project folder you chose, which isn't necessarily the folder you were sitting in when you ran the command. The skill then offers to remember the project so you can run it from anywhere.
The skill finds your project the way git finds a repository: it looks in the current
folder, then the folder above it, and so on up.
If that finds nothing, it checks the projects you've told it to remember
(~/.claude/tutorial-creator/registry.yaml). One project, it uses that. Several, it
asks. None, it offers to set one up.
To skip all of that for a single command, use --project-dir <path>.
Full details of the search order live in SKILL.md, under "Project resolution."
By default the skill remembers everything. Before writing a new lesson it reads your progress, your vocabulary, and your earlier lessons. That's the whole point — lesson 16 knows what lessons 1 through 15 covered, and afterwards it checks whether the new lesson depended on anything you were never taught.
Two ways to opt out:
- Start over completely: delete or rename
.claude/tutorial-config.yaml,PROGRESS.md, andvocabulary.yaml. The skill treats the project as brand new. - Just this one lesson: starts [b], [c], and [f] can write a standalone lesson. They still record the results afterwards, they just don't let your history constrain what they write.
| Command | Undoes |
|---|---|
undo |
The last lesson it wrote |
vocab undo |
A vocabulary change, up to 24 hours after |
renumber <old> <new> |
Renumbers a lesson and fixes every reference to it |
Every lesson it writes is logged, and the four files it changes are backed up first, so
undo is a clean revert rather than a guess.
| Language | Order it teaches in |
|---|---|
| Swift / SwiftUI | Utilities → Models → ViewModels → Views → Managers → Serialization |
| TypeScript / React | Utilities → Hooks → Components → State → API → Testing |
| Python / Django | Utilities → Models → Views → Serializers → Middleware → Testing |
| Rust | Ownership → Traits → Error handling → Async → Unsafe → Architecture |
Swift is the most developed — the bundled examples and the demo project are Swift. The other three have working sequences, but the examples you can read are Swift only.
To teach in a different order, set progression_override in
.claude/tutorial-config.yaml.
If you used version 1.1 and have a VOCABULARY.md, run this once:
/skill tutorial-creator vocab regen-md --import
It converts your old file into the newer vocabulary.yaml. Imported words start at
reviewing, since there's no quiz history for them yet. From there, vocab edit to
adjust, vocab merge to combine duplicates, and vocab review to start earning
mastered.