1---2name: wireframing-and-prototyping3description: Use when a flow or feature needs sketches, wireframes, wireflows, or a clickable/coded prototype and the fidelity must match the learning question. Do not use to run a multi-round convergence process or produce final visual design; route those to demo-driven process or UI craft.4---56# Wireframing & Prototyping78<!-- dual-compat-start -->9## Use When10- You need to design a screen, flow, or feature and must decide **how rough or finished** the11 artifact should be — a paper sketch, a lo-fi wireframe, a mid-fi greybox, a hi-fi mockup, or a12 clickable/coded prototype.13- You are mapping a multi-screen flow and need a **wireflow** — wireframes wired together by the14 user's decisions and the system's responses (not just a static screen inventory).15- A stakeholder asks to "see it working" and you must decide whether a **clickable prototype**16 earns its cost, and at what fidelity.17- You want to validate structure, hierarchy, or a flow **before** investing in visual design,18 tokens, or front-end code.19- You need to hand a tested concept to high-fidelity design or to dev, with the open questions20 resolved at the cheapest possible fidelity.2122## Do Not Use When23- You are running interviews, surveys, or moderated usability tests, or synthesising research into24 decisions → use `ux-research-and-usability-testing` (this skill produces the **stimulus** you25 test; that skill runs the **test**). The two are designed to pair — see Workflow step 5.26- You are past structure-validation and producing the final visual design, tokens, or27 component specs → use group 09 (`design-tokens-and-naming`, `component-library-architecture`,28 `design-handoff-and-dev-spec`).29- You are designing one component's full state coverage (empty/error/loading) → use30 `empty-error-and-loading-states` (group 04). Wire those states *into* the wireflow here; spec31 them there.32- You are choosing typefaces, palettes, or doing pixel craft — that is premature at wireframe33 fidelity and is its own slop risk (see Anti-Patterns).3435## Required Inputs3637| Input | Source | Evidence |38|---|---|---|39| Learning question and decision | Product/design owner | What the prototype must prove and who decides |40| User flow, content, and critical states | Research/content/product | Tasks, branches, errors, and representative content |41| Time, tools, and fidelity constraints | Delivery team | Deadline, test environment, and simulation boundary |42- The **goal of the artifact**: what decision or risk this wireframe/prototype must resolve43 (structure? flow? feasibility? desirability? a specific interaction?). Fidelity follows from this.44- The **user task(s) and entry points** the flow must cover, ideally from research (personas, top45 tasks, JTBD). Without these you are decorating, not designing.46- The **audience for the artifact**: yourself (think-tool), the team (align), a test participant47 (validate), or a client/exec (sell). Audience sets the minimum viable fidelity.48- Known constraints: platform, key content/data, must-have steps, and any hard system responses49 (errors, async waits) that change the flow.5051## Workflow521. **State the artifact's job, then pick the lowest fidelity that does it.** Name the one decision53 the artifact must resolve and choose the *cheapest* rung of the fidelity ladder that resolves it.54 Higher fidelity is not better — it is slower to make, harder to change, and biases reviewers55 toward polish over structure. See `references/fidelity-ladder.md` for what each rung is for and56 when it is the right one.572. **Wireframe the screens at that fidelity.** Lay out content blocks, hierarchy, and controls — not58 colour, not final copy, not real type. Use real-ish content (counts, labels, lengths) so the59 layout is honest; use greyboxing and placeholder rectangles for media. Respect the doctrine's60 **anti-slop** rule even here: a wireframe still makes *deliberate* layout choices (grid, reading61 order, primary action) rather than reflexively dropping evenly-spaced cards62 (`doctrine/design-doctrine.md` §2).633. **Wire the screens into a wireflow.** Connect each screen to the next via the user's **decision**64 and the system's **response**. Branch on the real forks: success vs error, empty vs populated,65 first-run vs return, happy path vs recovery. A flow that only shows the happy path hides exactly66 the risk you are prototyping. See `examples/wireflow-example.md`.674. **Add interactivity only where it buys validation.** Make it clickable only if the *transitions*68 or *timing* are part of what you must test (can users find the path? does the wait feel broken?).69 A click-through of lo-fi screens tests navigation; a hi-fi coded prototype tests feasibility and70 feel. Do not raise fidelity to add clicks you do not need — see the fidelity-vs-interactivity71 matrix in `references/fidelity-ladder.md`.725. **Pair with research to test it.** The wireframe/prototype is the *stimulus*; route to73 `ux-research-and-usability-testing` to run the protocol (tasks, think-aloud, success criteria),74 then fold findings back as edits at the **same low fidelity** before climbing. Iterating cheap is75 the whole point — every loop you spend at lo-fi is a loop you did not spend redoing pixels.766. **Promote, don't restart, when validated.** When structure and flow are settled, hand off to77 high-fidelity design (group 09 handoff/tokens/components) with the resolved questions annotated78 on the wireflow, so hi-fi work starts from answers, not from a blank canvas.7980## Decision Rules8182| Condition | Choice | Wrong-choice failure |83|---|---|---|84| Testing concept/order | Sketch or lo-fi wireflow | High polish biases feedback toward visuals |85| Testing interaction timing or state | Clickable/coded prototype | Static screens cannot expose behavioural failure |86| Testing visual trust or brand response | High-fidelity representative content | Grey boxes cannot answer perception questions |8788## Capability Contract8990- Must inspect requirements and preserve a clear simulation boundary; review is read-only unless artefact creation is requested.91- May create disposable prototypes, but may not present fake data/integrations as real, test with participants, or publish without authority.9293## Degraded Mode9495- If no learning question exists, stop prototyping and define it before choosing fidelity.96- Without interactive tools, use an annotated storyboard and mark interaction claims untested. Recover a misleading prototype by exposing simulated areas, narrowing scope, and rebuilding only the fidelity needed.9798## Quality Standards99100- Fidelity is no higher than necessary, all critical branches/states needed by the question exist, and realistic content replaces lorem ipsum where meaning matters.101- Evidence records question, fidelity rationale, simulated areas, test result, and next decision.102103## Anti-Patterns104- **Starting in hi-fi.** Opening Figma in full colour with real type for an unvalidated flow. It105 costs 5× to change, and reviewers critique the gradient instead of the journey.106- **Fidelity theatre.** Making it *look* finished to impress, when the artifact's job was to resolve107 structure. Polish on an unvalidated flow is wasted polish — and reads as the AI "looks-done"108 default the doctrine exists to defeat (`doctrine/design-doctrine.md` §0).109- **Happy-path-only wireflows.** No error, empty, loading, or recovery branch — so the prototype110 validates nothing that was actually risky.111- **Lorem everywhere.** Fake even-length text hides real overflow, truncation, and hierarchy112 problems. Use representative content lengths.113- **Premature pixel craft.** Choosing fonts, palettes, shadows, or exact spacing at wireframe stage.114 Those are downstream decisions; deciding them here both wastes effort and locks in choices before115 the structure that should drive them exists.116- **Clickable for its own sake.** Spending days wiring micro-interactions when a paper sketch would117 have answered the question.118- **Never lowering fidelity to iterate.** Treating each test round as a reason to add polish instead119 of going *back down* to change structure cheaply.120121## Outputs122123| Output | Consumer | Evidence and acceptance |124|---|---|---|125| Prototype brief and artefact | Product, design, research | Learning question, fidelity, flow, states, and simulation boundary are explicit |126| Prototype evidence record | Decision owner | Test observations, limitations, decision, and next iteration are captured |127- A fidelity decision: the chosen rung + the one sentence justifying it against the artifact's job.128- Wireframes at that fidelity (content blocks, hierarchy, primary action — greyboxed media).129- A **wireflow**: screens connected by user decisions and system responses, with the real branches130 (success/error/empty/first-run/recovery) shown.131- Optionally a clickable prototype, only where transitions/timing are part of what's being tested.132- A handoff packet: the validated wireflow + resolved/open questions, ready for group-09 hi-fi.133134## Examples135- See `examples/wireflow-example.md` — a worked, branch-complete wireflow for a real feature136 ("save a search and get notified"), with the fidelity choice stated and justified, the screen137 inventory, the decision/response wiring, the error/empty/loading branches, and the138 pair-with-research test plan. Not lorem — representative content throughout.139140## References141- `references/fidelity-ladder.md` — the five rungs (paper sketch → lo-fi → mid-fi greybox →142 hi-fi mockup → clickable/coded prototype): what each is *for*, when it is the right rung, what it143 cannot tell you, and the fidelity-vs-interactivity matrix.144- `doctrine/design-doctrine.md` — §0 (the "looks human-made" moat / no "looks-done" theatre) and145 §2 (the Anti-Slop Charter — deliberate layout choices apply even at wireframe stage).146- Pairs with `ux-research-and-usability-testing` (this group) — wireframe is the stimulus; that147 skill runs the test.148- For UI/web work that follows hi-fi promotion: `doctrine/references/wcag-2.2-criteria.md` and149 `doctrine/references/web-performance-budgets-2026.md` (validate target sizes, focus order, and150 perceived-performance waits that your wireflow's loading branches imply).151<!-- dual-compat-end -->