← All needs

prototype: a UI prototype's settled details never reach the implementers

### Before filing - [x] I've read `SCOPE.md` and checked `.out-of-scope/`, and this isn't covered by either. ### Skill `prototype`, and the lines in `to-spec`, `to-tickets` and `implement-spec` that carry its output ### What went wrong *Setup: Claude Code, Opus 5.5 at high/xhigh (some implementers GPT-6.1 Sol via Codex); the copy of the skills was lightly customized (but the lines quoted here match this repo's `main`).* Four rounds of `prototype` (UI branch) as a `wayfinder` ticket, every verdict recorded verbatim, then `to-spec` → `to-tickets` → `implement-spec`: 27 tickets, all tests and reviews green. The result looked nothing like the approved prototype, with 16 problems at first glance, for example: - A press opened the wrong thing, though the user had picked the behavior in a round's answer. - A panel lacked most of its fields and pickers. Glyphs, sizes and colors fell back to defaults. - A "close button too small" verdict was dropped. Why, from the logs: 1. **Capture.** The user approves a UI prototype by using it, so what it settles are decisions: what each control does, what each panel holds, the looks to some extent. Rule 6 writes down only "the verdict and the question it settled", so those decisions stayed only in code that every later step rightly treated as throwaway. One answer, quoted without its question, was later interpreted incorrectly. 2. **Carry-over.** `to-spec` and `to-tickets` admit prototype material only as logic snippets ("state machine, reducer, schema, type shape"), which arrived with the prototype skill in ff3ee1d. A UI decision has no exact form to travel in, so it reaches the tickets as loose prose or not at all. 3. **Nobody looked.** Nothing in `implement-spec`, `tdd` or `code-review` looks at the built page and compares with the design notes, let alone runs the prototype, so nothing caught the gap. Related: #337, closed asking for a real run where a decision got lost. This is one. ### Proposed change The changes we made in our copy, not yet tried on a new run: - **`prototype` rule 6:** - Quote each verdict with its question. - List what else the prototype settled (for a UI: what each control does, what each panel holds and how it scrolls, glyphs, colors, sizes, placement), and ask the user which items to keep. - Write each kept item in prose or exactly: a component, glyph or CSS variable by name, a copied value or SVG path, or a pointer into the prototype. - **`to-spec`, `to-tickets`:** - Widen the snippet exception to those items; in tickets they are acceptance criteria. - Name the prototype as one to consult for anything not captured. - **`implement-spec`:** implementers look at each page they change in a browser, beside the prototype where their ticket points into it, and the orchestrator looks at the pages before calling the branch done. Happy to send a PR.