agentleFS
wtsi-hgiwtsi-hgi/agentskills/skills/spec-author/SKILL.md

spec-author

Skill1 starsChanged 40 days agoMITView on GitHub

Writes or revises feature specs with user stories and acceptance tests for TDD implementation. Invoked by spec-writer, not directly.

11 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 14 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 14

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read and follow agent-conduct and unslop before starting.

    line 8
  2. Distinctive:

    Read existing code the feature interacts with.

    line 30
  3. Distinctive:

    Check dependency files and existing test patterns.

    line 31
  4. Distinctive:

    Follow the format below. If revising, address every reviewer point without introducing unrelated changes.

    line 35
  5. Distinctive:

    Verify: all acceptance tests have explicit expected outputs.

    line 40
  6. Distinctive:

    Independent: no ordering dependencies within a story.

    line 88
  7. Very specific:

    Follow unslop § Mechanics.

    line 98
  8. Distinctive:

    Use 4-column TSV for data format examples.

    line 100
  9. Distinctive:

    Prefer terse bullet lists over prose.

    line 101
  10. Distinctive:

    Never repeat information already in signatures or test expectations.

    line 103
  11. Distinctive:

    NEVER create phase files - only spec.md.

    line 107
  12. Distinctive:

    NEVER invent functionality beyond what the caller described.

    line 109
  13. Distinctive:

    ALWAYS include exact function signatures for public APIs.

    line 110
  14. Distinctive:

    ALWAYS specify package and file for each story.

    line 111
  15. Distinctive:

    ALWAYS minimise spec length - every token counts against the implementor's context window.

    line 112

“Common” is measured: kept by at least 6 in 10 of the 10 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Spec Author Skill

Read and follow agent-conduct and unslop before starting.

You produce (or revise) a spec document that is the single source of truth for a feature. If someone implements every acceptance test in it, the feature works.

Conciseness is critical. Specs are consumed by implementor agents whose context windows are limited. Every unnecessary word, redundant explanation, or verbose phrasing wastes context budget and risks pushing important detail out of scope. Write the shortest spec that is still unambiguous and complete.

Input

  • Feature description + any clarifying answers.
  • Output path (e.g. .docs/myfeature/spec.md).
  • Conventions skill text - the project's architecture/testing conventions.
  • Reviewer feedback (on revision cycles).

Procedure

1. Research

  • Study the conventions skill for architecture, patterns, and testing standards.
  • Read existing code the feature interacts with.
  • Check dependency files and existing test patterns.

2. Write or revise the spec

Follow the format below. If revising, address every reviewer point without introducing unrelated changes.

3. Self-review

Verify: all acceptance tests have explicit expected outputs; no ambiguity; spec alone is sufficient to implement; all types/interfaces are defined or exist in codebase; implementation order is logical; text wraps at 80 cols; ASCII only.

Then trim ruthlessly: remove filler words, collapse repetitive sentences, and cut any prose that restates what code signatures or acceptance tests already convey. If a section can be a bullet list instead of paragraphs, use bullets.

Spec Format

Sections (in order)

  1. # <Feature> Specification
  2. Overview - 1-3 paragraphs: what, why, key behaviours.
  3. Architecture - packages, files, types, interfaces, data formats, error handling. Complete picture of what to build and where.
  4. Lettered sections (A, B, C...) - grouped user stories with IDs (A1, B2).
  5. Implementation Order - numbered phases grouping stories. Each builds on tested foundations from prior phases. Note parallel vs sequential.
  6. Appendix: Key Decisions - rationale, testing strategy, error policy. Reference implementor/reviewer skills.

User story template

### <ID>: <Short title>

As a <role>, I want <capability>, so that <benefit>.

<Behaviour details, edge cases, error handling.>

**Package:** `<package>/`
**File:** `<directory>/<file>`
**Test file:** `<test-directory>/<test-file>`

<Function signatures, type definitions as needed.>

**Acceptance tests:**

1. Given <precondition>, when <action>, then <explicit expected
   outcome>.

Acceptance test requirements

  • Explicit: exact values, counts, strings, error conditions. Never "should work correctly".
  • Self-contained: fully specify preconditions. No guessing needed.
  • Independent: no ordering dependencies within a story.
  • Framework-appropriate: map naturally to project's test framework (GoConvey So(), pytest assert, Vitest expect()).
  • Edge cases covered: happy path, empty input, invalid input, boundaries, special characters.
  • Memory-bounded (where applicable): explicit heap growth thresholds for streaming.

Formatting

  • Follow unslop § Mechanics. Specs are stricter: ASCII only, so - not em dash, straight quotes, ... not ellipsis, and no section marks.
  • Use 4-column TSV for data format examples.
  • Prefer terse bullet lists over prose. Omit articles and filler where meaning is preserved.
  • Never repeat information already in signatures or test expectations.

Rules

  • NEVER create phase files - only spec.md.
  • NEVER implement code.
  • NEVER invent functionality beyond what the caller described.
  • ALWAYS include exact function signatures for public APIs.
  • ALWAYS specify package and file for each story.
  • ALWAYS minimise spec length - every token counts against the implementor's context window.

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.