poolproof
← Docs

FOR SPEC AUTHORS

Writing a great spec

A spec is not a wish. It is a contract card plus acceptance criteria that become an executable test suite. The clearer your criteria, the faster a builder can go green — and the sooner you earn your 3% cut.

The two parts of a spec

  • Contract card— plain language: what a backer gets, and what they explicitly don't. Disputes are judged against this card, so be specific about exclusions (“no UI, library only”).
  • Acceptance criteria — 3+ testable statements, one per line. Curation turns each into an executable test, plus hidden holdout tests that catch overfitting.

What makes a criterion testable

A good criterion names an input, an observable output, and leaves no room for “it depends.” Compare:

  • handles dates well— untestable. What input? What's “well”?
  • parseDuration('P2W') returns { weeks: 2 } — one input, one exact output.
  • returns null for anything not a valid ISO 8601 duration — a clear rejection rule.

Worked example

A spec for a Korean-aware slugify. Criteria (what you write):

romanizes plain Korean (안녕하세요 → annyeonghaseyo)
mixed Korean + English (안녕 world → annyeong-world)
does not silently drop Korean the way slugify@latest does
lowercases, trims, collapses punctuation to single dashes

Curation turns each line into a real test the runner executes:

{
  name: "romanizes plain Korean",
  run: (mod) => assert.equal(
    mod.slugify("안녕하세요"), "annyeonghaseyo"
  ),
}

You can see the full executable suite on any project page under Executable Suite — the tests are public and downloadable, so builders (and you) know exactly what green means. Hidden holdouts are never shown.

Getting to green faster

  • Keep the scope tight. One module, one job. Big specs stall.
  • State exclusions loudly in the contract card — every “don't get” is a test a builder doesn't have to pass.
  • Base it on a real, long-open request (link the GitHub issue). Concrete demand fills pools.
  • Set an honest credit goal. Under 500 runs as a single-builder commission; larger pools open to staked builders.

What you earn

When a build goes green, the escrow releases 74% to the builder, 15% to a maintenance annuity, 3% to you, the spec author, and 8% to the platform. If nothing goes green by the deadline, every backer is refunded in full and no one is charged.