The user invokes one entry skill and describes the interface they need. The harness gathers the missing context, confirms one concise brief, then coordinates design, implementation, independent review, and deterministic verification. The user does not need to remember the underlying skill names or their order.
| Phase | Purpose | May edit UI code? | Exit condition |
|---|---|---|---|
preflight |
Inspect project, host, tools, and resumable state | No | Capabilities and blockers are known |
discovery |
Ask adaptive product and visual questions | No | Required answers or explicit delegation exist |
confirmation |
Show one compact understanding card | No | User approves it |
context |
Write approved intent files | No | Context validator passes |
direction |
Compare references or 2–3 proposed directions | No | User chooses a direction |
build |
Let Impeccable own design and implementation | Yes | Target surfaces render |
internal-review |
Run Impeccable critique/audit/polish as applicable | Yes | Internal blockers are resolved |
human-feedback |
Optionally collect user annotations through dev-only Agentation | No | Feedback is captured or the user explicitly skips the round |
feedback-fixes |
Resolve user-approved annotation findings | Yes | Accepted feedback is resolved |
independent-review |
Run Jakub better-interface full read-only |
No | Findings and verdict exist |
fixes |
Adjudicate and fix accepted findings | Yes | Accepted findings are resolved |
qa |
Run detector, screenshots, axe, and Lighthouse | Only targeted fixes | Required gates pass or gaps are explicit |
handoff |
Report evidence, gaps, and readiness | No | User receives a complete handoff |
complete |
Mark the resumable workflow complete | No | Final state is persisted |
An interrupted run reads .design-harness/state.json and resumes at the first
incomplete phase. State stores phase metadata, not chat transcripts or credentials.
The status command never writes. Legacy state is upgraded only by init or the
explicit migrate command. The two optional feedback phases persist one of the
allowed outcomes (used/not-used and applied/not-applicable) so a skipped
human review cannot be presented as completed feedback.
The following files may contain only user answers or agent proposals the user explicitly approved:
PRODUCT.mdREFERENCES.mdDESIGN.mdACCEPTANCE.md.impeccable/surfaces/<surface>.md
The harness must not silently fill an unknown with a plausible default. The user
may explicitly say “choose for me”; the chosen proposal is then recorded as an
approved agent proposal. Later changes to PRODUCT.md or DESIGN.md require a
visible diff and approval.
REFERENCES.md must also contain ## Approved external sources with either the
exact approved source/item/version/license decision or None approved. General
permission to use packages is only a boundary; each selected carrier, primitive,
recipe, effect, or feedback integration requires its own proposal and approval.
Generated logs, reports, and screenshots belong under .design-harness/reports/
and must not be presented as user-authored intent.
Precedence:
PRODUCT.mdDESIGN.mdand its tokens- the established component library
- reviewer heuristics
Impeccable is the only broad design authority during production. Other broad taste or design-system skills must not run in the same production pass. Optional method carriers are selected narrowly:
- shadcn only for a matching product-UI stack;
- GSAP only for justified advanced motion and after acknowledging its license;
- Storybook only for a component system;
- image generation only when the approved direction needs original assets.
The v0.2 catalog adds four strictly bounded routes:
- Human feedback: Agentation may run after the first build and Impeccable's internal review. It is dev-only, uses manual/local annotations by default, and must be absent from the production bundle. Agentation MCP is a separate explicit opt-in after the user approves its process and storage scope; it is never an implicit transport or persistence layer.
- Product motion: transitions.dev may review or normalize ordinary interface
transitions. Run its read-only
review,refine, orpolishpath first;apply, Refine code writes, Pro access, or copied recipes require confirmation. GSAP remains the route for justified complex choreography, not routine UI motion. - Contextual AI/UI: Border Beam is limited to a real state or one priority CTA. Thinking Orbs is limited to genuine AI work states and must have visible status text, assistive semantics, and a static reduced-motion fallback. AICSS is a component catalog only for an approved agent/chat surface. Beautiful UI is a reference catalog only unless an explicit code license is established.
- Effects and inspiration lab: Originkit, Canvas UI, and Metal FX may be consulted for one approved signature effect. Preserve semantic HTML, provide a no-WebGL/static fallback, and validate reduced motion, browser support, mobile GPU cost, and production bundle impact.
Nothing in these routes is installed merely because it is available. Before any
external code or asset is fetched, copied, or installed, record the approved need,
exact source and version, license/access conditions, required fallback, and user
confirmation. If the official source does not publish clear reuse terms, treat it
as inspiration only. See THIRD_PARTY.md for the current license boundaries.
Jakub's better-interface is an independent reviewer, not a second art director.
It reviews read-only in a fresh context, returns evidence and a verdict, and never
edits. The builder fixes only findings accepted against the authority order above,
then requests a quick re-review.
The final handoff distinguishes three outcomes:
Pass: executed and met the defined gate;Fail: executed and did not meet the gate;Not reviewed: unavailable or missing project-specific setup.
Not reviewed never becomes a silent pass. In v0.2, generic browser checks can
cover configured routes, responsive viewports, reduced motion, and automated axe
rules. Loading, empty, error, and long-copy states require reproducible project
fixtures or routes; the harness must create those deliberately or mark them not
reviewed. Screenshot baselines are never auto-accepted after a mismatch.
When an optional route is used, verification also covers its specific contract:
Agentation is absent from production; motion does not carry the only meaning and
has a reduced-motion path; AI states expose visible and assistive status; WebGL
effects retain a usable non-WebGL fallback; and keyboard focus, contrast, target
browsers, and low-end mobile performance are checked or explicitly marked
Not reviewed.