technical-writing
Skill2 starsChanged 52 days agoMITView on GitHub
Use when writing or reviewing human-facing documentation, RFCs, README files, PR descriptions, or technical guides. Don't use for drafting internal agent instructions, prompt runbooks, or skill documentation (use writing-for-agents).
142 other projects use a version of this.
Adopted by
Most recently taken up by
- Yeachan-Heo/oh-my-claude-sisyphustheir own version, first seen Nov 8, 2026
- Loner1024/skillstheir own version, first seen Nov 8, 2026
- lklimek/claudiustheir own version, first seen Nov 8, 2026
- justinyoo/skillstheir own version, first seen Nov 8, 2026
- thrillmade/agent-skillstheir own version, first seen Nov 8, 2026
- metraton/gaiatheir own version, first seen Nov 8, 2026
Used with
Projects with it also use ketchup-video, principle-explain-the-number and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
tristanphvnSkillketchup-video
Catch the user up like /keel:ketchup, with a short silent video of slides for what happened and the waiting calls as text under it. Use for /keel:ketchup-video.
Also in 14 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 29 projects that use this
eryzerzSkillmake-bot-ui
Use when building a custom UI (page, dashboard, buttons) that should wake a Grok Bot over a webhook, when the user must provide a webhook sender key, or when exposing that UI on Tailscale.
Also in 20 projects that use this
jaydubya818Skillprinciple-attack-the-premise
Apply when repeated fixes fail and a shared assumption may be wrong.
Also in 35 projects that use this
jaydubya818Skillprinciple-test-behavior-not-implementation
Apply when tests mirror internals instead of asserting observable outcomes.
Also in 36 projects that use this
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 14 projects that use this
- +5 more from jaydubya818
Other versions142 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 142
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- vercel/eve★ 5.8ksame name
- backnotprop/pstack★ 3.8ksame name
- chattocorp/chatto★ 2.9ksame name
- cashew-labs/libretto★ 898same name
- saffron-health/libretto★ 883same name
- moeru-ai/xsai★ 667same name
- proffesor-for-testing/agentic-qe★ 524same name
- NPC-Worldwide/npcsh★ 502same name
132 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository35 other files it gives its agents.
- agent-planningSkill
- brainstormingSkill
- codebase-designSkill
- code-reviewSkill
- conventional-commitSkill
- copy-web-designSkill
- executing-plansSkill
- frontend-designSkill
- i18nSkill
- laravelSkill
- prototypeSkill
- pull-requestSkill
- reactSkill
- recursive-researchSkill
- reflect-to-skillSkill
- review-a-skillSkill
- s13nSkill
- schema-migrationSkill
- security-auditSkill
- skill-testingSkill
- summarizeSkill
- systematic-debuggingSkill
- t3-operational-guardrailSkill
- testing-patternsSkill
- ui-motionSkill
- ui-ux-reviewSkill
- unslopSkill
- upsert-codebase-docsSkill
- verification-before-completionSkill
- vibe-wiseSkill
- web-advisor-promptSkill
- wizardSkill
- workspace-onboardingSkill
- writing-for-agentsSkill
- writing-plansSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 20 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 134 edited versions we read keep these.
20
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Write clear technical documentation that an engineer understands on the first read.
- Distinctive: line 10
Follow three universal rules across every layer:
- Distinctive: line 12
Use the short everyday word.
- Very specific: line 18
Write-Target Boundary. Write only to .agents/state/technical-writing/ and documentation files explicitly targeted by the user or task.
- Distinctive: line 29
Follow these four steps in sequence:
- Distinctive: line 39
Never blend multiple modes in a single document.
- Distinctive: line 51
Put common cases first and edge cases second.
- Distinctive: line 65
Use only approved verb forms, which are simple present, simple past, simple future with "will", imperative, and past participles as …
- Distinctive: line 69
Place modifiers such as "only" and "not" immediately adjacent to the words they modify.
- Distinctive: line 71
Remove trailing "-ing" clauses.
- Distinctive: line 73
Never form plurals using parentheses like "file(s)".
- Distinctive: line 74
Make sure every directory tree claim or count matches repository state at the landing commit, and provide the command that regenerates it.
- Distinctive: line 80
Run the completed draft against the review checklist and codebase truth:
- Distinctive: line 82
Verify that code formatting matches project conventions.
- Distinctive: line 113
Write links using descriptive destinations or page titles instead of phrases like "click here".
- Distinctive: line 117
Place safety notices immediately before the procedural step to which they apply:
- Distinctive: line 118
WARNING: Use strictly for hazards that cause irreversible data loss, production outages, or security breaches.
- Distinctive: line 119
CAUTION: Use for risks of service degradation, invalid runtime states, or build failures.
- Distinctive: line 120
NOTE: Use for non-hazardous technical clarifications and prerequisites.
- Distinctive: line 130
Keep articles like "the" and "a" before nouns to prevent dual interpretations.
- Distinctive: line 143
Run this check before finishing any human-facing technical text:
“Common” is measured: kept by at least 6 in 10 of the 134 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Technical writing
Write clear technical documentation that an engineer understands on the first read. Combine the four Diátaxis documentation modes with ASD-STE100 Simplified Technical English (STE) precision standards.
Follow three universal rules across every layer:
- Cut every word that does no work. If the sentence survives without a word, remove it.
- Use the short everyday word. Write "use" instead of "utilize", "help" instead of "facilitate", and "run" instead of "execute".
- Preserve sentence quality above rigid rule compliance. If a rule makes a sentence sound artificial, rewrite the sentence or keep the plain phrasing.
Use codebase truth for naming. Always write the exact symbol, file path, flag, or command name instead of synonyms or descriptive approximations. Code identifiers, endpoints, flags, and types function as Technical Names. Apply STE rules strictly to surrounding prose. Consult references/asd-ste100-rules.md for writing rules and vocabulary tables.
<HARD-GATE>
Write-Target Boundary. Write only to `.agents/state/technical-writing/` and documentation files explicitly targeted by the user or task. Do not modify application source code, API endpoint signatures, database schemas, or build configurations.
</HARD-GATE>Modes
Declare the active operating mode before executing any steps:
- Author mode (default): Draft new technical documentation, guides, or RFCs following established project conventions. Run Steps 1 through 4 sequentially.
- Review mode: Audit existing documentation for clarity, precision, and adherence to anti-slop guidelines without altering meaning. Run Step 1, Step 3, and Step 4. Step 2 is skipped because the existing document already provides the structural outline. Step 3 audits that outline against precision bounds. Emit
.agents/state/technical-writing/audit-report.mdand halt without modifying target files.
Workflow
Follow these four steps in sequence:
Step 1. Mode selection
Classify the document into exactly one Diátaxis mode before writing. Answer two questions regarding whether the document serves action or understanding, and whether it addresses learning or work:
- Action and learning yields a tutorial.
- Action and work yields a how-to guide.
- Understanding and work yields reference.
- Understanding and learning yields an explanation.
Never blend multiple modes in a single document. Link out to related modes instead of nesting them.
Completion criterion. .agents/state/technical-writing/scope.json exists on disk with target_file, diataxis_mode, and operating_mode.
Step 2. Outline and structure calibration
Draft the document structure using Google Developer Style guidelines and ASD-STE100 paragraph bounds:
- Address the reader directly as "you" in the present tense.
- State who performs each action. Prefer active voice. Use passive voice only when the actor is unknown or irrelevant.
- Order procedural steps in strict chronological sequence.
- State preconditions before actions, such as "To delete the document, click Delete."
- Limit descriptive paragraphs to a maximum of six sentences. Begin each paragraph with an explicit topic sentence.
- Put common cases first and edge cases second.
- Make headings informative verb phrases for tasks or noun phrases for concepts. Concept titles must accept an implicit "About" in front.
- Cut pre-announcements that promise future features.
- In tutorials, describe the exact visible result for every action, including prompt changes, expected stdout, or log lines.
Completion criterion. .agents/state/technical-writing/outline.md exists in second-person imperative style with descriptive paragraphs under seven sentences.
Step 3. Precision bounds and syntactic disambiguation
Refine draft sentences using ASD-STE100 and Global English principles. Consult references/asd-ste100-rules.md for complete substitution tables:
- Limit procedural sentences to a maximum of 20 words.
- Limit descriptive sentences to a maximum of 25 words.
- Give exactly one instruction per sentence. Do not chain multiple actions with "and".
- Limit noun clusters to a maximum of three nouns. Unpack clusters containing four or more nouns with prepositions.
- Use only approved verb forms, which are simple present, simple past, simple future with "will", imperative, and past participles as adjectives.
- Prohibit progressive tenses ending in "-ing" and gerunds acting as nouns.
- Restrict modal auxiliary verbs to "can" for capability, "will" for future certainty, and "must" for mandatory requirements. Ban "should", "could", "would", and "may".
- Replace unapproved verbs and synonyms. Replace "check" or "verify" with "make sure" or "examine". Replace "ensure" with "make sure". Replace "terminate" with "stop".
- Place modifiers such as "only" and "not" immediately adjacent to the words they modify.
- Anchor every pronoun. Make sure every instance of "it", "this", and "they" points to one obvious noun. Repeat the noun when any ambiguity exists.
- Remove trailing "-ing" clauses. Replace them with independent clauses or distinct sentences.
- Prohibit slashes. Replace "and/or" with "a, b, or both".
- Never form plurals using parentheses like "file(s)". Write the singular or plural noun directly.
- Make sure every directory tree claim or count matches repository state at the landing commit, and provide the command that regenerates it.
Completion criterion. .agents/state/technical-writing/precision-check.json exists with one boolean per rule in this step, and every value is true.
Step 4. Final verification pass
Run the completed draft against the review checklist and codebase truth:
- Confirm that every code symbol, file path, and command flag exists in the repository.
- Verify that code formatting matches project conventions.
- Audit prose against the quick reference checklist below.
Completion criterion. .agents/state/technical-writing/verification.json exists with linter_exit_code or linter_status: uninstalled, plus checklist_status: passed.
Diátaxis modes
Pick one mode for each document:
- Tutorial. Teach through practical action. Guide the learner to build a working artifact from start to finish. Produce visible progress at every step. State the exact expected output after each command. Keep background explanations minimal and link out for deep context.
- How-to guide. Solve a specific real-world problem for an experienced reader. Focus entirely on steps to the goal. Omit basic concept explanations. Allow forks and decisions based on the user setup.
- Reference. Provide dry, systematic facts for lookup. Describe system capabilities, flags, configuration options, and error codes without opinion or persuasion. Mirror the underlying code architecture.
- Explanation. Deliver understanding and architectural context. Explore design decisions, trade-offs, constraints, and alternative approaches. Discuss opinions and technical rationale here.
Anti-patterns
| ID | Title | Pattern description | Why it fails | Concrete fix |
| TW-1 | Blended modes | Mixes tutorial steps with deep architectural explanation | Confuses learners and frustrates reference lookups | Restrict document to one Diátaxis mode and link out |
| TW-2 | Noun stacks | Chains four or more nouns like "system data input pipe" | Creates parsing ambiguity for international readers | Unpack noun clusters with explicit prepositions |
| TW-3 | Loose pronouns | Uses "it" or "this" without an immediate noun referent | Forces reader guesswork and causes execution errors | Restate the specific noun directly |
| TW-4 | Missing prerequisites | Omits required tokens, CLI tools, or credentials | User commands fail mid-workflow | State exact preconditions before the first action |
| TW-5 | Patronizing adverbs | Inserts "simply run" or "obviously execute" | Antagonizes users encountering unexpected errors | Remove condescending adverbs entirely |
| TW-6 | Codebase drift | References outdated function names or phantom flags | Breaks user trust with non-reproducible snippets | Verify snippets against current repository state |
Style and syntax standards
Audience and tone
- Speak directly to the reader as a knowledgeable peer.
- State facts and instructions directly, and ban condescending words such as "simply", "easy", "just", or "obviously".
- Strip promotional vocabulary and corporate buzzwords.
- Write links using descriptive destinations or page titles instead of phrases like "click here".
Safety instructions and notices
Place safety notices immediately before the procedural step to which they apply:
- WARNING. Use strictly for hazards that cause irreversible data loss, production outages, or security breaches. Open with an imperative command or condition stating the hazard, then state consequence and prevention.
- CAUTION. Use for risks of service degradation, invalid runtime states, or build failures.
- NOTE. Use for non-hazardous technical clarifications and prerequisites. Frame notes using descriptive statements. Notes must never contain commands or imperative verbs.
WARNING, CAUTION, and NOTE are structural safety tiers. The unslop pseudo-label ban applies to prose connectors, not to these headings.
Punctuation rules
- Prohibit semicolons. Split coordinate clauses into separate sentences.
- Restrict colons. Introduce lists, tables, and code blocks with colons. Never use colons as connectors in running text.
- Restrict hyphens. Join approved compound words or Technical Names with hyphens. Never use hyphens as dashes to connect thoughts.
- Prohibit slashes like "a/b" or "and/or". Write "a, b, or both".
- Keep articles like "the" and "a" before nouns to prevent dual interpretations.
Scope specifics
- PR descriptions and commit messages must follow every layer except Diátaxis mode separation. Write concise briefings that reviewers can digest in under one minute. Link out to large terminal outputs or test logs instead of pasting them inline.
- Match repository conventions for code snippets and examples. Do not force arbitrary indentation rules that clash with project formatters.
Boundary isolation
Technical writing governs documentation files only (*.md, docs/, RFCs). Never alter application source code, update build configurations, or modify API endpoint signatures while editing documentation.
Quick audit checklist
Run this check before finishing any human-facing technical text:
| Check | Passing condition |
| Mode boundary | File adheres to exactly one Diátaxis mode with links for out-of-scope material |
| Procedural length | Instructional sentences stay under 21 words (maximum 20 words) |
| Descriptive length | Explanatory sentences stay under 26 words (maximum 25 words) |
| Paragraph bound | Descriptive paragraphs contain at most six sentences with topic sentence first |
| Noun clusters | Zero noun clusters containing more than three words |
| Verb tenses | Only simple present, simple past, simple future with will, and imperative, with zero progressive -ing verbs |
| Modal verbs | Modals restricted to can, will, and must, with zero instances of should or may |
| Imperative mood | Every procedural step is an active command with preconditions stated first |
| Single action | Exactly one instruction per procedural sentence without compound and chains |
| Safety tiers | WARNING, CAUTION, and NOTE follow strict severity definitions and precede actions |
| Modifier position | Words like "only" and "not" sit immediately adjacent to their target |
| Pronoun anchor | Every pronoun resolves to a single unambiguous referent without guesswork |
| Codebase truth | All file paths, symbols, commands, options, and counts exist and verify against repo state |
| Punctuation | Zero semicolons, zero slashes, zero dashes, and colons appear only before lists, tables, or code |
| Tone discipline | Zero condescending adverbs such as "simply" or "easy", and zero conversational padding |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

