--- name: design description: Design pass for any new mechanism, tool, check, document section, or formal target — run BEFORE implementing. Use whenever the user proposes building or changing something ("let's add X", "can we do Y", "should we…", "what about…"), picks up a recorded open question or decision, or asks for a feature. license: Apache-2.0 compatibility: No tooling; read before building or changing anything. metadata: version: "0.1.0" --- # Design before implementation These are one project's working rules; a project adopts them by installing this skill and keeps what fits. Design first — but ground in what the project already knows before asking the user anything. Mature projects record their decisions; the job is usually to verify and complete a recorded decision, not to run an interview. ## 1. Ground first (before any questions) - Read the project's own records: the project instructions (CLAUDE.md) usually name where decisions, option spaces, scheduled work, parked ideas, and discard logs live. If an option space with a recommendation is already recorded, verify it against the CURRENT tree and proceed from it — re-interviewing a recorded decision wastes the user's time. - Check the discard log if one exists: a parked idea needs its parking reason addressed — refuted, or superseded with a stated reason — not a fresh pitch. - Read the relevant code/prose itself; greps beat guesses. - If the ask bundles several independent designs, split it and take them one at a time. ## 2. Classify the deliverable — it decides the route Name what kind of thing is being designed (content with claims, a formal target, tooling, process) and where its design record will LIVE — the project's own taxonomy, as its instructions define it. Never invent a parallel records directory: a second taxonomy rots outside whatever coverage the project's checks provide. Where the project runs a typed record flow, a design round is a task of the design kind — drawn before the round, closed by its make or abort with the round record as its resolution and the discarded options one line each inside it — and what the round produced (findings with evidence, tasks, questions, ideas) is minted by that closing transition. ## 3. The design bar Apply to the design itself, not just the later implementation: - Scrutinize the load-bearing and the elegant claims hardest — elegance is where wishful thinking hides. - Label every claim's status (established / conditional / open) and NAME the conditions rather than burying them. - Anything claiming novelty gets an adversarial prior-art pass: try to FIND it existing before claiming it. - If the project runs consistency checks (figures, names, citations, style), design within them, not around them. - Any NEW check must make its own coverage visible — a green result that does not show what it is not looking at will eventually vouch for something it never examined. - If the project carries a method skill, its rules bind the design: evidence fixed before the result, a counting or closed-form claim checked in the same round, a row or remark written from the landed artifact rather than from this design record. - A design that changes a recorded target — its statement, definition, object or currency — records the statement before and after and why, and never presents the result as settling the original; the freedom to change is of route, and the project's honest-change invariants, if it has them, say how. ## 4. Options, not interviews Propose two or three approaches with trade-offs and ONE recommendation, as a compact lettered option space. If a genuinely user-owned fork remains (taste, scope, external commitments), write it as a crisp decision entry the user can answer asynchronously — do not serialize a question dialogue, and do not block reversible work on it. ## 5. Self-review, record, then build Before presenting: placeholders or TBDs? contradictions between sections? a requirement readable two ways? scope creep past one deliverable? Fix inline. Record the decided design where step 2 said it lives; discarded options keep one-line reasons. Then implement — the project's verification gates are the completion gate, and any new check gets perturbation-tested: prove it fails on a planted defect before trusting its green.