diataxis-how-to
Write, expand, or audit a how-to guide — goal-oriented documentation in the Diátaxis sense: directions that help an already-competent reader accomplish a specific real-world task. Use whenever the user wants a "how to X" doc, a runbook, playbook, recipe, troubleshooting guide, setup/configuration/ migration/deployment/integration instructions, or step-by-step directions for practitioners — even if they never say "how-to guide". Also loaded by the `diataxis` router when the compass points to action + application: the reader will *do* something to *get work done*. If the reader is a beginner who needs to learn by doing in a safe setting, that's `diataxis-tutorial` instead; if the content mostly enumerates options and facts, that's `diataxis-reference`. 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-how-to
- description
- Write, expand, or audit a how-to guide — goal-oriented documentation in the Diátaxis sense: directions that help an already-competent reader accomplish a specific real-world task. Use whenever the user wants a "how to X" doc, a runbook, playbook, recipe, troubleshooting guide, setup/configuration/ migration/deployment/integration instructions, or step-by-step directions for practitioners — even if they never say "how-to guide". Also loaded by the `diataxis` router when the compass points to action + application: the reader will *do* something to *get work done*. If the reader is a beginner who needs to learn by doing in a safe setting, that's `diataxis-tutorial` instead; if the content mostly enumerates options and facts, that's `diataxis-reference`. When the type is in doubt or mixed, consult the `diataxis` skill first.
02 资源文件 1
- 参考文档agents/openai.yaml109 B
03 SKILL.md 正文
diataxis-how-to
A how-to guide is a recipe: it defines exactly what will be achieved and directs an already-competent reader through achieving it. A recipe doesn't teach you to cook — it assumes basic competence and helps you get tonight's dinner made. Diátaxis places how-to guides at action + application: practical steps, in service of work.
The reader is in the middle of doing their job. Everything that isn't helping them finish is in their way.
Check you're writing the right thing
- The reader is a beginner learning by doing, in a setting you control →
diataxis-tutorial. The axis is study vs. work, not easy vs. hard — a how-to can be basic and a tutorial complex. - The content is mostly facts, options, parameters to consult →
diataxis-reference. - The reader wants background and why →
diataxis-explanation. - Mixed or unclear → step back to the
diataxisrouter and run the compass.
A tutorial answers "teach me to cook"; a how-to answers "how do I make this tonight, for eight, with no oven?" And unlike a tutorial, the how-to cannot promise safety or control the setting — the user is in the real world and responsible for their own outcome, so flag the hazards where they occur.
Step 1 — Define the goal
- Name the real-world task. A how-to guide answers a question only a user in the real world asks: bounded, specific, practical. "How to build a web application" is not it (that's a curriculum); "how to integrate application performance monitoring" is.
- Title it as the goal. "How to <accomplish X>" — the title should say exactly what the guide shows. Users find guides by matching titles against their problem.
- Decide the boundaries. Start and end in a reasonable, meaningful place. What can you assume is already true? What's out of scope? Assumed competence is the how-to's licence to be brief — state the assumptions and then honor them.
Step 2 — Design the sequence
- Order steps by the user's activity, not the machinery's layout. Write from the perspective of the person doing the work: what do they do next, with the tools at hand?
- Seek flow. Each step should set up the next; minimize context-switching between tools, files, and mental modes.
- Real tasks fork. Unlike a tutorial's single path, a how-to may branch on the user's situation — conditionals and multiple entry or exit points are fine when the real problem has that shape. Don't force linearity that isn't there; don't invent branches that are.
- Omit the unnecessary. Practical usability beats completeness. Anything exhaustive — full option lists, every parameter — gets a link to reference instead of a place in the guide.
Step 3 — Write it
- Open with the contract: "This guide shows you how to…"
- Use conditional imperatives keyed to the user's goal: "If you want x, do y." "To achieve w, do z."
- Address the reader as a competent adult. No teaching, no "as you may know…", no re-deriving basics.
- Push detail outward: "Refer to the x reference for the full list of options."
- Keep explanation out of the path. If a step needs a reason, one clause — the middle of a task is the one time the reader doesn't want a lecture. Link to the explanation article for later.
Step 4 — The drift checklist
Use this on your own draft, and as the audit lens when the diataxis router sends an existing how-to guide 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 repair move is usually relocation, not deletion.
- Trivial guidance — "to shut off the water, turn the tap clockwise" — telling a competent reader what they already know → cut.
- Teaching, background, history, or concept-building mid-task → relocate to explanation or a tutorial, leaving the one-clause statement plus a link in place. Relocation keeps a stub — don't strip the step of its naming sentence and leave a bare hole.
- Exhaustive listings of options or parameters → relocate to reference; link.
- Tutorial creep — comprehensive end-to-end coverage, contrived setup, hand-holding through basics → re-scope to the real task, or split a genuine tutorial out.
- A vague title ("Monitoring", "Deployment notes") → rename to "How to <goal>".
- Steps ordered by the system's structure rather than the user's workflow → reorder around the activity.
- Rigid linearity where the real task branches (or branches the task doesn't have) → match the sequence to reality.
Things not to do
- Don't teach. Assume competence; the guide serves work, not study.
- Don't explain in the path. Link and move on.
- Don't aim for completeness. Omit the unnecessary; reference exists for the rest.
- Don't describe the machinery for its own sake. Every sentence serves the user's next action.
- Don't promise the safety of a tutorial. The user is in the real world — flag destructive or irreversible steps where they occur.
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.