agentleFS
Chris-CarruthersChris-Carruthers/canon/skills/house-voice/SKILL.md

house-voice

Skill4 starsChanged 3 months agoMITView on GitHub

This skill should be used before writing or revising any vault document — a product spec, one-pager, PR-FAQ, six-pager or Shape Up pitch, decision note or RFC, handoff, runbook, postmortem, architecture overview, design system or component note, design critique, research findings, content style guide, project or client note, session note, or a strategy memo or vision document. Also use it when the user asks how a document should read, asks for a rewrite, says a draft "reads wrong", or asks which writer to imitate. Maps each document type to a named exemplar with a real corpus, the moves to imitate, and the anti-model to avoid.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. mattbutlerengineering/skills★ 1same name

    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 repository5 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every document type has a register that works and several that fail.

    line 9
  2. Distinctive:

    If a rewrite changed the rhythm and not the content, it failed.

    line 55
  3. Distinctive:

    Do not guess between two types.

    line 72
  4. Distinctive:

    The problem is longer than the solution: If the reader is not convinced the problem is real and precisely shaped, the solution is …

    line 123
  5. Distinctive:

    Cut the throat-clearing: Delete the first paragraph and check whether anything was lost.

    line 147
  6. Distinctive:

    Do not override to remove the anti-model.

    line 169

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

House Voice

Every document type has a register that works and several that fail. This says which, per type, by pointing at somebody who already writes it well.

Why this exists

The templates in Templates/ specify what sections a document has. Nothing specifies how it should read. So the structure is enforced and the prose is improvised, and improvised prose defaults to whatever register the writer last saw:

  • A Decision note becomes meeting minutes — who attended, what was discussed, no statement of what was chosen or what it cost.
  • A Handoff becomes a status report — the unmerged branch marked "in progress", which is an adjective standing where a fact should be.
  • A Design System note becomes reverent adjectives about craft, with no rule anybody can apply.

Each of those documents passes its template check. Each is useless to the next person.

The selection criterion

A retrievable corpus of that exact document type. Not fame.

This is the whole trick, and it is why the reference files name some people you would not expect and refuse some you would.

An agent cannot imitate a sensibility it has never read. It can imitate a corpus. Ask for "write it like Jony Ive" and you get reverent adjectives about materials, because Ive spoke in product films and left almost nothing written — there is no corpus behind the name, so the model fills the gap with the idea of him. Ask for "write it like a GOV.UK Design System component page" and you get when to use this / when not to use this / how it works / research on this component, because ten thousand pages of exactly that exist and the model has read them.

Fame tells you whose taste was influential. It does not tell you whose prose is imitable. Those are different questions and only the second one helps here.

The failure mode to avoid

Costume. Copying a writer's mannerisms instead of their moves.

Mannerisms are the em-dashes, the short punchy fragment, the rhetorical question. They transfer instantly and buy nothing. Moves are structural: the problem section is longer than the solution section; the counterargument is stated at its strongest before it is rejected. They are what make the document work, and they survive being copied because they are about what the document contains, not how it sounds.

If a rewrite changed the rhythm and not the content, it failed. Check that first.

The second failure is genre collision — applying one type's register to another. A vision document that reads like a spec commits to numbers it cannot defend. A spec that reads like a vision document has a stirring opening and nothing falsifiable under it. The reference files are split by genre for this reason; picking the right file matters more than executing it well.

Procedure

1. Identify the document type

From the template being used, the target folder, or the ask. If it is genuinely ambiguous — someone wants "a doc about X" — read Reference/Writing/Choosing a Document.md in the vault, which is the escalation ladder: which document at which stage, and the cheapest one that still works.

Do not guess between two types. The register differs more between genres than within one, so a wrong pick costs more than a mediocre execution.

2. Check for a local override, then read the reference file

Reference/Writing/House Voice.md in the vault is the team's own map, and it wins. The files here are canon's defaults; a team that has named its own exemplars has done the more valuable thing and their choice governs.

Otherwise, open the matching file:

DocumentReference
Product Specreferences/product-spec.md
Decisionreferences/decision.md
Handoffreferences/handoff.md
Design Systemreferences/design-system.md
Design Componentreferences/design-component.md
Projectreferences/project.md
Clientreferences/client.md
Session Logreferences/session-log.md
Test Canonreferences/test-canon.md
Cognitive Coveragereferences/cognitive-coverage.md
Vision, strategy memoreferences/strategy-narrative.md

Optional template packs (canon-pack add <pack>) bring more document types. Their reference files ship here whether or not the pack is installed — a skill costs nothing until it loads, and a template arriving without its voice is the worse failure:

DocumentPackReference
One-pagerproduct-ladderreferences/one-pager.md
PR-FAQproduct-ladderreferences/pr-faq.md
Six-pagerproduct-ladderreferences/six-pager.md
Shape Up Pitchproduct-ladderreferences/shape-up-pitch.md
RFC / Design Proposalengineeringreferences/rfc.md
Architecture Overviewengineeringreferences/architecture-overview.md
Runbookengineeringreferences/runbook.md
Postmortemengineeringreferences/postmortem.md
Research Findingsresearch-craftreferences/research-findings.md
Design Critiqueresearch-craftreferences/design-critique.md
Content & UX Copy Guideresearch-craftreferences/content-style-guide.md

Each file is the same six parts: who to write like · why them · who not to write like and what goes wrong · the moves · what to go read · the pre-save check.

3. Apply the moves that hold everywhere

These are true for every document type in the vault. The reference file adds four to six more that are specific to its genre.

The problem is longer than the solution. If the reader is not convinced the problem is real and precisely shaped, the solution is unreadable — they spend it arguing with the premise. Most weak documents invert this ratio and fail for exactly that reason.

State the counterargument at its strongest. Then reject it for a specific reason. A strawman tells the reader you have not thought about it; a fair statement followed by a concrete rejection is the single largest credibility move available in a technical document.

Mark belief separately from knowledge. "We measured 1.9s at p95" and "I think this is latency-bound" are different claims and must look different on the page. Blurring them is how a guess becomes a requirement three documents downstream.

Follow every abstract claim with a concrete instance. Rule, then example, in that order, adjacent. A principle with no instance is unfalsifiable and gets ignored.

Numbers, not adjectives. "Slow" is a feeling. "1.9s p95 against a 900ms target" is a fact somebody can act on, disagree with, or measure again next month.

State absence in words. "Not measured", "not designed", "nobody owns this" — never a blank cell or a TODO. A blank is indistinguishable from an oversight; a stated absence is a finding somebody can pick up. This is the same rule the design canon applies to resolution rungs, for the same reason.

Cut the throat-clearing. Delete the first paragraph and check whether anything was lost. Usually it was context the reader already has, or an announcement of what the document is about, which the title did.

4. Run the pre-save check

Each reference file ends with five yes/no questions specific to its type. Answer them literally, on the draft, before saving. A "no" is a rewrite, not a caveat to mention in the summary.

When to override, and how

Canon's defaults are opinionated so a new vault is not blank. They are not a house style you inherited and cannot change.

A team should override when it has a better exemplar for its own domain — a regulator's published guidance, a predecessor's document everybody already imitates, a customer whose format you must match. Record it in Reference/Writing/House Voice.md, with the same three fields the shipped files use: who, why them, and what goes wrong without them. An override with no stated reason decays into a preference nobody can argue with.

Do not override to remove the anti-model. The anti-model is doing more work than the exemplar — it names the specific failure the writer is otherwise about to commit.

Notes

Cite, do not paste. The reference files link to the real documents rather than reproducing them. Go read the source when the summary is not enough; a paraphrase of a paraphrase is how a distinctive corpus becomes generic advice.

This does not make a document good. It makes it the right kind of document. A well-voiced spec with no evidence in it is still a bad spec — voice is the last layer, applied to something that already has content.

Do not announce it. A document that mentions which writer it is imitating has failed at imitating them. None of them did that.

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.