diataxis-tutorial
Write, expand, or audit a tutorial — learning-oriented documentation in the Diátaxis sense: a lesson that takes a beginner through a guided, hands-on experience to build skill and confidence, where the artifact produced along the way is not the point. Use whenever the user wants a "getting started" guide, onboarding walkthrough, "first steps with X", intro lesson, learning exercise, workshop material, or asks to "teach someone" a tool, API, or codebase by doing — even if they never say "tutorial". Also loaded by the `diataxis` router when the compass points to action + acquisition: the reader will *do* something in order to *learn*. If the reader is an already-competent practitioner trying to get a real job done, that's `diataxis-how-to` instead; when the type is in doubt or mixed, consult the `diataxis` skill first.
- License 许可
- MIT
- 所属仓库
- esond/skills
- 最近更新
- 2026-11-07
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- diataxis-tutorial
- description
- Write, expand, or audit a tutorial — learning-oriented documentation in the Diátaxis sense: a lesson that takes a beginner through a guided, hands-on experience to build skill and confidence, where the artifact produced along the way is not the point. Use whenever the user wants a "getting started" guide, onboarding walkthrough, "first steps with X", intro lesson, learning exercise, workshop material, or asks to "teach someone" a tool, API, or codebase by doing — even if they never say "tutorial". Also loaded by the `diataxis` router when the compass points to action + acquisition: the reader will *do* something in order to *learn*. If the reader is an already-competent practitioner trying to get a real job done, that's `diataxis-how-to` instead; when the type is in doubt or mixed, consult the `diataxis` skill first.
02 资源文件 1
- 参考文档agents/openai.yaml112 B
03 SKILL.md 正文
diataxis-tutorial
A tutorial is a lesson. The reader learns by doing, under your direction — like teaching a child to cook. Success is measured by the skill and confidence the learner acquires, not by the quality of the thing they made along the way. Diátaxis places tutorials at action + acquisition: practical steps, in service of study.
The hard constraint shaping everything below: the teacher is responsible for the learner's success, yet is "required to be present, but condemned to be absent." The text alone must anticipate everything, because you won't be there when a step goes wrong.
Check you're writing the right thing
Before starting, confirm the compass really points here:
- The reader is already competent and wants to accomplish a real task →
diataxis-how-to. - The content describes the machinery — options, APIs, facts to consult mid-work →
diataxis-reference. - The reader wants to understand why — background, design rationale, context →
diataxis-explanation. - Mixed or unclear → step back to the
diataxisrouter and run the compass.
Difficulty is not the axis: a tutorial can cover something complex, and a how-to guide can cover something basic. The axis is study vs. work.
Step 1 — Establish the lesson
Pin down, asking the user where the material doesn't answer:
- Who is the learner? What can they already do? A tutorial familiarizes the learner with the basics — assume little, and state the true prerequisites explicitly.
- What will they be able to do afterward? Name a meaningful capability, not a topic. This becomes the opening promise: "In this tutorial, we will…"
- What's the environment? A tutorial happens in a contrived, controlled setting the author chose — safe, reversible, and reliable. Decide what that setup is and make getting into it the first steps.
Step 2 — Design the path
Design the sequence of actions before writing prose:
- One path, no choices. Alternatives and options are for how-to guides and reference. Every fork you offer a learner is a distraction and a chance to fail.
- A visible result early, then visible results all along. Each step should produce something the learner can see and recognize as meaningful. The feeling of purpose → action → result is where learning happens.
- End somewhere usefully complete, and close the promise the opening made.
- Every step must work — every time. The tutorial earns confidence through perfect reliability, and one step that doesn't do what the text promised destroys it. For anything executable, run the steps yourself and capture real output; never show output you haven't verified. When you genuinely can't execute the steps (no environment, no credentials, a system you can't reach), don't fabricate terminal output to fake verification — ground every concrete claim in a source you did read, narrate expected results in prose, and tell the user which steps remain unverified so they can run them.
Step 3 — Write it
The first rule of teaching: don't try to teach. Give the learner things to do, and let the doing carry the lesson.
- Write in first-person plural — "we" — affirming the tutor–learner relationship.
- Open by showing where we're going: "In this tutorial, we will create and deploy…"
- Give unambiguous imperatives in strict order: "First, do x. Now, do y."
- Maintain the narrative of the expected: tell the learner what they'll see, and show real sample output. "You will notice that…" "The output should look something like…"
- Point out what deserves attention: "Notice that…", "Remember that…", "Let's check…"
- Ruthlessly minimize explanation. If a line of reasoning is unavoidable, keep it to a sentence — "We're using HTTPS because it's more secure" — and link to the explanation article for later. More than that steals attention from the doing.
- Stay concrete and particular. Learning moves from the concrete toward the general — generalizing is the reader's later step, not your job here.
- Permit and encourage repetition; sometimes it's the only teacher.
- Close by acknowledging what the learner has accomplished: "You have built a…"
Step 4 — The drift checklist
Use this when reviewing your own draft, and as the audit lens when the diataxis router sends an existing tutorial here. An audit invocation runs only this step — skip Steps 1–3 and report findings without editing; edits wait for explicit confirmation — the router's gate, or the user's when invoked directly. The audit's repair move is usually relocation, not deletion — the content is fine, it just lives in the wrong place.
- Explanation running past a sentence → move it to an explanation article; leave a one-line note and a link.
- Options or alternative paths offered → cut to the single path; alternatives belong in how-to guides or reference.
- Abstract or general statements → replace with the concrete instance in front of the learner.
- Steps whose result the learner can't see → surface the result, or question the step.
- Teaching by telling — paragraphs of theory before the next action → convert to doing, or relocate.
- Assumed knowledge gaps — a step a genuine beginner couldn't complete → fill in or add to prerequisites.
- Promised output that may not match reality → verify by running it.
Things not to do
- Don't explain, beyond a linked one-liner. A tutorial is not the place for explanation.
- Don't offer choices. One path.
- Don't aim for completeness. The lesson's scope is the author's choice; comprehensiveness belongs to reference.
- Don't judge the tutorial by the artifact it builds. A driving lesson exists to make a driver, not to get from A to B.
- Don't ship a step you haven't verified works exactly as written.
04 同仓库更多 Skills
work-item-voice
Write or edit the user's issues in their own voice, in any work tracker — Jira, Linear, GitHub Issues, Azure DevOps. Covers features (new behavior), tasks (work that needs doing), and bugs (behavior that does not match expectation). Load this whenever the deliverable is an issue body, whether they say "file a bug", "write a ticket", "draft a story", "create an issue for this", "turn this into a Jira", "write this up in Linear", or paste a thread and ask for an issue out of it. Load it too whenever text goes into an issue that already exists — "record this in the issue", "add what we found to the ticket", "note this on the card", "update the one about refunds", or naming an issue by its key and asking for a fact to go in it — and when writing or updating one is a step inside a larger task. Features get behavior-driven framing with no implementation prescribed, and bugs get expected versus actual. Not for a comment on an issue, which is a conversation turn.
conversational-voice
Write the user's side of a conversation with another person, in the user's own voice: Slack messages and replies, DMs, email, PR and code-review comments, Linear or Jira comments, and any other turn in an exchange that goes out under the user's name. Load this whenever the deliverable is a message a human will read as written by the user, whether they say "draft a Slack message", "reply to this", "how should I word this", "tell the team", "ask them about X", "send a note to", or just paste a thread and ask what to say back. Load it too when tightening, shortening, or sanity-checking a message they already wrote, and when a message is one step of a larger task. The register is direct and informal, the way they'd talk to a friend or acquaintance, with the answer up front for a reader who skims. Not for something the user authors rather than sends — an issue body, a PR description, a commit message — even though a person reads those too.
sync-core-repo-docs
Create or audit a repo's three core doc files — README.md, the agent instructions file (AGENTS.md or CLAUDE.md), and REVIEW.md — in that dependency order. If a file is missing, generate it from the codebase; if it exists, audit it against the current code and apply targeted fixes after confirmation. README.md gets a developer from clone to running the project; AGENTS.md captures coding guidance for the agent (delegating to /init or claude-md-improver); REVIEW.md holds guidance for code reviewers, human or automated, without duplicating AGENTS.md. Target files with --readme, --claude, and --review, or run all three. Use whenever the user wants to set up, bootstrap, scaffold, refresh, audit, update, or sync a repo's docs, or says things like "create a README", "is my README still accurate", "write a CLAUDE.md", "write an AGENTS.md", "audit our docs", or "get this repo ready for contributors" — even when only one file is named. Prefer it over claude-md-improver when README or REVIEW are also in scope.
sync-core-docs
Create or audit a repo's README.md, AGENTS.md/CLAUDE.md, and REVIEW.md docs.
righting-software-system-design
Opt-in, collaborative system-design workflow based on Juval Löwy's iDesign methodology in *Righting Software*. Conducts a multi-phase interview (framing → use cases → volatility analysis → components → call-chain validation → report) that surfaces unknown-unknowns and produces a written recommendation at `decompositions/{system-name}/report.md`. **Run only when the user explicitly invites this workflow** — not for general architecture questions, lightweight design conversations, or quick "where should X live?" questions. Valid triggers: the user names the skill directly, references *Righting Software* / Juval Löwy / iDesign / "The Method" / volatility-based decomposition and asks to run a full session, asks for a "deep" or "structured" or "Löwy-style" system design session, or accepts a prior suggestion to run it. Wait for an explicit yes before entering Phase 0. The skill is interrogative — a back-and-forth interview that challenges each volatility candidate and proposes ones the user hasn't considered.
reorganize-branch-commits
Reorganize the commits on a non-default git branch into a clean, logical history by rewriting the branch — `git reset` + re-commit by default, `git rebase -i` when commit boundaries already align. Propose groupings based on the actual work done (features, refactors, tests, fixes, docs), get explicit user approval, back the branch up, then rewrite history. Use this skill whenever the user wants to tidy up, clean up, reorganize, restructure, squash, or curate commits on a feature branch — even if they phrase it as "my branch is a mess", "squash this down", "combine these commits", "fix up the commit log before I open a PR", or "make the commits presentable for review". Trigger proactively when the user is about to open or push a PR and the branch has scrappy/WIP/"fix" commits to collapse. Refuses to operate on default or release-shaped branches (main, master, develop, trunk, production, release, or the repo default) — a feature-branch-only tool.