agentleFS
avelikiyavelikiy/great_cto/skills/prose-style/SKILL.md

prose-style

Skill112 starsChanged 2 months agoMITView on GitHub

Reusable writing-style contract for agent outputs (reports, ARCH docs, verdicts, threat models). Forces direct prose with concrete evidence, no marketing voice, no hedge words. The single most-referenced skill across the pipeline — used by 28 agents.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    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:

    If a sentence can be deleted without losing information, delete it.

    line 69
  2. Distinctive:

    Every terminal report ends with one of:

    line 73
  3. Distinctive:

    Before writing the verdict line, search your draft for:

    line 130
  4. Distinctive:

    If a hit is in a non-quoted sentence, rewrite it to be concrete or delete it.

    line 136

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

Prose style — writing contract for agent reports

great_cto reports are read by busy CTOs at 3pm on a Tuesday. They scan for facts, decisions, and what needs their attention. Marketing voice and hedge words waste their time.

Five rules

1. Lead with the conclusion

Bad:

After reviewing the architecture document and considering various trade-offs, including but not limited to scalability, security, and maintainability, we believe that the proposed approach is generally acceptable but has some areas that could potentially be improved.

Good:

Approved with 2 changes required: (a) move PII encryption to KMS, (b) add idempotency key on webhook handler. Details below.

2. Concrete evidence, not adjectives

Bad: "Performance is acceptable." Good: "p99 latency 142ms over 50K requests (k6 run 2026-05-12 14:00 UTC, tests/load/<your-scenario>.js). SLO is 200ms."

Bad: "Security looks good." Good: "No findings at Critical or High. 2 Medium: hardcoded log level in src/logger.ts:14, missing CORS header in src/middleware/cors.ts:8."

3. No hedge words

Banned: generally, somewhat, fairly, mostly, kind of, sort of, more or less, in some cases, often, sometimes, occasionally, possibly, perhaps, maybe, could potentially, might want to consider.

Replace with specifics or omit. If you genuinely don't know, say "uncertain because <reason>" — that's information.

4. No filler openings

Banned:

  • "In this document, we will discuss..."
  • "It's important to note that..."
  • "First and foremost..."
  • "At the end of the day..."
  • "It goes without saying..."

If a sentence can be deleted without losing information, delete it.

5. Verdict line on the last line

Every terminal report ends with one of:

VERDICT: APPROVED — <one-line summary>
VERDICT: DONE — <one-line summary>
VERDICT: BLOCKED reason="<specific blocker>"
VERDICT: FAIL reason="<specific failure>"

This is parsed by the board's readVerdicts() function. Format is machine-readable — no flourishes.

Templates

Reviewer report

# REVIEW-<feature> — <reviewer name>

Reviewed: <commit-sha or file paths>
Standard: <regulation / framework you applied>

## Findings
- [Critical|High|Med|Low] <one-sentence finding>
  - location: <path:line>
  - rationale: <why this matters in this domain>
  - remediation: <specific fix>

## Verdict
VERDICT: APPROVED|BLOCKED reason="<short>"

Architecture / ADR

# ARCH-<feature> | ADR-<NNN>

Date: <ISO>
Status: proposed | accepted | superseded

## Context
2-4 sentences. What problem, what constraint.

## Decision
Imperative single sentence: "Use X for Y."

## Consequences
- Positive: <bullets>
- Negative: <bullets>
- Reversible? yes/no — if no, document migration cost

## Alternatives considered
<bullets with one-line dismissal reason each>

Anti-patterns to grep for

Before writing the verdict line, search your draft for:

\b(generally|somewhat|fairly|mostly|kind of|sort of|possibly|perhaps|maybe)\b

If a hit is in a non-quoted sentence, rewrite it to be concrete or delete it.

Why this matters

The board's readVerdicts() parses every report. Marketing voice breaks the parser. Hedge-word reports waste the reader's time. Specifics let the CTO trust the agent's judgment.

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.