agentleFS
K-logK-log/skills/skills/productivity/technical-writing/SKILL.md

technical-writing

Skill0 starsChanged 10 days agoMITView on GitHub

Rules for clear, simple technical English (Simplified Technical English). Use when writing or reviewing docs, READMEs, runbooks, procedures, PR bodies, tickets, or messages, or when the user asks for plain, simpler, or controlled English.

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

57 rules. 0 are common, 55 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 134 edited versions we read keep these.

  • 55

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every block of text is one of two types.

    line 12
  2. Distinctive:

    Write or rewrite each block with the rules below.

    line 20
  3. Distinctive:

    Read each sentence again and check it against every rule.

    line 21
  4. Distinctive:

    When you count words, each of these counts as one word:

    line 33
  5. Distinctive:

    Use the command form. Start with the verb.

    line 46
  6. Distinctive:

    Write one instruction in each sentence.

    line 49
  7. Distinctive:

    If one action is too long for 20 words, split it into two sentences in the same step.

    line 50
  8. Distinctive:

    Put a condition first, then a comma, then the command.

    line 52
  9. Distinctive:

    Do not write "you must" before a command.

    line 56
  10. Distinctive:

    Put an expected result or a limit in the same step, directly after the action.

    line 57
  11. Distinctive:

    Use the same key words again to connect sentences.

    line 65
  12. Distinctive:

    Use connecting words to show how sentences relate: "and", "but", "then", "thus", "as a result", "at the same time".

    line 66
  13. Distinctive:

    Use the active voice. Name who or what does the action.

    line 73
  14. Distinctive:

    Test for the passive voice: ask "by whom or by what?" If the sentence answers that question, or a word "by" names the doer, the sentence is …

    line 76
  15. Distinctive:

    Put the doer first ("The scheduler starts the job").

    line 79
  16. Distinctive:

    Use "you" when the doer is the reader.

    line 81
  17. Distinctive:

    Use only simple tenses: present ("runs"), past ("ran"), and future ("will run").

    line 82
  18. Distinctive:

    Do not use "-ing" verb forms, except in names of things ("logging", "load balancing", "the caching layer").

    line 83
  19. Distinctive:

    Use "can" for possibility.

    line 87
  20. Distinctive:

    Do not build long verb chains with helper verbs.

    line 90
  21. Distinctive:

    Do not use phrasal verbs (a verb plus a small word that together have a new meaning).

    line 96
  22. Very specific:

    Use common words, and use each word with one meaning only.

    line 105
  23. Distinctive:

    Use each word as one part of speech only: a word that is a noun stays a noun, and a verb stays a verb.

    line 107
  24. Distinctive:

    Use some words only with their literal meaning:

    line 111
  25. Distinctive:

    Do not use a field term as a verb.

    line 120
  26. Distinctive:

    Use a field verb only with its field meaning.

    line 128
  27. Distinctive:

    Use a permitted verb when it gives the meaning ("If you find an error", not "If you detect an error").

    line 132
  28. Distinctive:

    Do not use slang or jargon that only a small group understands.

    line 135
  29. Distinctive:

    Use the project's own term for each item.

    line 138
  30. Distinctive:

    Keep names of things to three words or fewer.

    line 139
  31. Distinctive:

    If an official name is longer than three words, write it in full the first time.

    line 142
  32. Distinctive:

    Do not make an abbreviation for a name of three words or fewer.

    line 143
  33. Very specific:

    When a name has an identifier (a step number, a PR number, a file path), a short name is sufficient: "the handler in auth.ts", not "the …

    line 146
  34. Distinctive:

    Use American English spelling.

    line 147
  35. Distinctive:

    Do not leave out words to make a sentence shorter.

    line 151
  36. Distinctive:

    Do not use contractions. Write "do not", not "don't".

    line 154
  37. Distinctive:

    Write "that" after "make sure", "show", and "recommend".

    line 155
  38. Distinctive:

    Do not put "the" before a name with an identifier ("Run job 42", not "Run the job 42").

    line 158
  39. Distinctive:

    Do not put "the" before a general concept.

    line 159
  40. Distinctive:

    Use a list when a sentence has many items or actions.

    line 168
  41. Distinctive:

    Put a colon at the end of the text before the list.

    line 170
  42. Distinctive:

    Start each item with an uppercase letter.

    line 171
  43. Distinctive:

    Put a period after an item that is a full sentence.

    line 172
  44. Distinctive:

    Put no comma or semicolon at the end of an item.

    line 173
  45. Distinctive:

    Make sure that each item reads correctly with the text before the colon.

    line 174
  46. Distinctive:

    Do not mix instructions and descriptions in one list.

    line 175
  47. Distinctive:

    Do not use semicolons. Write two sentences.

    line 179
  48. Distinctive:

    Use a hyphen to join words that work as one unit before a noun ("read-only file", "rate-limited endpoint").

    line 180
  49. Distinctive:

    Use parentheses for references, identifiers, abbreviations, singular-and-plural forms ("file(s)"), short explanations, and alternatives.

    line 181
  50. Distinctive:

    Do not use Latin abbreviations.

    line 182
  51. Distinctive:

    Pronouns: when "it", "they", or "this" can refer to more than one thing, repeat the noun.

    line 187
  52. Distinctive:

    Possessives: use "'s" only when it is clear.

    line 188
  53. Distinctive:

    Gender: use gender-neutral words. Do not use "he" or "she" for an unknown person.

    line 189
  54. Distinctive:

    Consistency: write the same kind of step or statement the same way each time.

    line 191
  55. Distinctive:

    Use a warning for an action that can cause data loss, an outage, or injury, for example a destructive command or a production change.

    line 195
  56. Distinctive:

    Start with a label that shows the risk.

    line 197
  57. Distinctive:

    Do not rewrite quoted text: code, commands, identifiers, error messages, UI labels, titles, and text from other documents.

    line 207

“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

These rules make technical text easy to read. The goal: the reader understands each sentence the first time, also if English is not their first language.

These rules follow Simplified Technical English (ASD-STE100, Issue 9). When this file does not cover a case, apply that standard.

Two types of text

Every block of text is one of two types. The rules differ, so decide the type first.

  • Instructions tell the reader what to do: setup steps, runbooks, "how to" sections.
  • Descriptions give information only: explanations, architecture notes, PR summaries, status messages.

How to use this skill

  1. Decide the type of each block: instructions or description.
  2. Write or rewrite each block with the rules below.
  3. Read each sentence again and check it against every rule. Count the words with the counting rules.
  4. If a simpler word changes the meaning, rewrite the whole sentence. Do not force a word-for-word swap. Ask two questions: "What does this word mean here?" and "What must the reader do?" Then write that with permitted words. It is correct to split a sentence, delete words that give no information, or ask for missing facts.

You are done when every sentence obeys every rule, or you can say which rule a sentence breaks on purpose, and why.

Sentence length

  • Instructions: a maximum of 20 words in each sentence.
  • Descriptions: a maximum of 25 words in each sentence.
  • Paragraphs: one topic, and a maximum of six sentences. Start with a sentence that names the topic.
  • Notes in a procedure: a maximum of 25 words in each sentence.

When you count words, each of these counts as one word:

  • A number, also with its unit ("20 MB")
  • An abbreviation ("API", "VPN")
  • An identifier ("PR 42", "v2.1")
  • Inline code, a command, a file name, or a quoted UI label or error message
  • A title, a heading, or a proper name
  • A hyphenated group ("read-only")
  • Text in parentheses (count that text as a separate sentence too)

In a list, the colon ends the first sentence. Each item is a new sentence with its own limit.

Instructions

  • Use the command form. Start with the verb.
    • Good: Start the server again.
    • Bad: The server should be restarted.
  • Write one instruction in each sentence. Join two actions only when they happen at the same time ("Cut and remove the wire"). Number the steps.
  • If one action is too long for 20 words, split it into two sentences in the same step.
    • Good: Copy the files to the backup bucket. Continue until the bucket contains 40 GB.
  • Put a condition first, then a comma, then the command.
    • Good: If the build shows an error, read the log.
    • Bad: Read the log if the build fails.
  • The position of the comma changes the meaning. "If the job does not stop correctly, delete it" is not the same as "If the job does not stop, correctly delete it".
  • Do not write "you must" before a command. Use "must" only for safety or for an important condition.
  • Put an expected result or a limit in the same step, directly after the action.
    • Good: Run the health check. The response time must be less than 200 ms.
  • A note gives information only. It contains no commands, requirements, or limits. Test: the reader can do the procedure correctly without reading the notes. If a note can prevent data loss or an outage, make it a warning (see Warnings). Use notes in procedures only.

Descriptions

  • A description gives information only. It contains no commands. To show what the reader is able to do, write "you can" ("You can change the timeout in config.yml").
  • Give information gradually. Put one subject in each sentence.
  • Use the same key words again to connect sentences. Do not change a term halfway through the text.
  • Use connecting words to show how sentences relate: "and", "but", "then", "thus", "as a result", "at the same time".
  • Give accurate data, not general statements.
    • Good: When the cache is full, the response time increases to 2 s.
    • Bad: Cache size affects performance.

Verbs

  • Use the active voice. Name who or what does the action.
    • Good: The scheduler starts the job.
    • Bad: The job is started by the scheduler.
  • Test for the passive voice: ask "by whom or by what?" If the sentence answers that question, or a word "by" names the doer, the sentence is passive.
  • Use the passive voice only in a description, and only when you do not know who did the action ("The file was deleted"). Do not name a wrong doer to make a sentence active. If the doer is unknown, "something" is correct: "Something deleted the file".
  • To make a passive sentence active:
    • Put the doer first ("The scheduler starts the job").
    • In instructions, use the command form ("Remove the logs").
    • Use "you" when the doer is the reader. Use "we" when the doer is the team.
  • Use only simple tenses: present ("runs"), past ("ran"), and future ("will run"). Do not use "has run", "had run", "is running", or "was running".
  • Do not use "-ing" verb forms, except in names of things ("logging", "load balancing", "the caching layer").
    • Good: When you run the tests, close other apps.
    • Bad: When you are running the tests, close other apps.
    • These "-ing" words are permitted: "during", "missing", "remaining", "something", "opening" (a hole), "routing".
  • Use "can" for possibility. Do not use "could", "may", "might", or "would".
    • Good: If you do not make a backup, data loss can occur.
    • Bad: If you do not make a backup, data loss could occur.
  • Do not build long verb chains with helper verbs.
    • Good: Update the config.
    • Bad: The config is to be updated.
  • Show an action with a verb, not a noun.
    • Good: Before you remove the key, ...
    • Bad: Before the removal of the key, ...
  • Do not use phrasal verbs (a verb plus a small word that together have a new meaning). Use a single verb.
    • "set up" -> "install" or "prepare"
    • "carry out" -> "do"
    • "find out" -> "find" or "make sure"
    • "give off" -> "release"
    • "go down" (for a value) -> "decrease"

Words

  • Use common words, and use each word with one meaning only. WORDS.md lists words to replace and all permitted verbs. Read it before you choose a verb or check a text for word errors.
  • For a word that WORDS.md does not list, select the simplest common word that has the same meaning. If no single word gives the meaning, rewrite the sentence.
  • Use each word as one part of speech only: a word that is a noun stays a noun, and a verb stays a verb.
  • Some words that are often verbs are nouns here.
    • Good: Do a test of the API. Do a check of the logs. This can cause damage to the data.
    • Bad: Test the API. Check the logs. This can damage the data.
  • Use some words only with their literal meaning:
    • "follow" means "come after". For instructions, write "obey".
    • "see" is only for what you see with your eyes. Otherwise, write "make sure that".
    • "turn" is only for rotation. "The status turns green" -> "The status changes to green".
    • "above" and "below" are only for positions. For limits, write "more than" and "less than".
    • "wear" means "become damaged by friction". For clothing, write "put on".
    • "extend" means "increase in length or range". "The rule extends to all services" -> "The rule is applicable to all services".
    • "work" is only a noun ("When you do work on the database"). "help" is only a verb ("with the aid of a second person").
  • Field terms are the names of things in the subject field: repository, branch, endpoint, migration, token, database. They are permitted. A field term can contain a word that is not permitted on its own: "main branch" is correct, although "main" -> "primary" in other text ("the primary cause").
  • Do not use a field term as a verb.
    • Good: Apply grease to the bolts. Put the logs in a file.
    • Bad: Grease the bolts. File the logs.
  • Field verbs are permitted when no verb in WORDS.md gives the same meaning:
    • Input: click, enter, press, print, swipe, tap, type
    • User interface: clear, close, copy, cut, delete, deselect, disable, drag, drag and drop, enable, encrypt, erase, filter, highlight, invalidate, maximize, minimize, navigate, open, paste, save, scroll, sort, store, validate, zoom in, zoom out
    • System: abort, boot, debug, download, format, install, load, process, reboot, update, upgrade, upload
    • Code and delivery: call, commit, deploy, merge, push, return, run
  • Use a field verb only with its field meaning.
    • Good: Enter your password. Enable the retry flag.
    • Bad: Do not enter the server room. This change enables faster builds.
    • Fix: Do not go into the server room. This change lets the build operate faster.
  • Use a permitted verb when it gives the meaning ("If you find an error", not "If you detect an error"). When you must use a field verb, select the one with the most accurate meaning. Do not use vague verbs such as "handle" or "process".
    • Good: If the request shows a timeout error, send it again.
    • Bad: Handle the timeout.
  • Do not use slang or jargon that only a small group understands.
    • Good: After the update, do not disconnect the router from power.
    • Bad: After the update, do not brick the router.
  • Use the project's own term for each item. Use one term for one item in all of the text.
  • Keep names of things to three words or fewer. Break up long groups with "of", "for", "on", or "in".
    • Good: the timeout of the retry policy for the upload job
    • Bad: the upload job retry policy timeout
  • If an official name is longer than three words, write it in full the first time. Then use a short form.
  • Do not make an abbreviation for a name of three words or fewer. A text full of abbreviations is shorter, but it is not easy to read.
    • Good: Remove the cache layer from the request path.
    • Bad: Remove the CL from the RP.
  • When a name has an identifier (a step number, a PR number, a file path), a short name is sufficient: "the handler in auth.ts", not "the authentication middleware request handler in auth.ts".
  • Use American English spelling. Do not change the spelling of quoted text.

Complete sentences

  • Do not leave out words to make a sentence shorter. Keep the subject, the verb, and "the", "a", or "an".
    • Good: If the flag is set, remove it.
    • Bad: If set, remove.
  • Do not use contractions. Write "do not", not "don't". Write "it is", not "it's".
  • Write "that" after "make sure", "show", and "recommend".
    • Good: Make sure that the port is open.
    • Bad: Make sure the port is open.
  • Do not put "the" before a name with an identifier ("Run job 42", not "Run the job 42").
  • Do not put "the" before a general concept.
    • Good: Retries increase load on the database.
    • Bad: The retries increase the load on the database. (when the sentence is about all retries)
  • In a series, one "the" applies its adjective to all items. Repeat "the" to limit the adjective to the first item.
    • "Delete the expired logs, caches, and backups." (All three are expired.)
    • "Delete the expired logs, the caches, and the backups." (Only the logs are expired.)

Lists

Use a list when a sentence has many items or actions.

  • Put a colon at the end of the text before the list.
  • Start each item with an uppercase letter.
  • Put a period after an item that is a full sentence. Put no period after an item that is not a full sentence.
  • Put no comma or semicolon at the end of an item. Put a period after the last item.
  • Make sure that each item reads correctly with the text before the colon.
  • Do not mix instructions and descriptions in one list. Keep all items at one level when possible.

Punctuation

  • Do not use semicolons. Write two sentences.
  • Use a hyphen to join words that work as one unit before a noun ("read-only file", "rate-limited endpoint").
  • Use parentheses for references, identifiers, abbreviations, singular-and-plural forms ("file(s)"), short explanations, and alternatives.
  • Do not use Latin abbreviations. "e.g." -> "for example". "i.e." -> "that is". For "etc.", write "or other ..." or delete it.

Clarity checks

  • "with": "Install the panel with the green fasteners" has three meanings. Read each sentence with "with" again. Start with the main action: "Seal the opening with tool X", not "Use tool X to seal the opening".
  • Pronouns: when "it", "they", or "this" can refer to more than one thing, repeat the noun.
  • Possessives: use "'s" only when it is clear. "The config of the service" is always clear.
  • Gender: use gender-neutral words. Do not use "he" or "she" for an unknown person.
  • False friends: a word that looks like a word in another language can have a different meaning in English. Use the English meaning ("eventually" means "in the end", not "possibly").
  • Consistency: write the same kind of step or statement the same way each time.

Warnings

Use a warning for an action that can cause data loss, an outage, or injury, for example a destructive command or a production change.

  1. Start with a label that shows the risk. WARNING: risk to people. CAUTION: risk of damage, data loss, or downtime. If there are both risks, use WARNING.
  2. Then give a clear command or condition.
  3. Then give the risk or the possible result.

A warning obeys the 20-word limit for instructions. In a list of prohibited actions, start each item with "Do not".

Example: "CAUTION: Before you run this migration on production, make a backup. The migration deletes the columns that it replaces."

What not to change

Do not rewrite quoted text: code, commands, identifiers, error messages, UI labels, titles, and text from other documents.

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.