← ClaudeAtlas

draft-and-picklisted

Drafts several candidates for a decision judged by looking, renders them side by side on one page, hands the operator the addresses, takes the pick through the structured question surface, and loops on the pick until they stop. Use when asked to "draft some options", "show me a few versions", "try a few variations", "mock up alternatives", "give me candidates for X", or when a choice is taste rather than correctness. Do NOT use when the request already names the answer and asks for it to be built, which is `plan-feature`. Do NOT use to read source for roughness, which is `ux-audit`, to measure what a running interface costs to paint, which is `ux-measure`, to write tests for a change already made, which is `ui-test`, or to script a recording, which is `canon-screencast`.
erclx/canon · ★ 2 · Code & Development · score 68
Install: claude install-skill erclx/canon
# Draft and pick Some decisions are settled by looking rather than by reasoning, and no draft is wrong until one is picked. Every step here puts several candidates in front of the operator and keeps the real surface untouched until they have chosen. ## Guards - If the request names one answer and asks for it to be built, stop: `❌ This names one answer, so there is nothing to pick between. Use /canon:plan-feature.` - If the decision has no visible form, stop: `❌ Nothing to look at. Drafting candidates needs a decision a render can show.` - Draft no candidate for a decision the operator has not asked to make. A run offering options everywhere spends their attention rather than saving it. ## Step 1: name the decision and the arms 1. State the decision in one sentence, naming what changes between arms and what stays fixed. 2. Derive a kebab slug from that sentence. Call the folder every file this run writes to `<dest>` below. `<dest>` is `.canon/tmp/<slug>/`, per `.claude/rules/canon/core/055-scratch.md`. Running inside a live `plan-groundwork` track is the one exception: `<dest>` is the track's own `evidence/<slug>/` instead, since a candidate render is evidence the track's decision file cites rather than spike input. 3. Write one arm per candidate, each carrying an id, a label, and what the arm costs. An arm with no stated cost is not an option. 4. Make the current state arm `0`, so the baseline is a candidate rather than an absence. A decision with nothing shipped yet say