writing-for-agents
Skill2 starsChanged 53 days agoMITView on GitHub
Use when drafting or editing agent instructions, AGENTS.md, CLAUDE.md, prompt runbooks, skill files, context pointers, design specs, or phased implementation plans. Don't use for human marketing copy (author marketing copy directly), general technical writing (use technical-writing), or user-facing product manuals (use technical-writing).
191 other projects use a version of this.
Adopted by
Most recently taken up by
- xiaoxiaosrm/dsh-mattpocock-skillstheir own version, first seen Nov 8, 2026
- Suge8/friedbuntheir own version, first seen Nov 8, 2026
- microsoft/frontier-agentic-modernization-rvastheir own version, first seen Nov 8, 2026
- The-Vibe-Company/quivrtheir own version, first seen Nov 8, 2026
- 5thlayer/skillworkstheir own version, first seen Nov 8, 2026
- gaoyu06/harnesstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use wait-what, to-questionnaire and 9 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.
AWSSkillwait-what
Stop. That last message did not land: re-pitch it.
Also in 115 projects that use this
AWSSkillto-questionnaire
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
Also in 83 projects that use this
J03Fr0stSkillwriting-for-humans
Write and revise human-facing prose so it is clear, specific, natural, and faithful to the author's intent and genre. Use for emails, chat messages, articles, reports, documentation, announcements, talks, and other prose when the user asks to draft, diagnose, edit, rewrite, make writing less formulaic or less AI-like, sound more natural or direct, or match a supplied voice. Do not use for agent instructions such as skills or AGENTS.md, code-only work, verbatim transcription, or translation without editorial changes.
Also in 5 projects that use this
liufeng1976Skillsetup-ts-deep-modules
Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.
Also in 34 projects that use this
openchamberSkillclack-cli-patterns
Use when creating or modifying OpenChamber CLI commands, prompts, terminal output, non-TTY behavior, `--quiet`, or `--json` behavior.
Also in 3 projects that use this
MicrosoftSkillcloud-architecture-diagram
Create, edit, or troubleshoot Azure-first architecture diagrams as editable draw.io files, with AWS and multicloud topology support and identity, API, and CI/CD flow diagrams. Use for architecture visualization, network boundaries, interaction flows, or missing diagram icons. Not for deploying infrastructure, live cloud discovery, security certification, or unrelated charts.
Also in 3 projects that use this
Other versions191 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 191
- mattpocock/skills★ 309ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- formbricks/formbricks★ 13ksame name
- btriapitsyn/openchamber★ 13ksame name
- openchamber/openchamber★ 13ksame name
- ArcReel/ArcReel★ 6.3ksame name
- vinvcn/mattpocock-skills-zh-CN★ 5.5ksame name
- withcoral/coral★ 4.9ksame name
- bestofjs/bestofjs★ 3.1ksame name
181 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
- technical-writingSkill
- testing-patternsSkill
- ui-motionSkill
- ui-ux-reviewSkill
- unslopSkill
- upsert-codebase-docsSkill
- verification-before-completionSkill
- vibe-wiseSkill
- web-advisor-promptSkill
- wizardSkill
- workspace-onboardingSkill
- writing-plansSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 15 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 177 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Write files the agent runs without guessing.
- Very specific: line 10
Read the unslop skill for banned words, punctuation bans, and Indonesian calque rules.
- Very specific: line 13
Write-Target Boundary. Write only to .agents/state/writing-for-agents/ and documentation files explicitly named by the user or task.
- Distinctive: line 24
Run the operational steps in sequence.
- Distinctive: line 37
Place each section in one tier (W2):
- Distinctive: line 46
Follow these rules to write:
- Distinctive: line 48
Use leading words already in model pre-training, like tracer, probe, baseline, invariant, audit, red, instead of long definitions (W4).
- Distinctive: line 57
Run checklist at end of file, then fix each failing row:
- Distinctive: line 59
Delete lines that do not change agent behavior (W5).
- Distinctive: line 60
Read directory layout, manifests, and CLI help at runtime instead of copying them into file.
- Very specific: line 61
Verify line budget with wc -l <target-file>.
- Distinctive: line 81
Put concept, rules, and edge cases under one heading.
- Distinctive: line 97
Prefer positive instruction.
- Distinctive: line 103
Delete no-ops. When line restates default behavior, cut it.
- Distinctive: line 104
Keep one source of truth. State each rule once.
- Distinctive: line 105
Delete dead lines. Remove lines that no longer change behavior.
- Distinctive: line 125
Leave code unchanged. Apply prose rules to prose only.
- Distinctive: line 129
Run this before deploying any agent file:
“Common” is measured: kept by at least 6 in 10 of the 177 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
Writing for agents
Write files the agent runs without guessing. This covers skills, AGENTS.md, CLAUDE.md, runbooks, specs, and plans. Vendors package files differently. Same rules govern all packages. Use clear hierarchy, tight leading words, binary done checks, and no slop.
Read the unslop skill for banned words, punctuation bans, and Indonesian calque rules. This skill defines structure and routing. It defers prose fixes to unslop.
<HARD-GATE>
Write-Target Boundary. Write only to `.agents/state/writing-for-agents/` and documentation files explicitly named by the user or task. Do not modify application source code, test suites, database schemas, or package lockfiles.
</HARD-GATE>Modes
Declare the active operating mode before executing any steps:
- Author mode (default): Draft the target file or edit it in place. Run Steps 1 through 4 sequentially.
- Audit mode: Review without edits. Run Step 1, Step 3, and Step 4. Step 2 is skipped because the existing document already provides the structural skeleton; Step 3 audits that skeleton instead of scaffolding a new one. Emit
.agents/state/writing-for-agents/audit-report.mdand halt without modifying target files.
Workflow
Run the operational steps in sequence.
Step 1. Scope and budget
Name target type and set its budget before you write:
- Name target as always-loaded file (AGENTS.md, CLAUDE.md, system prompt) or on-demand pointer (skill description, disclosed reference).
- List trigger branches. A branch changes what agent does. Put trigger word first in each branch. Drop synonyms that trigger same branch.
- Set budget. Text loaded each turn spends context load. Text behind pointer spends cognitive load. See W1.
Completion criterion. .agents/state/writing-for-agents/scope.json exists on disk with target_file, target_type, line_budget, and mode.
Step 2. Tier and outline
Place each section in one tier (W2):
- Primary. Agent runs ordered steps in sequence in main file. Keep file under 250 lines.
- Secondary. Agent reads rules, definitions, tables on demand. Group one concept with its rules under one heading.
- Tertiary. Agent loads disclosed files in
references/only through pointer. Move text over 100 lines out of main file.
Completion criterion. .agents/state/writing-for-agents/outline.md exists on disk labeling each section with its tier.
Step 3. Draft
Follow these rules to write:
- Close each step with done check that you can verify as yes or no and that covers all outputs (W3).
- Use leading words already in model pre-training, like tracer, probe, baseline, invariant, audit, red, instead of long definitions (W4).
- State file, endpoint, command, or mechanism. Replace vague feeling with file or command that causes it.
- Pair each ban with required action on same line (W4).
- For skill, write frontmatter and layout from Skill files section. Read
references/agentskills-spec.mdfor schema rules. Readreferences/testing-skills.mdandreferences/google-agent-standards.mdfor verification standards.
Completion criterion. Draft file exists on disk with every operational step closed by a verifiable binary completion criterion.
Step 4. Verify
Run checklist at end of file, then fix each failing row:
- Apply
unsloprules to prose. Check frontmatter and directory layout for skill. - Delete lines that do not change agent behavior (W5).
- Read directory layout, manifests, and CLI help at runtime instead of copying them into file.
- Verify line budget with
wc -l <target-file>.
Completion criterion. python3 skills/review-a-skill/scripts/lint_skill.py <path-to-skill> exits with status code 0 (for skills), or wc -l <target-file> confirms line count is within budget.
Core rules
W1 Context load and pointers
Each file spends one of two budgets. Context load means tokens present each turn. Cognitive load means time user spends to remember which file to load. Pointer trades context load for small fixed cost. Pointer stays loaded. Text behind it does not.
Pointer names material and lists branches that must read it. Keep one trigger per branch. Put trigger word first. Inline text each branch needs. Put text behind pointer when only some branches need it. If agent keeps missing required file, rewrite pointer wording before moving text inline.
W2 Tiers and splitting
File holds steps, reference, or both. Steps mean ordered actions. Reference means rules, definitions, facts agent reads on demand.
Move too little to reference and main file grows past 250 lines. Move too much and agent loses detail it needs. Split file only when split pays its cost:
- Split by sequence when agent sees upcoming steps and skips current one.
- Split by invocation when skill must run on its own. Read
references/skill-mechanics.mdfor invocation modes and router skills, and readreferences/anthropic-best-practices.mdfor harness patterns.
Put concept, rules, and edge cases under one heading. When file sprawls, move reference behind pointers and split task by branch or sequence.
W3 Steps and completion criteria
Each step closes with done check that tells agent when step ends. Strong check must pass two checks:
- Clarity. Agent can separate done from not done. "Ensure understanding" fails this check, so agent claims success early. Rewrite boundary to make done explicit. If boundary stays fuzzy, move later steps to another prompt or subagent.
- Demand. Check requires specific inspection. "Account for every modified database model" forces inspection. "List the changes" does not.
Strongest checks are verifiable, binary, and exhaustive.
W4 Leading words and positive framing
Leading word means compact concept already in model pre-training. Tracer, probe, baseline, invariant, audit, red use existing prior without long definition. Replace definition with word that carries it:
- "fast, deterministic, low overhead" becomes "tight".
- "a test that genuinely catches the issue" becomes "red".
Prefer positive instruction. Ban repeats banned concept, and model repeats it. Write "one-line bullet points" instead of "do not write long paragraphs". When ban guards hard invariant, pair it on same line with required action.
W5 Anti-slop beyond unslop
Agent copies tone and density of files it reads. Long instructions produce long prose and extra tool calls. unslop covers words and punctuation. These rules cover agent files:
- Match reader. Write at density agent must produce.
- Delete no-ops. When line restates default behavior, cut it. Test rule against real agent runs before keeping it.
- Keep one source of truth. State each rule once. Env files, directory layout, command help state themselves. Document convention only when env does not state it.
- Delete dead lines. Remove lines that no longer change behavior.
Anti-patterns
| ID | Title | Pattern description | Why it fails | Concrete fix |
| WFA-1 | Vague adjectives | Instructs agent to "Make it robust" or "Ensure quality" | Agent hallucinates arbitrary checks | Specify exact invariant or assertion |
| WFA-2 | Deep conditionals | Nests if-else logic 4+ levels deep in narrative prose | Instruction drift and skipped branches | Flatten into a decision table |
| WFA-3 | Prose walls | Packs dense operational instructions into uninterrupted paragraphs | Agent drops secondary constraints | Split into bulleted constraints |
| WFA-4 | Fuzzy exit | Uses subjective exit condition like "Ensure it looks right" | Premature termination without verification | Anchor to exit code or file existence |
| WFA-5 | Passive voice | Writes "changes should be applied" without actor | Ambiguous responsibility for actions | Use direct imperative verbs |
| WFA-6 | Runbook creep | Inlines exhaustive reference catalogs into main runbook | Context budget blowout | Move reference manuals to references/ |
Boundaries
Apply structure and style rules to prose only. Leave these byte for byte:
- Code fences and inline code, including YAML frontmatter blocks and JSON.
- SQL, shell commands, file paths, and tree output.
- Quoted slop examples that show banned pattern on purpose.
Leave code unchanged. Apply prose rules to prose only. Never rename symbol, restyle sample, or reflow command to satisfy prose rule.
Quick audit checklist
Run this before deploying any agent file:
| Check | Passing condition |
| Frontmatter | 1 to 64 character kebab-case name equal to directory, description with "Use when" and "Don't use for" |
| Hierarchy | Primary steps, secondary rules, and tertiary references separated |
| Context load | Main file under 250 lines, reference over 100 lines moved to references/ |
| Completion criteria | Every step ends on an artifact-anchored binary criterion |
| Anti-patterns | Anti-pattern table adheres to 5-column schema with stable IDs |
| Verification | Passes lint_skill.py with zero errors and line budget is verified |
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.

