ui-interview
Interview page by page to define a complete UI specification, including layout, hierarchy, controls, links, spacing, sizing, responsive behavior, visual states, and implementation-ready interface details — supports a requirements-only mode that establishes data, actions, and states without locking layout or component decisions
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- ui-interview
- type
- planning
- version
- v0.26
- description
- Interview page by page to define a complete UI specification, including layout, hierarchy, controls, links, spacing, sizing, responsive behavior, visual states, and implementation-ready interface details — supports a requirements-only mode that establishes data, actions, and states without locking layout or component decisions
- visual_tier
- prototype
- argument-hint
- [optional: app, page, flow, feature, or draft UI] [--no-chunk]
- context_intake
- deep
- required_conventions
- [ "alignment-page", "design-tree-loop", "interrogation-page" ]
03 SKILL.md 正文
UI Interview
Invoke as $ui-interview.
Use this skill when the user needs to turn a UX variation branch, rough product idea, feature, page, wireframe, screenshot, or existing app surface into a detailed implementation-ready UI specification. In the default product-design tree, this skill evaluates one proposed $ux-variations branch for one specific user flow, designs a proposed UI, renders an HTML visual mockup for alignment, and then records whether that branch is approved, rejected, or needs another mockup iteration before routing to the next UX variation or user flow.
Use $user-flow-map before this skill when the product or feature has no credible screen/route inventory, task sequence, branch coverage, or state map. Prefer design/user-flow-*.md and the scoped flow-tree manifest as source material when they exist; they are the upstream wireframe-tree contract. Use $ux-variations [specific-user-flow] before this skill when a flow exists but no UX variation branch has been proposed yet.
Use $ux-variations after this skill only when the current UI mockup exposes a missing or rejected variation axis that needs branch exploration before another UI proposal.
When invoked with --requirements-only (or when the user says "just requirements", "requirements only", or "content requirements"), this skill stops after establishing what the page needs — data, actions, states, and constraints — without committing to any layout, component, or spatial decisions. This is an explicit bounded mode, not the default route from $user-flow-map; use it when the user asks for a content contract or when a layout-mode variation run genuinely requires fixed page requirements.
Default branch-review handoff guard: upstream $user-flow-map approval and $ux-variations output may provide source evidence, but they do not count as ui-interview approval. Upstream approval does not count as ui-interview interview completion. Requirements-only runs must still present and confirm its own UI Assumptions Manifest, then its own Content Requirements Manifest. ui-interview must still investigate cross-flow and cross-variation coordination, design a proposed UI, render the visual mockup in HTML, ask the user for alignment or feedback, and record an explicit approve/reject/retry branch decision.
Follow DESIGN-TREE-LOOP.md for prototype-phase routing, state storage, approval boundaries, and task classification. This skill records UI experiment branch decisions in the flow-tree manifest only after its own approval lifecycle permits canonical writes; checkpoint confirmations are not final approval.
Design-Tree Flow
This skill runs the unified 5-stage design-tree flow (interrogation → research → design → plan → implement(scoped)) from DESIGN-TREE-LOOP.md, scoped to the UI-experiment branches it grows (ui_experiments[] under one UX variation). The ## Process steps below group by stage:
- Stage 0 — Interrogation: the stage-zero loop in
## Interrogation Page/INTERROGATION-PAGE.mdplus the UI Assumptions Manifest — confirm scope, the selected UX variation branch, and the prototype-first boundary. - Stage 1 — Research: resolve context and gather references; consult the
design-inspirationssub-skill for named patterns and conventions when inspiration is thin. - Stage 2 — Design: author the UI experiment packet and (full mode) the HTML visual mockup —
design/ui-[topic].md,design/ui-requirements-[topic].md. - Stage 3 — Plan: the approved UI packet is the build-plan slice; the branch decision (approve/reject/retry) feeds the prototype build ledger.
- Stage 4 — Implement (scoped): write the UI packet, grow
ui_experimentchild branches under the UX variation, and pass the single binding alignment gate before any canonical write.
Per-branch iteration contract. Each session cold-starts, reads the flow-tree manifest, resolves the first UX variation with no ui_experiments, runs the staged flow scoped to it, grows the child branches on approval, and stops with the handoff in ## Next Work.
Non-buildout boundary. Default full UI mode stops at UI requirements, branch packet, static or bounded HTML mockup, and branch decision. Do not write or route default clickable prototype buildout from ui-interview. Route approved clickable route experiment needs to $create-ui-experiment [approved-ui-experiment] so a dedicated experiment owner can build and evaluate the clickable route separately.
Modify-back. A downstream modify decision can re-open an upstream model_ref or user-flow branch via targets[]; UI experiments below a re-opened node are marked stale and re-authored once that node is re-approved.
Process
0. Product-Path Scope Resolution
Resolve research scope by product path before using code or app structure as a hint:
- If
$ARGUMENTSnames a non-archivedresearch/{slug}/directory or a product-path ID whosescope_pathpoints there, use that path. Treat{slug}as the product/app name, not the ICP, audience, or segment label. - If
$ARGUMENTSnames onlyresearch/_archive/{slug}/or a manifest entry withstatus: archivedor legacystatus: abandoned, stop and warn that the path is archived; do not write or update scoped outputs there. - Read
research/.progress.yamlwhen present. Normalize legacyactive_pathtoactive_pathson read and write backactive_pathson manifest updates. Treat legacyabandonedasarchived; excludearchived,abandoned,deferred,revisit_candidate,promoted, and anyscope_pathunderresearch/_archive/from active target selection. - If active product paths exist in the manifest, use those paths. If multiple active paths exist, ask which one to target unless this skill explicitly supports cross-path output.
- If no active manifest target exists, list non-archived product directories under
research/, excludingresearch/_archive/and dot directories. Auto-select only when exactly one exists; ask when multiple exist. - If no product directories exist, use flat
research/single-product mode. - Detect monorepo/app/package structure only as a secondary hint. Suggest creating a missing
research/{slug}/product path when code clearly exposes an app, but do not require code or monorepo detection before usingresearch/{slug}/.
When product path {slug} is active, read and write research under research/{slug}/, pre-prototype design artifacts under design/{slug}/, finalized post-prototype implementation specs under specs/{slug}/, and treat top-level research/*.md and design/*.md files as flat-mode documents or cross-path summaries.
0b. Design Flow Tree Manifest
Use design/flow-tree.schema.json as the machine-readable contract for the pre-prototype product-design tree.
- Product-path mode reads and updates
design/{slug}/flow-tree-{topic}.yaml. - Flat mode reads and updates
design/flow-tree-{topic}.yaml. - Write UI branch state to
ui_experiments[]; add one entry under the selected UX variation branch for each proposed UI experiment. Each entry must includeid,status, artifact references, anddecision_idwhen a decision is recorded. - Record approve/reject/retry decisions in the manifest
decisions[]list. Do not write UX branch state toresearch/.progress.yaml; that file remains product-path/product-line tracking. - Do not mirror UI experiment review, approve/reject/retry, prototype build, or branch progress into
tasks/todo.md.
0c. Session model — chunked per-page spec sessions vs. one continuous session
This skill already runs one UX-variation branch per session; this subsection adds an optional finer chunking within a single large branch. In full UI mode the heavy phase is the page-by-page specification (step 6), and holding the full spec for every page in one context is the dominant per-session cost on large branches. After the page inventory is known (step 5), decide the session model from the page count: if N ≥ 4 pages and --no-chunk was not passed, enter chunked mode; otherwise run straight through in one continuous session exactly as a single pass through steps 0–9. Chunked mode follows the Intra-Skill Substep Chunking + Shared Context Brief mechanism in DESIGN-TREE-LOOP.md: a setup session (steps 1–5) writes a pure-context brief and stops; one spec session per page (step 6) authors a single page's intermediate; and a final assemble+approve session (steps 7–9 + deliverables + the one alignment page) assembles the canonical UI branch packet behind the single existing alignment gate. The progress cursor is intermediate-file existence — the brief carries no step list, and there is no schema change and no tasks/todo.md use. Keep the HTML visual mockup whole in the setup session — it is judged as a whole and is never fragmented across pages. Chunking applies to full UI mode only; requirements-only mode (step 5b) stops before the page-spec fan-out and never chunks. For N < 4, when --no-chunk is passed, or in requirements-only mode, write no brief and no intermediates and behave exactly as v0.22 did, so small branches stay cheap.
-
Resolve context
- Read
.agents/project.jsonif it exists. - Read
README.md,AGENTS.md,CLAUDE.md, relevantdocs/,specs/,research/, route files, component directories, screenshots, and design artifacts when present. - Prefer
design/user-flow-*.mdanddesign/**/flow-tree-*.yamlfor screen sequence, route inventory, branches, decisions, states, failure paths, and low-fidelity wireframe notes before inferring UI requirements. - Prefer
design/ux-variations-*.md(or product-path-scoped equivalents) for the selected UX variation branch, sibling variations, unresolved branch decisions, proposed progression paths, and branch-routing expectations. - Read
design/**/design-inspirations-{topic}.mdif present and treat it as the pre-gathered "apps you admire" / reference-pattern input for mockup and spec work — named UI/UX patterns, conventions, component-library references, and annotated links. When absent, behavior is unchanged. - If the request is for an existing UI, inspect the current implementation before interviewing.
- If multiple apps or surfaces are plausible, ask the user which app, flow, or page to cover first.
- If the interface has no credible screen/flow structure from a user-flow spec, existing routes, screenshot, wireframe, or explicit user prompt, stop and recommend
$user-flow-map [topic]before UI requirements or layout decisions. - If the interface has a credible flow but no specific UX variation branch or proposal to judge, stop and recommend
$ux-variations [specific-user-flow].
- Read
-
Treat inputs as draft material
- Do not assume the current UI, prompt, screenshot, or mockup is final.
- Product specs, ICP documents, and journey maps are reference material, not locked constraints. The user may override any product decision during the interview. When a user's interview answer contradicts an existing spec, adopt the interview answer and note the divergence.
- Preserve explicit constraints, but challenge unclear defaults before they become implementation decisions.
- Distinguish product behavior decisions from UI presentation decisions.
-
Surface assumptions before probing
- Present a UI Assumptions Manifest before deep questioning.
- Tag each assumption with:
[from spec]- explicitly stated in a spec, prompt, or issue[from codebase]- derived from existing routes, components, styles, or assets[from research]- derived from ICP, audience, journey, feedback, or product research[from artifact]- derived from screenshot, mockup, image, Figma export, or wireframe[inferred]- filled in by judgment
- Cover at least:
- Product and user context
- Parent user flow and selected UX variation branch
- Other user flows touched by this branch
- Sibling UX variations or existing UI proposals this branch must coordinate with
- Pages, routes, and entry points
- Prototype-first boundary for new product or substantial feature work: what the user should be able to click through first, whether multiple route-based experiments should be built, what data can be fake, fixture-backed, or in-memory, and which infrastructure must be represented visually but not implemented yet.
- Primary tasks per page
- Navigation model
- Information hierarchy
- Layout grid and spatial density
- Component inventory
- Button and link semantics
- Form fields, validation, and error display
- Empty, loading, disabled, success, warning, and failure states
- Responsive breakpoints and mobile behavior
- Accessibility requirements
- Visual language, typography, color, iconography, and asset usage
- Implementation constraints from the existing stack or design system
- Ask the user to confirm, correct, or flag assumptions before continuing.
- Deliver every manifest/checklist/checkpoint the user must confirm inline as the final message text of its own turn; ask the confirmation question in the next turn (consistent with the one-question-per-turn cadence). Never emit it only as mid-turn text in a turn that ends with a tool or command call — harness rendering does not guarantee mid-turn text is shown. A confirmation question must never reference content the user has not been shown.
-
Branch review loop
- In default mode, run this four-step loop for the selected UX variation branch:
- Investigate the specific UX variation proposed for a specific user flow. Determine which other user flows it touches, which sibling UX variations it competes with or depends on, and which existing UI proposals, specs, prototypes, or implementation surfaces it must coordinate with.
- Design a proposed UI for that branch and display a visual mockup in HTML. The mockup may be static or lightly interactive, but it must be concrete enough for the user to judge layout, hierarchy, controls, copy, state treatment, and branch viability.
- Interview the user for alignment over the UI for this UX variation experiment. If the visual mockup is off-base, collect focused feedback, revise the proposal/mockup, and ask again instead of treating the first mockup as final.
- Record whether this branch of the user flow is approved, rejected, or needs another iteration, then route to the next unresolved UX variation or user flow as needed.
- The branch decision is separate from implementation approval. Approval means the UI direction is a valid branch of the wireframe tree; implementation sequencing remains blocked until prototype build-plan synthesis, prototype evaluation, consolidation, and post-prototype specification work are complete.
- In default mode, run this four-step loop for the selected UX variation branch:
-
Interview page by page
- Codex interview cadence is one primary decision question per turn by default. Use short follow-up bullets only when they clarify the same page or interface decision, not to batch unrelated questions.
- Move through the interface in this order unless the user asks otherwise:
- Global shell: header, sidebar, footer, navigation, account controls, notifications
- Page inventory: every route, modal, drawer, overlay, and important empty state
- Page purpose: user goal, task priority, and success condition
- Prototype calibration: first clickable journey, route-based experiment set, fixture/fake data boundaries, infrastructure-only states to mock rather than implement, and taste/feel questions the prototype must answer before database, auth, payment, analytics, deployment, admin, or multi-tenant work is planned.
- Chunked-mode setup handoff: When chunked mode is active (step 0c — full UI mode, N ≥ 4 pages, no
--no-chunk), the page inventory established here is the end of the setup session. Keep the HTML visual mockup whole in this session (step 4). Write the shared context brief todesign/{slug}/_working/ui-interview-{topic}-brief.md(flat mode:design/_working/ui-interview-{topic}-brief.md) containing pure context only — the confirmed UI Assumptions Manifest, scope boundaries, the page inventory as context, the global-shell/navigation decisions every page shares, the HTML visual mockup reference, the evaluation criteria, and any carried branch decisions — with no step list and no status field. Then STOP and emit the Terminal handoff format fromDESIGN-TREE-LOOP.md: state the brief was written, name the first page to spec in plain English (what that page is, never only the internal{page-id}), and give the exact resolved next tool or command call with{slug}/{topic}filled in, e.g.$ui-interview alignment-page-reviewwriting intodesign/alignmeant/ui-interview-alignment-page-review/{page-id}.md, so each page gets its own cold spec session (step 6). In non-chunked mode, continue directly to step 6 in this same session.
5b. Requirements gate (requirements-only mode)
- In requirements-only mode, stop here — do not proceed to layout anatomy, component inventory, or spatial decisions.
- Requirements-only mode has two required confirmation gates before any alignment page build: the UI Assumptions Manifest from step 3, then the Content Requirements Manifest in this step. Upstream approval, including approved
$user-flow-mapYAML or an approved flow alignment page, may populate assumptions and source evidence but cannot replace either confirmation;ui-interviewmust still present and confirm its own UI Assumptions Manifest, then its own Content Requirements Manifest. - Evidence-synthesis exception: only skip live confirmation questions when the current visible user invocation explicitly asks to skip live interview questions, synthesize from existing evidence only, or avoid asking the user. In that case, label the output as an
evidence-synthesis review, set Interview provenance toevidence-synthesis-with-explicit-skip, do not call it a completed interview, and route unresolved decisions to a resumed$ui-interviewinstead of implying interview completion. - For each page, confirm:
- Data fields and entities with cardinality: one, many, nested, or polymorphic
- User actions: create, edit, delete, filter, sort, export, navigate, bulk-select, reorder
- States: empty, loading, error, partial, full, offline, permission-denied
- Constraints: real-time updates, offline support, accessibility requirements, performance budgets
- Content hierarchy: primary, secondary, tertiary information
- Relationships between data elements: parent-child, peer, reference, aggregate
- Present a Content Requirements Manifest summarizing all pages, then ask the user to confirm. Deliver the manifest per the inline visibility rule in step 3 (turn-final message text of its own turn; confirmation question in the next turn), never as mid-turn text only.
- This manifest confirmation is non-final: it only confirms the requirements draft is ready for the pre-approval lifecycle in step 9. Route all writes through that lifecycle — working packet at
research/_working/preliminary-ui-interview-research.md(orresearch/{slug}/_working/preliminary-ui-interview-research.mdwhen a product path is active), then areview-statealignment/ui-interview-{topic}.htmlpage rendering the Content Requirements Manifest as the candidate/verdict gate, then final compiled YAML approval. - Only after final compiled YAML approval, write
design/ui-requirements-[topic].mdanddesign/ui-requirements-[topic]-interview.mdin flat mode or product-path-scoped equivalents, update the scoped flow-tree manifest, archive the working packet, and convert the page toconfirmedper step 9. - Only after the page is converted to
confirmedand canonical files are written, recommend$ui-interviewwithout the flag to evaluate a concrete UX variation branch,$ux-variations --layout-modeonly when this requirements-only detour intentionally needs layout alternatives, or$user-flow-map --prototype-build-plan [topic]only when all target UI branch decisions already exist. Do not route requirements-only work to$roadmaporagent-work-admin. - If requirements-only work exposes missing screen order, branch decisions, or state coverage, recommend
$user-flow-map [topic]instead of inventing layout variants. - Stop. Do not continue to step 6 or beyond; the pre-approval lifecycle in step 9 and the requirements deliverables above are the only remaining work in this mode.
-
Full UI specification (no
--content-onlyflag):- Chunked-mode spec session (one page per session): When chunked mode is active, each spec session reads the brief at
design/{slug}/_working/ui-interview-{topic}-brief.mdand scans which{page-id}.mdfiles already exist underdesign/{slug}/ui-interview-{topic}/. Pick the first page whose intermediate file does not yet exist, write its full spec (the attribute list below — layout anatomy, component inventory, control inventory, copy, states, spatial details, responsive behavior, accessibility) todesign/{slug}/ui-interview-{topic}/{page-id}.md, append any cross-page facts worth carrying to the brief, then STOP and emit the Terminal handoff format fromDESIGN-TREE-LOOP.md: state the intermediate just written, name the next missing page in plain English (what that page is, never only the internal{page-id}), and give the exact resolved next tool or command call, e.g.$ui-interview alignment-page-review. When the page just written was the last one, the handoff points to the assemble+approve session instead of another spec session. Continue-vs-stop framing follows that convention's Routing Rules. Context per session is the brief plus one page. In non-chunked mode, specify all pages in this same session as before. The per-page spec content below is identical in both modes — chunking changes only how many pages one session writes.- Layout anatomy: top-to-bottom and left-to-right regions, alignment, density, scroll behavior
- Component inventory: tables, lists, cards, forms, charts, media, editors, maps, canvases
- Controls: every button, icon button, segmented control, checkbox, radio, toggle, input, menu, tab, link, and destructive action
- Copy: headings, labels, helper text, validation text, confirmation text, empty-state text
- States: default, hover, focus, active, selected, disabled, loading, error, success, partial, offline
- Spatial details: element prominence, approximate sizes, gaps, padding, fixed or fluid dimensions, sticky regions, overlap rules, max widths
- Responsive behavior: desktop, tablet, mobile, wide desktop, touch target sizing, collapsed controls
- Accessibility: keyboard order, focus traps, labels, contrast, reduced motion, screen reader names. Include color-blind safe patterns, keyboard navigation, reduced motion support, and screen reader labels by default in every spec. Do not present accessibility features as optional checkboxes. Only ask about domain-specific accessibility when the product context warrants it.
- When a page includes repeated items, define one canonical item and its variations rather than asking about every row individually.
- Chunked-mode spec session (one page per session): When chunked mode is active, each spec session reads the brief at
-
Research and recommend by default
- Use project evidence and established UI conventions before asking the user to invent details.
- For material decisions, present options, a recommendation, rationale, tradeoffs, and mitigation.
- Recommend familiar controls over novel patterns unless the product has a strong reason to deviate.
- For frontend work, respect the existing design system, component library, and implementation patterns.
- Reference and inspiration questions are low-priority. Ask once early, accept any answer including "none" or "let's experiment," and move on. Do not block the interview on reference input. When a
design/**/design-inspirations-{topic}.mdartifact exists (from$design-inspirations), it supplies that pre-gathered inspiration input, so you need not ask the reference question; still favor local project evidence and established conventions over external references.
-
Coverage checkpoint
- Before concluding, present a concise checklist of pages, components, controls, states, responsive behavior, and unresolved risks.
- Deliver the checklist per the inline visibility rule in step 3 (turn-final message text of its own turn; confirmation question in the next turn), never as mid-turn text only.
- Ask whether anything is missing or should be revisited before building the alignment page.
- This confirmation is non-final: it only establishes that the draft is ready for the pre-approval lifecycle in step 9. It does not authorize canonical spec writes.
-
Build pre-approval alignment page
- Chunked-mode assemble+approve session: When chunked mode is active, begin this session only once every page's
{page-id}.mdintermediate exists underdesign/{slug}/ui-interview-{topic}/. Assemble those per-page intermediates plus the brief into the single working packet below, then run step 7 (research/recommend) and step 8 (coverage checkpoint) over the whole assembled branch spec and build the one alignment page. On final compiled YAML approval, write the canonical UI branch packet, flip the scoped flow-treeui_experiments[]decision, and archive the brief and the per-page intermediates per the convention's archive-at-canonical-write timing. There is exactly one alignment gate for the whole branch, not one per page (the existing one-gate-per-branch behavior is unchanged). - Before writing any canonical
design/ui-[topic].md,design/ui-requirements-[topic].md, or interview log, write the full draft (spec or requirements content plus interview record) only to the working packetresearch/_working/preliminary-ui-interview-research.md(orresearch/{slug}/_working/preliminary-ui-interview-research.mdwhen a product path is active). - Build
alignment/ui-interview-{topic}.htmlas areview-state page rendering the complete working-packet substance as structured HTML review UI: the manifest, branch investigation, HTML visual mockup, page-by-page decisions, coverage checkpoint, proposed canonical file destinations, and approval/rejection gates. - Include Interview provenance in the page and working packet with exactly one of these values:
live-ui-interviewwhen this run completed the required manifest confirmations with the user;evidence-synthesis-with-explicit-skipwhen the current invocation explicitly asked to skip live questions or synthesize from evidence;invalid-missing-ui-interviewwhen neither condition is true.invalid-missing-ui-interviewpages must route unresolved decisions to a resumed$ui-interviewand must not imply interview completion or readiness for canonical writes. - At the top of the page, include a plain-language Interview stage explainer naming the invocation, whether the run is requirements-only, full UI mode, or branch-review mode, what user/agent interview work has already happened or was inferred from approved upstream evidence, and what the reviewer should do next. If requirements were synthesized primarily from approved specs or code evidence rather than live Q&A, say so directly and route missing answers through section feedback or a resumed interview instead of implying the interview is complete.
- Render the working packet as structured HTML, not as a raw Markdown preview: headings become sections, lists stay readable lists, and every Markdown table becomes an HTML
<table>inside a.table-wrapcontainer with a concisedata-tts-narrative. A raw Markdown<pre><code>dump may appear only as a supplemental source view after the rendered packet, never as the primary review surface. - Attempt to open the page in the browser and point the user at the repo-relative path.
- Chunked-mode assemble+approve session: When chunked mode is active, begin this session only once every page's
- Treat every checkpoint confirmation in steps 3–8 as non-final; each only confirms the draft is ready for review. Only final compiled YAML from the alignment page authorizes canonical writes.
- When feedback-only YAML is provided, revise the working packet and the alignment page, then ask again; the work stays pre-approval.
- Before final compiled YAML approval, the next action is review or revision of the HTML alignment page. Do not include
Recommended next skill,Recommended next command, or downstream routing language until after final compiled YAML approval has been provided and the approved canonical files have been written.
Deliverables
Before writing anything in this section, verify the alignment page has final compiled YAML approval. Do not write canonical UI specs or interview logs until alignment/ui-interview-{topic}.html has been reviewed and the user has provided final compiled YAML approval; checkpoint confirmations are not final approval and do not authorize these writes.
- Write the completed UI branch packet to
design/ui-[topic].mdin flat mode ordesign/{slug}/ui-[topic].mdin product-path mode. - Write the interview log to
design/ui-[topic]-interview.mdin flat mode ordesign/{slug}/ui-[topic]-interview.mdin product-path mode. - Update the scoped flow-tree manifest with the UI experiment status, artifact references, and approve/reject/retry decision record.
After the canonical files are written, archive the working packet to docs/history/archive/YYYY-MM-DD/HHMMSS/<original-working-path>, remove the active working packet, and convert the alignment page from review to confirmed.
The UI specification must include:
- Scope and source evidence
- UI Assumptions Manifest with confirmations and corrections
- Parent user flow, selected UX variation branch, touched sibling flows, and coordination dependencies
- HTML visual mockup path or embedded review section for the proposed UI
- Branch decision record: approved, rejected, or retry needed, with next branch/user-flow route
- Flow-tree manifest branch IDs, UI experiment ID, and decision ID.
- Page inventory and route map
- Global shell and navigation rules
- Detailed page-by-page anatomy
- Component inventory and reuse guidance
- Control inventory with labels, destinations, actions, disabled rules, and confirmation behavior
- Link inventory with destinations and external/internal classification
- Layout, spacing, sizing, and responsive rules
- Visual style direction and asset requirements
- Interaction states and accessibility requirements
- Implementation notes tied to the existing stack
- Open questions, risks, and explicit non-goals
- For new product interfaces or substantial feature interfaces, a prototype-first section naming the first clickable journey, experiment route map when multiple alternatives should be tested, fake/fixture data, visually mocked infrastructure states, deferred production infrastructure, and the evidence required before implementation planning promotes any deferred infrastructure.
The interview log must include:
- The manifest as presented
- Branch investigation notes and cross-flow/variation coordination findings
- Visual mockup feedback, retry notes, and final branch decision
- Every question asked
- Options and recommendations presented
- User responses and final decisions
- Notable changes from the initial draft, current implementation, or artifact
Only after the page is converted to confirmed and canonical files are written, route based on the branch decision: recommend $create-ui-experiment [approved-ui-experiment] when an approved branch needs a clickable route experiment, $ui-interview [next-specific-ux-variation] for the next UX variation branch, $ux-variations [next-specific-user-flow] when the next user flow still needs progression variants, or $user-flow-map --prototype-build-plan [topic] when all target user-flow and UI branch decisions are complete enough to synthesize the prototype build ledger. Do not route from ui-interview directly to $prototype, $roadmap, agent-work-admin, implementation planning, or production sequencing during the research/prototype phase.
Alignment Page
When this skill produces durable deliverables (research, specs, plans, reports, prototypes, or any document output), build a full-depth HTML alignment page following ALIGNMENT-PAGE.md in this skill's directory. Output: alignment/ui-interview-{topic}.html.
The page is built pre-approval in review state per step 9, before any canonical spec write, and converts to confirmed only after final compiled YAML approval and canonical writes.
Next Work
Next work: route based on the branch decision recorded in the prototype build ledger. When an approved UI branch needs a clickable route experiment, hand it to $create-ui-experiment [approved-ui-experiment]; when the variation's UI experiments are all approved and evaluated, synthesize the build plan with $user-flow-map --prototype-build-plan [topic]; when more UX variations remain to explore, route back to $ux-variations [specific-user-flow].
Recommended next command: $create-ui-experiment [approved-ui-experiment].
Invoke With YAML
Emit the agent_routing payload with the exact resolved next-invocation command, {slug}/{topic}/branch filled to literal values: $create-ui-experiment [approved-ui-experiment] when an approved UI branch needs a clickable route experiment, $user-flow-map --prototype-build-plan [topic] once the variation's UI experiments are decided and evaluated, or $ux-variations [specific-user-flow] for the next unexplored flow.
Constraints
- Do not skip small interface elements. Buttons, links, icons, menus, and empty states are part of the spec.
- Do not collapse UI detail into generic phrases such as "standard dashboard layout" or "normal form behavior."
- Do not create high-fidelity implementation plans until the page anatomy and control behavior are decision-complete.
- Do not treat visual polish as separate from implementation. Size, spacing, hierarchy, and responsive behavior must be specified well enough for a developer to build.
- Do not treat upstream
ux-variationsoutput as UI approval. The branch still needs an HTML visual mockup and explicit approve/reject/retry decision. - Do not route to broad implementation planning while unresolved UX variation branches or touched user flows still need review.
- Do not write pre-prototype UI branch packets to
specs/.design/is the canonical home for flow maps, UX variation plans, UI branch packets, branch decisions, mockup references, and flow-tree manifests. - Do not use
tasks/todo.mdfor UI/design branch progress. Human prototype/UAT evaluation belongs intasks/manual-todo.md; implementation fixes may entertasks/todo.mdonly after human evidence exists. - When recommending a skill from another pack, verify the pack is installed via
.agents/project.jsonenabled_packs. If not installed, recommendnpx skillpacks install <pack-name>from the project shell, before the target skill.
Archive-First Replacement Policy
- Before replacing or substantively rewriting an existing canonical research/design/spec document (
research/**/*.md,design/**/*.md,specs/**/*.md, ordocs/specifications/**/*.md), copy the current file todocs/history/archive/YYYY-MM-DD/HHMMSS/<original-relative-path>. - Preserve the archived snapshot exactly as it existed before the change; do not edit the archived copy after creating it.
- After the archive snapshot exists, write the updated document to the original canonical path.
- Report both the archive path and the updated canonical path in the final output.
- New files do not need archive snapshots. Append-only updates do not need archive snapshots unless an existing section is regenerated or rewritten.
Interrogation Page
Before producing research, run the stage-zero interrogation loop following INTERROGATION-PAGE.md in this skill's directory. Build one HTML page per round at interrogation/ui-interview-r{N}-{branch}.html, starting with the assumptions manifest as round 1, and loop until the confidence gate passes. This skill cannot advance to stage one (the framework/scope alignment page) until the confidence gate passes with at least one completed interrogation round and every interview area covered or waived. Each round page must contain at least one genuinely open input (data-open-input).
Default Shipping Contract
Follow the shared shipping contract convention in CLAUDE.md.
04 同仓库更多 Skills
source-checkout-allowed
Valid source-checkout-only fixture.
deck-install-valid
Valid deck install fixture.
codex-pack-guard-valid
Valid Codex Pack Availability Guard fixture.
codex-missing-skill-valid
Valid Codex missing skill fallback fixture.
codex-base-skill-fallback-valid
Valid Codex base skill fallback fixture.
claude-pack-guard-valid
Valid Claude Pack Availability Guard fixture.