Imported from GeorgeQLe/agentic-skills (
packs/product-design/claude/consolidate-prototypes/archive/v0.19/SKILL.md). Install upstream withnpx skills add GeorgeQLe/agentic-skills --skill v0.19. Copyright stays with the author.
Consolidate Prototypes
Invoke as /consolidate-prototypes.
Use this skill after the user has built and evaluated multiple prototype branches (typically generated via /ux-variations --layout-mode, built via /build-ui-screens then /logic-wiring, and evaluated via /uat --variant-evaluation (check .agents/project.json.enabled_packs for product-testing — if product-testing is not enabled, recommend npx skillpacks install product-testing from the project shell, first)). This skill compares the source prototypes, interviews the user on what works and what doesn't in each one, resolves incompatible UAT findings and design choices, and produces a single user-approved consolidated MVP for post-prototype production specification.
Two-stage consolidation. Consolidation runs in two stages. Stage 1 — stitch assembles the approved canonical screens into coherent end-to-end flows: it reads each variation's built screens and walks the ui_experiments[].build_ledger[] entries, and cherry-picks screens flagged cherry_pick_candidate or left parked by /build-ui-screens (a strong partial screen worth carrying into the canonical flow even though its source variation was not the winner). It also compares any Platform Fit Workshop platform_probe evidence against platform_fit.recommendation. Stage 2 — converge is the existing pass: interview keep/reject across the stitched flows, resolve conflicts, build the consolidated MVP, write the AFPS graduation document with the recommended platform strategy, and hand off to /research-roadmap --post-prototype.
Users with manually built prototypes can also use this skill directly, but consolidation should not happen before the user has reviewed the prototypes and captured evidence.
Follow DESIGN-TREE-LOOP.md for prototype-phase routing, state storage, approval boundaries, and task classification. Consolidation requires UAT evidence or explicit user readiness plus explicit consolidation decisions before writing prototypes/{topic}/consolidated/.
Design-Tree Flow
This skill runs the unified 5-stage design-tree flow (interrogation → research → design → plan → implement(scoped)) from DESIGN-TREE-LOOP.md, converging the validated tree into a cohesive MVP. The ## Process steps below group by stage:
- Stage 0 — Interrogation: the stage-zero loop in
## Interrogation Page/INTERROGATION-PAGE.mdplus the prototype-selection checkpoint — confirm which evaluated prototype branches to consolidate and the UAT evidence backing each. - Stage 1 — Research: read the built prototypes, platform probes,
design/ux-variations-[topic].md,design/ui-requirements-[topic].md,design/flow-tree-[topic].yaml, and the/uat --variant-evaluationevidence. - Stage 2 — Design: interview keep/reject per prototype branch, resolve conflicts, and decide the consolidated MVP direction.
- Stage 3 — Plan: the keep/reject/resolve matrix is the build-plan slice this run realizes.
- Stage 4 — Implement (scoped): runnable — build the consolidated MVP under
prototypes/{topic}/consolidated/, mark the treeconsolidated, record the consolidated MVP decisions, 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 validated variation set ready to converge, runs the staged flow, writes the consolidated MVP on approval, and stops with the handoff in ## Next Work.
Modify-back. When consolidation surfaces a flaw in an upstream node, record a modify decision whose targets[] re-opens that model_ref, platform_fit, or user-flow branch; convergence resumes once the re-opened 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 research under research/{slug}/, read pre-prototype design artifacts under design/{slug}/, write prototype output under prototypes/{topic}/, and treat top-level research/*.md and design/*.md files as flat-mode documents or cross-path summaries.
-
Resolve context
- Read
.agents/project.jsonif it exists. - Read
README.md,AGENTS.md,CLAUDE.md, relevantdocs/,specs/,research/, route files, component directories, and design artifacts when present. - Locate the prototype branch plan:
design/ui-layout-variations-[topic].md,design/ux-variations-[topic].md, or equivalent prototype-branch plan. - Locate the content requirements:
design/ui-requirements-[topic].mdor equivalent content contract. - Locate the flow-tree manifest:
design/flow-tree-[topic].yamlordesign/{slug}/flow-tree-{topic}.yamlwhen present. - Read
platform_fitand anyprototype_build_plan.items[].platform_probeevidence from the flow-tree manifest and build plan. - Locate variant evaluation evidence:
research/uat-variant-evaluation-[topic].md, product-path-scoped equivalents,research/uat-plan.mdresult logs, screenshots, notes, recordings, or explicit user-provided review notes. - Locate built implementations: scan route files, component directories, and any prototype-specific directories or branches.
- If the prototype branch plan or implementations cannot be found, ask the user to point to them.
- Read
-
Evidence gate
- If no evaluation evidence exists and the user has not explicitly said they already reviewed the variants and is ready to converge, stop and recommend
/uat --variant-evaluation(check.agents/project.json.enabled_packsforproduct-testing— ifproduct-testingis not enabled, recommendnpx skillpacks install product-testingfrom the project shell, first). - Do not infer a winner from specs alone. Built variants need hands-on review or explicit user readiness before consolidation.
- If some prototype branches are unreviewed, ask whether to exclude them, evaluate them first via
/uat --variant-evaluation(check.agents/project.json.enabled_packsforproduct-testing— ifproduct-testingis not enabled, recommendnpx skillpacks install product-testingfrom the project shell, first), or include them as spec-only references.
- If no evaluation evidence exists and the user has not explicitly said they already reviewed the variants and is ready to converge, stop and recommend
-
Present prototype inventory
- List each source prototype branch with a one-line summary of its approach.
- Note build status for each: built and reviewed, built but unreviewed, partially built, spec-only.
- Note evidence status for each: result log present, user notes present, no evidence.
- Note platform-probe status for each serious platform candidate: built and evidenced, built but unevaluated, missing, deferred, rejected.
- Use AskUserQuestion to confirm which prototype branches the user has reviewed and wants to evaluate. Skip unreviewed or unbuilt prototypes unless the user wants to include them from spec alone.
-
Interview per prototype branch
- For each reviewed prototype branch, ask using AskUserQuestion (1–3 questions per turn):
- What works well in this prototype? Name specific elements, regions, or interactions.
- What doesn't work? What feels wrong, cluttered, sparse, or confusing?
- Any specific component, region, or interaction you want to keep in the final design?
- Anything to explicitly reject — never use this approach?
- Record responses as structured annotations per source prototype:
- Keep: elements the user wants in the final MVP (with source prototype)
- Reject: elements the user never wants (with source prototype)
- Neutral: elements the user has no strong opinion on
- For each reviewed prototype branch, ask using AskUserQuestion (1–3 questions per turn):
-
Cross-prototype synthesis
- Present a Consolidation Matrix showing each design dimension and which prototype branch's approach the user preferred:
Design Element Prototype A Prototype B Prototype C Winner Container pattern card grid data table list+detail ? Detail view modal sidebar full-page ? Navigation top-nav side-nav tabs ? ... ... ... ... ... - Fill in winners based on the interview. Mark conflicts where preferred choices from different dimensions are incompatible (e.g., user wants sidebar detail from Variation B but also wants the full-width card grid from Variation A — these compete for horizontal space).
- For each conflict:
- Present the tension clearly
- Offer 2–3 resolution options with tradeoffs
- State a recommendation
- Use AskUserQuestion to resolve
- Continue until every row in the matrix has a winner and all conflicts are resolved.
5a. Platform-probe synthesis
- Compare Platform Fit Workshop candidates,
platform_fit.recommendation, and any platform-probe evidence. - Confirm the platform strategy as
primary, optionalcompanion[],defer[], andreject[]. - If platform-probe evidence contradicts the current recommendation, either update the recommendation in the flow-tree manifest or record a
modifydecision targetingplatform_fitand route back to/user-flow-map. - Do not graduate with unresolved platform risks that materially affect production architecture, permissions, distribution, monetization, or adoption path.
-
Build consolidated prototype
- Merge the best elements from source prototypes into a single runnable artifact at
prototypes/{topic}/consolidated/. - Build only after UAT evidence and user consolidation decisions identify which elements to keep, reject, or resolve.
- The consolidated prototype must reflect:
- Layout skeleton (regions, proportions, scroll behavior)
- Primary content pattern (how items are displayed)
- Detail view pattern (how full item details are accessed)
- Navigation pattern and placement
- Action placement (create, edit, delete, bulk, contextual)
- Density and spacing approach
- Responsive behavior at mobile, tablet, and desktop breakpoints
- States rendering (empty, loading, error, partial, offline)
- Use AskUserQuestion to confirm the consolidated design before building the prototype.
- Merge the best elements from source prototypes into a single runnable artifact at
-
Coverage checkpoint
- Verify every content requirement from
design/ui-requirements-[topic].mdhas a UI home in the consolidated prototype. - Verify every user action has a placement (button, menu item, keyboard shortcut, or gesture).
- Verify all states (empty, loading, error, partial, full, offline, permission-denied) are accounted for.
- Flag any gaps and resolve via AskUserQuestion before writing.
- Verify every content requirement from
-
Production-ready handoff boundary
- Write the required AFPS graduation document at
design/afps-graduation-{topic}.mdin flat mode ordesign/{slug}/afps-graduation-{topic}.mdin product-path mode. - Record final MVP decisions, rejected alternatives, UAT evidence, platform-probe evidence, recommended platform strategy, unresolved risks, stale-research cleanup needs, and production-spec readiness in the consolidation interview log, AFPS graduation document, and alignment page.
- The recommended next route must name
/research-roadmap --post-prototype, then/spec-interview. - The Production Ready Approval gate is owned by
/spec-interviewand followsdocs/production-ready-approval.md.
- Write the required AFPS graduation document at
Deliverables
- Write the consolidated prototype to
prototypes/{topic}/consolidated/. - Write the consolidation interview log to
design/consolidate-prototypes-[topic]-interview.mdin flat mode ordesign/{slug}/consolidate-prototypes-[topic]-interview.mdin product-path mode. - Write the AFPS graduation document to
design/afps-graduation-{topic}.mdin flat mode ordesign/{slug}/afps-graduation-{topic}.mdin product-path mode. Include the approved MVP scope, prototype evidence, platform-probe evidence, recommended platform strategy, keep/reject decisions, unresolved risks, stale-research cleanup status, and whether the project is ready for/research-roadmap --post-prototypeand/spec-interview. - Update the scoped flow-tree manifest to mark consolidated branches as
consolidatedorpromoted-to-prototypewhen applicable.
Alignment Page
Follow ALIGNMENT-PAGE.md in this skill's directory for alignment-page requirements and output path.
Next Work
Next work: after the consolidated MVP and AFPS graduation document are approved, run the post-prototype research pass (/research-roadmap --post-prototype) and then formalize the MVP into a production spec with /spec-interview. The Production Ready Approval gate is owned by that spec handoff; do not create a separate production-readiness state file or lifecycle registry here.
Recommended next command: /research-roadmap --post-prototype.
Invoke With YAML
Emit the agent_routing payload with the exact resolved next-invocation command, {slug}/{topic} filled to literal values: /research-roadmap --post-prototype, then /spec-interview.
Constraints
- Do not proceed without evaluation evidence unless the user explicitly says they have reviewed the variants and is ready to converge.
- Do not pick winners without user input. Present the matrix and let the user decide.
- Do not ignore conflicts. If two preferred choices are spatially or functionally incompatible, surface the tension and resolve it explicitly.
- The consolidated prototype must preserve the approved UI branch detail from
/ui-interview, carry the recommended platform strategy from AFPS graduation, and be concrete enough for/spec-interviewto extract production implementation requirements and own the Production Ready Approval described indocs/production-ready-approval.md. - Do not lose content requirements. Every data field, action, and state from the requirements spec must appear in the final design.
- Do not bias toward the first or last variation reviewed. Present them neutrally and let the user's feedback and evaluation evidence drive the outcome.
- Do not use
tasks/todo.mdfor consolidation branch progress or human review. Human 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/consolidate-prototypes-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 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.