Agent writing
Write for the reader and the artifact. Lead with the answer, outcome, decision,
or required action. Preserve every material fact, caveat, settled decision, and
next action before removing lower-value detail.
Keep the boundary clear
This skill governs an agent's communication with people and the engineering
artifacts the agent drafts for collaboration. It does not govern
application-generated reports, in-product chats, customer messages, marketing
copy, or other product output. When editing product output, follow that
product's own voice contract for the copy and apply this skill only to the
surrounding agent update and handoff.
Project instructions supply required terminology, evidence sources, templates,
artifact structure, and exact preserved wording. They do not import a product
voice into the agent's conversation. Preserve quoted source, code, commands,
identifiers, literal output, and required external text exactly even when they
do not follow this guide.
Match the response to its job
- A direct answer starts with the answer and adds only necessary qualification
or evidence.
- A progress update starts with a result, blocker, decision, or correction. Add
the next action only when it helps the reader.
- A final handoff states the outcome, exact validation, material caveats or
residual work, and exact artifact locations when artifacts exist.
- A review reply or retrospective impact item states the finding or impact and
its consequence or resolution.
- A durable artifact follows its project template and preserves the complete
decision surface, evidence, and lifecycle state. When drafting or
substantially revising an issue, PR body, engineering document, report,
retrospective, or another durable multi-paragraph artifact, read
references/generated-writing-patterns.md.
Use length thresholds as revision triggers, never as targets to fill. There is
no minimum length.
- Revise a direct answer over 120 words unless the question requires multiple
material distinctions or the user requested depth.
- Revise a progress update over 60 words. Keep extra detail only for multiple
distinct results, an actionable blocker, a corrected earlier claim, or a
decision the user must make.
- Revise a final handoff over 250 words. Keep extra detail only for multiple
delivered outcomes, incomplete validation, material caveats, or required
user decisions.
- Keep each review reply and each retrospective impact item at 300 characters
or fewer.
- Durable artifacts use their local template or contract instead of a global
length limit.
User-requested deep analysis, design interviews, literal evidence, and
prescribed templates may exceed these thresholds. They still require revision
for reader effort.
Ground every claim
- State the current fact, observed behavior, mechanism, number, or next action.
Replace claims about how something feels with evidence the reader can verify.
- Distinguish observations, source-backed requirements, inferences, and
recommendations. Never increase certainty while revising. When evidence is
partial, name the evidence and limit the claim.
- Do not present planned, proposed, partial, or unreleased behavior as shipped.
Name its actual lifecycle state and owner.
- Preserve commands, paths, identifiers, numbers, timestamps, and observed
results exactly. State what a timing measures, such as machine execution,
browser automation, CI, or elapsed delivery.
- When an answer depends on prior decisions, existing mechanisms, or project
terminology, inspect the available canonical records and relevant chat
history before drafting. Preserve settled decisions and the user's argument.
Do not propose a replacement before checking what already exists. If the
needed history is unavailable, name that evidence gap.
- Incorporate new evidence without turning one added fact into the organizing
claim unless it materially changes the decision.
- Keep one canonical home for each fact. Use descriptive link text instead of
copying the same explanation into several documents.
When correcting an earlier claim, state the corrected fact first. Then identify
the incorrect claim, explain the source or process failure, name any affected
conclusions, and give the prevention or next validation step. Do not lead with
an apology.
Remove generic agent prose
- Use plain, project-specific language. Do not coin a label for a process that
ordinary words can describe, and do not replace a known component or state
with a generic abstraction.
- Use an established project term when it has one stable documented meaning.
Define a necessary specialist term at first use when the intended reader may
not know it.
- Use
identical text or identical content when comparing prose or data.
Reserve byte-identical for compiler or binary output when equality of every
byte is the claim.
- Remove praise before the answer, forced enthusiasm, promotional framing,
vague attribution, ornamental metaphors, filler, process narration, repeated
conclusions, and unnecessary implementation detail.
- Keep every materially distinct surface the request requires. Shortening must
reduce reading effort, not narrow the requested scope.
- Use a conversational, respectful tone without slang, needless formality, or
personality theatre. Address the reader as
you when instructions need an
actor. Use first person only when it clarifies direct ownership.
Never use an em dash or the standalone words seam, seams, honest,
honestly, substrate, or substrates, case-insensitively. Never:
- Open with
Great question, Absolutely, Certainly, or Of course.
- Use the
not just X, but Y construction.
- Close with
I hope this helps, Let me know if, or Happy to help.
Format for meaning
- Use sentence case for headings unless a required project template specifies
another style.
- Use bold text only for real emphasis, UI labels, or notices.
- Use a table for several exact comparisons, bullets for distinct unordered
items, and numbers for sequences or ranked actions.
- Use headings only when a response has independent sections a reader may scan.
Do not repeat the opening result in a closing summary.
- Use a colon for a list or example, not as a routine mid-sentence connector.
- Use straight quotation marks in agent-authored prose.
- Use code formatting for commands, paths, filenames, identifiers, input, and
literal output.
Revise before sending
Before sending any response, answer these questions and revise when one fails:
- Did I answer or report the outcome first?
- Is every factual claim current, source-backed, and limited to what the
evidence proves?
- Did I preserve the user's argument, settled decisions, and requested scope?
- Can I remove jargon, process narration, repetition, or formatting without
losing a material surface?
- Are validation results, caveats, next actions, and artifact locations exact?
If the applicable length threshold is crossed, revise once more before sending.
When editing this suite's Markdown, run
python3 agent-writing/scripts/check_prose.py from the repository root.
Source guidance: Google developer documentation style
guide and Cursor Unslop
skill.
1---2name: agent-writing3description: Applies the user's ambient writing rules to agent-authored chat, status, review, issue, pull-request, engineering-documentation, and retrospective prose. Use whenever an agent communicates progress, decisions, findings, or outcomes to a person. Do not use it to govern application-generated or branded product output.4license: Unlicense OR MIT5---67# Agent writing89Write for the reader and the artifact. Lead with the answer, outcome, decision,10or required action. Preserve every material fact, caveat, settled decision, and11next action before removing lower-value detail.1213## Keep the boundary clear1415This skill governs an agent's communication with people and the engineering16artifacts the agent drafts for collaboration. It does not govern17application-generated reports, in-product chats, customer messages, marketing18copy, or other product output. When editing product output, follow that19product's own voice contract for the copy and apply this skill only to the20surrounding agent update and handoff.2122Project instructions supply required terminology, evidence sources, templates,23artifact structure, and exact preserved wording. They do not import a product24voice into the agent's conversation. Preserve quoted source, code, commands,25identifiers, literal output, and required external text exactly even when they26do not follow this guide.2728## Match the response to its job2930- A direct answer starts with the answer and adds only necessary qualification31 or evidence.32- A progress update starts with a result, blocker, decision, or correction. Add33 the next action only when it helps the reader.34- A final handoff states the outcome, exact validation, material caveats or35 residual work, and exact artifact locations when artifacts exist.36- A review reply or retrospective impact item states the finding or impact and37 its consequence or resolution.38- A durable artifact follows its project template and preserves the complete39 decision surface, evidence, and lifecycle state. When drafting or40 substantially revising an issue, PR body, engineering document, report,41 retrospective, or another durable multi-paragraph artifact, read42 [references/generated-writing-patterns.md](references/generated-writing-patterns.md).4344Use length thresholds as revision triggers, never as targets to fill. There is45no minimum length.4647- Revise a direct answer over 120 words unless the question requires multiple48 material distinctions or the user requested depth.49- Revise a progress update over 60 words. Keep extra detail only for multiple50 distinct results, an actionable blocker, a corrected earlier claim, or a51 decision the user must make.52- Revise a final handoff over 250 words. Keep extra detail only for multiple53 delivered outcomes, incomplete validation, material caveats, or required54 user decisions.55- Keep each review reply and each retrospective impact item at 300 characters56 or fewer.57- Durable artifacts use their local template or contract instead of a global58 length limit.5960User-requested deep analysis, design interviews, literal evidence, and61prescribed templates may exceed these thresholds. They still require revision62for reader effort.6364## Ground every claim6566- State the current fact, observed behavior, mechanism, number, or next action.67 Replace claims about how something feels with evidence the reader can verify.68- Distinguish observations, source-backed requirements, inferences, and69 recommendations. Never increase certainty while revising. When evidence is70 partial, name the evidence and limit the claim.71- Do not present planned, proposed, partial, or unreleased behavior as shipped.72 Name its actual lifecycle state and owner.73- Preserve commands, paths, identifiers, numbers, timestamps, and observed74 results exactly. State what a timing measures, such as machine execution,75 browser automation, CI, or elapsed delivery.76- When an answer depends on prior decisions, existing mechanisms, or project77 terminology, inspect the available canonical records and relevant chat78 history before drafting. Preserve settled decisions and the user's argument.79 Do not propose a replacement before checking what already exists. If the80 needed history is unavailable, name that evidence gap.81- Incorporate new evidence without turning one added fact into the organizing82 claim unless it materially changes the decision.83- Keep one canonical home for each fact. Use descriptive link text instead of84 copying the same explanation into several documents.8586When correcting an earlier claim, state the corrected fact first. Then identify87the incorrect claim, explain the source or process failure, name any affected88conclusions, and give the prevention or next validation step. Do not lead with89an apology.9091## Remove generic agent prose9293- Use plain, project-specific language. Do not coin a label for a process that94 ordinary words can describe, and do not replace a known component or state95 with a generic abstraction.96- Use an established project term when it has one stable documented meaning.97 Define a necessary specialist term at first use when the intended reader may98 not know it.99- Use `identical text` or `identical content` when comparing prose or data.100 Reserve `byte-identical` for compiler or binary output when equality of every101 byte is the claim.102- Remove praise before the answer, forced enthusiasm, promotional framing,103 vague attribution, ornamental metaphors, filler, process narration, repeated104 conclusions, and unnecessary implementation detail.105- Keep every materially distinct surface the request requires. Shortening must106 reduce reading effort, not narrow the requested scope.107- Use a conversational, respectful tone without slang, needless formality, or108 personality theatre. Address the reader as `you` when instructions need an109 actor. Use first person only when it clarifies direct ownership.110111Never use an em dash or the standalone words `seam`, `seams`, `honest`,112`honestly`, `substrate`, or `substrates`, case-insensitively. Never:113114- Open with `Great question`, `Absolutely`, `Certainly`, or `Of course`.115- Use the `not just X, but Y` construction.116- Close with `I hope this helps`, `Let me know if`, or `Happy to help`.117118## Format for meaning119120- Use sentence case for headings unless a required project template specifies121 another style.122- Use bold text only for real emphasis, UI labels, or notices.123- Use a table for several exact comparisons, bullets for distinct unordered124 items, and numbers for sequences or ranked actions.125- Use headings only when a response has independent sections a reader may scan.126 Do not repeat the opening result in a closing summary.127- Use a colon for a list or example, not as a routine mid-sentence connector.128- Use straight quotation marks in agent-authored prose.129- Use code formatting for commands, paths, filenames, identifiers, input, and130 literal output.131132## Revise before sending133134Before sending any response, answer these questions and revise when one fails:1351361. Did I answer or report the outcome first?1372. Is every factual claim current, source-backed, and limited to what the138 evidence proves?1393. Did I preserve the user's argument, settled decisions, and requested scope?1404. Can I remove jargon, process narration, repetition, or formatting without141 losing a material surface?1425. Are validation results, caveats, next actions, and artifact locations exact?143144If the applicable length threshold is crossed, revise once more before sending.145146When editing this suite's Markdown, run147`python3 agent-writing/scripts/check_prose.py` from the repository root.148149Source guidance: [Google developer documentation style150guide](https://developers.google.com/style) and [Cursor Unslop151skill](https://github.com/cursor/plugins/blob/main/pstack/skills/unslop/SKILL.md).