agentleFS
dafaalzdafaalz/agent-skills/skills/technical-writing/SKILL.md

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

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.
  • tristanphvnSkill

    ketchup-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

  • ianclearySkill

    principle-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

  • eryzerzSkill

    make-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

  • jaydubya818Skill

    principle-attack-the-premise

    Apply when repeated fixes fail and a shared assumption may be wrong.

    Also in 35 projects that use this

  • jaydubya818Skill

    principle-test-behavior-not-implementation

    Apply when tests mirror internals instead of asserting observable outcomes.

    Also in 36 projects that use this

  • ianclearySkill

    poteto-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

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
  1. Distinctive:

    Write clear technical documentation that an engineer understands on the first read.

    line 8
  2. Distinctive:

    Follow three universal rules across every layer:

    line 10
  3. Distinctive:

    Use the short everyday word.

    line 12
  4. Very specific:

    Write-Target Boundary. Write only to .agents/state/technical-writing/ and documentation files explicitly targeted by the user or task.

    line 18
  5. Distinctive:

    Follow these four steps in sequence:

    line 29
  6. Distinctive:

    Never blend multiple modes in a single document.

    line 39
  7. Distinctive:

    Put common cases first and edge cases second.

    line 51
  8. Distinctive:

    Use only approved verb forms, which are simple present, simple past, simple future with "will", imperative, and past participles as …

    line 65
  9. Distinctive:

    Place modifiers such as "only" and "not" immediately adjacent to the words they modify.

    line 69
  10. Distinctive:

    Remove trailing "-ing" clauses.

    line 71
  11. Distinctive:

    Never form plurals using parentheses like "file(s)".

    line 73
  12. Distinctive:

    Make sure every directory tree claim or count matches repository state at the landing commit, and provide the command that regenerates it.

    line 74
  13. Distinctive:

    Run the completed draft against the review checklist and codebase truth:

    line 80
  14. Distinctive:

    Verify that code formatting matches project conventions.

    line 82
  15. Distinctive:

    Write links using descriptive destinations or page titles instead of phrases like "click here".

    line 113
  16. Distinctive:

    Place safety notices immediately before the procedural step to which they apply:

    line 117
  17. Distinctive:

    WARNING: Use strictly for hazards that cause irreversible data loss, production outages, or security breaches.

    line 118
  18. Distinctive:

    CAUTION: Use for risks of service degradation, invalid runtime states, or build failures.

    line 119
  19. Distinctive:

    NOTE: Use for non-hazardous technical clarifications and prerequisites.

    line 120
  20. Distinctive:

    Keep articles like "the" and "a" before nouns to prevent dual interpretations.

    line 130
  21. Distinctive:

    Run this check before finishing any human-facing technical text:

    line 143

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.md and 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

IDTitlePattern descriptionWhy it failsConcrete fix
TW-1Blended modesMixes tutorial steps with deep architectural explanationConfuses learners and frustrates reference lookupsRestrict document to one Diátaxis mode and link out
TW-2Noun stacksChains four or more nouns like "system data input pipe"Creates parsing ambiguity for international readersUnpack noun clusters with explicit prepositions
TW-3Loose pronounsUses "it" or "this" without an immediate noun referentForces reader guesswork and causes execution errorsRestate the specific noun directly
TW-4Missing prerequisitesOmits required tokens, CLI tools, or credentialsUser commands fail mid-workflowState exact preconditions before the first action
TW-5Patronizing adverbsInserts "simply run" or "obviously execute"Antagonizes users encountering unexpected errorsRemove condescending adverbs entirely
TW-6Codebase driftReferences outdated function names or phantom flagsBreaks user trust with non-reproducible snippetsVerify 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:

CheckPassing condition
Mode boundaryFile adheres to exactly one Diátaxis mode with links for out-of-scope material
Procedural lengthInstructional sentences stay under 21 words (maximum 20 words)
Descriptive lengthExplanatory sentences stay under 26 words (maximum 25 words)
Paragraph boundDescriptive paragraphs contain at most six sentences with topic sentence first
Noun clustersZero noun clusters containing more than three words
Verb tensesOnly simple present, simple past, simple future with will, and imperative, with zero progressive -ing verbs
Modal verbsModals restricted to can, will, and must, with zero instances of should or may
Imperative moodEvery procedural step is an active command with preconditions stated first
Single actionExactly one instruction per procedural sentence without compound and chains
Safety tiersWARNING, CAUTION, and NOTE follow strict severity definitions and precede actions
Modifier positionWords like "only" and "not" sit immediately adjacent to their target
Pronoun anchorEvery pronoun resolves to a single unambiguous referent without guesswork
Codebase truthAll file paths, symbols, commands, options, and counts exist and verify against repo state
PunctuationZero semicolons, zero slashes, zero dashes, and colons appear only before lists, tables, or code
Tone disciplineZero condescending adverbs such as "simply" or "easy", and zero conversational padding

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.