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.