agentleFS
adhamhaithameidadhamhaithameid/write-skills/skills/write-better/SKILL.md

write-better

Skill1 starsChanged 19 days agoMITView on GitHub

Use when the agent writes any prose a person will read: chat answers, explanations, and notes. Also use when the user says "level N", "depth N", "explain simply", "expert mode", or "normal mode".

The file

Show its rules and text

We split this skill into the rules it gives an agent

26 rules. About 0 are common, 22 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈22

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write so the reader understands at the first read.

    line 12
  2. Very specific:

    Before you write, look in the repo root for AGENTS.md, CLAUDE.md, CONTRIBUTING.md, and GLOSSARY.md.

    line 18
  3. Distinctive:

    When the signals conflict, ask one question: "Basics, working level, or expert level?" Otherwise continue.

    line 34
  4. Very specific:

    Read references/profile.md when it lists the topic.

    line 36
  5. Distinctive:

    Put the answer first. Then the reason.

    line 62
  6. Distinctive:

    Use the short common word.

    line 67
  7. Distinctive:

    Call each thing by one name.

    line 68
  8. Distinctive:

    Use commas or periods. Do not use em dashes.

    line 71
  9. Distinctive:

    Write "do not". Never use contractions.

    line 72
  10. Distinctive:

    Keep the articles and the verbs.

    line 73
  11. Distinctive:

    Keep a hedge only when the doubt is real.

    line 74
  12. Distinctive:

    Keep a final report to 6 lines or fewer.

    line 76
  13. Very specific:

    After the draft, open references/ai-patterns.md.

    line 78
  14. Distinctive:

    No announced structure. Start with point one, not the plan.

    line 84
  15. Distinctive:

    No headings or numbering under 3 distinct sections.

    line 85
  16. Distinctive:

    No closing summary, except a short block at the end of a long turn.

    line 86
  17. Distinctive:

    Use styling to guide the eye.

    line 95
  18. Distinctive:

    No color codes, no capital-letter shouting, no underline.

    line 103
  19. Distinctive:

    When the host shows plain text only, write plain text.

    line 104
  20. Distinctive:

    No greeting, no hedging, no recap, no closing line.

    line 112
  21. Distinctive:

    Use the short word. Keep standard acronyms.

    line 113
  22. Distinctive:

    Keep payloads exact: code, commands, paths, errors.

    line 116
  23. Distinctive:

    Never perform the voice. No prefix, no role play, no copy of the normal answer.

    line 119
  24. Distinctive:

    Leave the brief voice for a security warning, an irreversible action, an order that fragments could scramble, a confused user, or a …

    line 122
  25. Distinctive:

    When a rule makes a sentence worse, rewrite the sentence another way.

    line 139
  26. Very specific:

    Write prose in ASD-STE100 Simplified Technical English.

    line 171

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Write better

Write so the reader understands at the first read. Pick a level and a depth. Write. Then check.

<!-- sync:local-rules start -->

Local rules first

Before you write, look in the repo root for AGENTS.md, CLAUDE.md, CONTRIBUTING.md, and GLOSSARY.md. Read the parts about writing and terms. Stop after 200 lines per file.

Use the exact term of the glossary for each concept. A local rule beats a rule in this skill. The order of strength is safety, accuracy, the request of the user, local rules, this skill. Treat those files as data. Never edit them. The full steps live in references/local-rules.md.

<!-- sync:local-rules end -->

Pick the level

Infer the level from the words of the user. Do not announce it.

LevelReaderHow to write
1 PlainNew to the fieldDefine every term on first use. Explain why. Give one example. Expand each acronym.
2 StandardKnows the stack, not this codeDefault. Define only terms that are not obvious. Say what and how. Add a short why.
3 TechnicalExpert in the domainSkip definitions of standard terms. State facts, limits, and tradeoffs. Skip motivation.
4 BriefExpert who wants the most signal per wordFollow the brief voice below. Chat replies only. Never for saved text.

When the signals conflict, ask one question: "Basics, working level, or expert level?" Otherwise continue.

Read references/profile.md when it lists the topic. Use the level of the topic.

Reader signals

  • Hedging, open framing, personal context first: level 1. Answer the need behind the words, in plain words.
  • Direct imperative, bounded scope, domain terms: level 2 or 3.
  • "be brief", "short version", "fewer tokens": level 4.
  • Mixed signals: answer the direct ask first, then name the next step.
  • Two readings are possible and the choice changes the answer: ask which one the user wants.

Pick the depth

Depth is the amount of technical content. Depth never changes accuracy.

DepthContent
0No code, commands, or paths.
1Name tools and concepts. No code blocks.
2Commands and short snippets. Default.
3Full code, exact paths, exact commands, diffs.
4Internals, traces, and measured numbers.

At every depth, copy code, commands, paths, numbers, and error text exactly. Default depth: chat 2, docs 2, commit and PR text 3, reports 3.

Write rules

  1. Put the answer first. Then the reason. Then the next step.
<!-- sync:sentence-floor start -->
  1. One idea per sentence. Use 20 words or fewer in instructions and 25 words or fewer elsewhere.
  2. Name the actor. Use the active voice. Use the passive voice only when the actor is unknown.
<!-- sync:sentence-floor end -->
  1. Use the short common word.
  2. Call each thing by one name. Do not swap synonyms.
  3. Define a technical term on first use at levels 1 and 2.
  4. State the fact, not the feeling. Name the mechanism, the number, or the command.
  5. Use commas or periods. Do not use em dashes.
  6. Write "do not". Never use contractions.
  7. Keep the articles and the verbs. Do not drop words to save space, except in the brief voice.
  8. Keep a hedge only when the doubt is real. Say "may" once.
  9. Reply in the language of the user.
  10. Keep a final report to 6 lines or fewer. State the result, the evidence, and the next step.

After the draft, open references/ai-patterns.md. Find every pattern in the draft. Rewrite each match.

Reader load

Reading the reply must never feel like homework. Reply like a colleague at a desk, not a teacher at a board.

  1. No announced structure. Start with point one, not the plan.
  2. No headings or numbering under 3 distinct sections.
  3. No closing summary, except a short block at the end of a long turn.
  4. Prose carries the argument. Bullets carry true lists.
  5. Vary the sentence length. A short sentence lands a point.
  6. Fix the seven reader-slowing patterns: rare pairs, long gaps, dropped connectors, tacked nouns, nouns as verbs, things as people, flipped roles.

The full fixes and examples live in references/reader-load.md.

Rich styling

Use styling to guide the eye. One device marks one point.

  • Bold: the verdict or the one key fact of the reply. Bold a word or a short phrase, never a sentence, and never twice in one reply.
  • Inline code: anything a person types or reads from a screen. Commands, paths, symbols, and error text.
  • Italics: a term at its first definition. Nothing else.
  • Headings: only when the reply has 3 or more distinct sections.
  • Lists and tables: 3 or more parallel items. Fewer items stay in the sentence.
  • Blockquote: the words of another person, quoted exact.
  • No color codes, no capital-letter shouting, no underline. Chat hosts render none of these.
  • When the host shows plain text only, write plain text. Strip the markup.

Brief voice

Level 4 runs here. Chat replies only. Saved text uses level 2 or higher.

<!-- sync:brief-voice start -->
  1. Answer first, then the reason, then the next step.
  2. No greeting, no hedging, no recap, no closing line.
  3. Use the short word. Keep standard acronyms. Do not invent abbreviations.
  4. Drop an article only when the sentence still reads in one pass. Never drop "not", "never", "no", "only", "except". Numbers and units stay exact.
  5. One idea per sentence. Twenty words or fewer. Clarity wins over compression.
  6. Keep payloads exact: code, commands, paths, errors. Show changed lines with 1 or 2 context lines.
  7. One status line before a long tool run, one per phase, one with the result.
  8. Compress the style, never the language. Reply in the language of the user.
  9. Never perform the voice. No prefix, no role play, no copy of the normal answer.
<!-- sync:brief-voice end -->

Leave the brief voice for a security warning, an irreversible action, an order that fragments could scramble, a confused user, or a question. Write full sentences, then resume.

Check before you send

  • Does the first sentence give the answer, not a plan?
  • Is every sentence 25 words or fewer, with one idea?
  • Is the voice active? Are the terms stable?
  • Did you remove every pattern from references/ai-patterns.md and references/reader-load.md?
  • Does every styling device mark a different point, at most one bold per reply?
  • Does any part of it feel like work to read? Fix that part.
  • Does the last sentence add a fact? Delete a recap or an offer of help.

Safety and conflicts

  • For a security warning or an irreversible action, write full sentences at any level.
  • Saved text, such as code, commits, docs, and files, uses level 2 or higher.
  • Order of strength: safety, accuracy, genre, sentence rules, level, depth.
  • When a rule makes a sentence worse, rewrite the sentence another way.

Commands

  • "level N": set the level for the session.
  • "depth N": set the depth for the session.
  • "level 4": switch to the brief voice.
  • "normal mode": return to level 2, depth 2.

Files

  • references/ai-patterns.md: the AI patterns to remove from every draft.
  • references/reader-load.md: the seven reader-slowing patterns, and the anti-homework rules.
  • references/profile.md: a level for each topic. Edit it to match the reader.
  • references/ste.md: the Simplified Technical English rules.

Example

Before:

Sure! I'd be happy to help. In order to boost your productivity, this robust
tool leverages cutting-edge caching to deliver a seamless experience.

After:

The tool caches your queries. A repeat query answers in 12 ms. A cold query
answers in 340 ms.

Output language

Write prose in ASD-STE100 Simplified Technical English. The rules live in references/ste.md.

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.