# Thread Commons — prototype acceptance card

Status: NOT BUILT; all instrument tests NOT RUN. This is a proposed build contract, not a completion receipt.

**Current result: not run; prototype not built.** This card defines evidence for a later Thread Commons build. Passing this note's publishing checks does not pass these instrument checks.

- **Scope:** one attracting stroke, cooperation, new variation/history, and PNG. Defer repulsion, SVG, cloud saves, accounts, AI services, and video.
- **Causality:** with one fixed test stroke and seed, increasing attraction should reduce median path distance to that stroke in the bounded fixture. Inspect the image too: a collapsed bundle is not a creative success.
- **Replay:** the same complete recipe and renderer version must reproduce identical path coordinates. Returning through history must restore the previous recipe and coordinate hash.
- **Separation:** changing only the palette must leave coordinates unchanged. A geometry change must invalidate geometry rather than reuse stale paths.
- **Export:** download a real PNG, reopen it, and assert the explicitly requested width and height. Compare the export with the selected state; a valid file alone is not visual fidelity.
- **Access:** complete point placement, correction, cooperation adjustment, history return, and export with keyboard only. Test visible focus and the still reduced-motion state. If animation exists, verify pause stops frame progression.
- **Bounds:** exercise empty, tiny, and maximum-length strokes, maximum population, and rapid control changes. Record the machine and measured feedback time; do not report a universal latency from one run.
- **Human judgment:** ask a first-time visitor to make and recover a pair of variations, explain the changed control, and identify individual strands. Record confusion and failed recovery as findings, not user error.

The first slice earns expansion when a person can make a deliberate change, recognize it, and return without anxiety. Until then, another control is more likely to obscure the question than answer it.
