Prototype-Phase Skills & Design-Tree Flow

Investigation + visual map of the design/prototype pipeline. Audits the prototype-phase skills, diagrams the canonical flow, compares four real design trees from active repos, and proposes fixes for the gaps found — including the routing defect that triggered this run.

Status: review · Date: 2026-06-24 · Produced by: /investigate (no fixes implemented — proposals only)

⚠ Proposed divergence from current canon

Section 2 now depicts a proposed state-model-first pipeline that diverges from current canon. Today the design-tree convention treats state-model as an orthogonal, recommended-but-skippable per-branch attachment and keeps the route tuple a closed 6-skill sequence; create-ui-experiment is a per-branch experiment owner, "not a replacement top-level route position." This page proposes promoting both to first-class, mandatory inline route stepsstate-model codifies the data architecture (app/flow/screen scopes, with a fast-pass fold for CRUD-trivial domains) before any UX/UI pass, and create-ui-experiment (mandatory, batchable) sits between ui-interview and the build plan. No canon (docs/skills/schema/tests) is edited by this page. The exact edits an executor would apply are spelled out in the companion proposal: docs/proposals/state-model-first-pipeline-refactor.md.

Table of Contents
  1. The triggering defect — "stop after confirmation"
  2. Flow diagram — the prototype-phase pipeline
  3. Skill audit — 11 prototype-phase skills
  4. What different design trees look like (4 real repos)
  5. Gaps & issues in the real trees (with fixes — not applied)
  6. Gate: the corrected post-approval route
  7. Compile responses

1. The triggering defect — "stop after confirmation"

The invocation flagged a Post-Approval Route gate whose recommended option was "stop after confirmation", with the rationale that the design tree should not continue UI/prototype work until the repaired base flow is written and downstream branches are revalidated. The complaint: "stop after confirmation" is a useless option — after a canonical base-flow rewrite the route is state-model, not a terminal stop.

Root cause

Claim validated against evidence

The user's correction is confirmed by the repo's own state. In /Users/georgele/projects/tools/dev/alignmeant/design/alignmeant/flow-tree-alignment-page-review.yaml, the same base-flow rewrite recorded:

Field in the live flow treeRecorded value
next_route.command$state-model alignment-page-review
next_route.rationale"The base user-flow map was repaired; revalidate the flow-anchored domain model before continuing UX/UI branch work."
decisions[].gate_answers (post-approval route)"continue state model revalidation"
model_tree_status / revalidation.model_tree.statusneeds-revalidation$state-model
5 downstream UX branches + 1 UI branchall set to needs-revalidation

So the human reviewer already answered the gate "continue state model revalidation" and the manifest already encodes state-model as the next route. The generated "stop after confirmation" option contradicted the artifact it was attached to.

2. Flow diagram — the prototype-phase pipeline (proposed state-model-first order)

The proposed single solid pipeline: user-flow-map translates the journey map into design language, then state-model (blue, now a first-class main-line step) codifies the data architecture across three scopes — app · per-flow · per-screen, with a fast-pass fold for CRUD-trivial domains — before any UX/UI pass. ux-variations and ui-interview follow, then create-ui-experiment (now a main-line step, mandatory · batchable) validates each approved UI branch clickably before user-flow-map --prototype-build-plan synthesises the build plan. Inline sub-skills are purple (design-inspirations off ui-interview, uat off prototype); the modify-back revalidation arc (red) — the loop the triggering defect concerns — now returns to both state-model and user-flow-map. Boxes are sketch-styled; text is clean per the project Excalidraw convention.

route pipeline skill orchestrator / state-model step inline sub-skill modify-back / revalidation
user-flow-maproot + flow branches state-modelapp · per-flow · per-screenfast-pass fold (trivial) ux-variations≤5 UX branches ui-interviewUI experiment branches create-ui-experimentmandatory · batchableclickable validation design-inspirationsinline research user-flow-map--prototype-build-plan prototyperunnable variants consolidate-prototypes → MVP research-roadmap--post-prototype spec-interviewspecs/{topic}.md uat--variant-evaluation modify-back: re-open upstream node → descendants marked needs-revalidation

3. Skill audit — 11 prototype-phase skills

Every active skill in the design/prototype pipeline, its location, role, and stage-4 canonical deliverable. All run the same 5-stage session flow (interrogation → research → design → plan → implement-scoped) per docs/design-tree-loop-convention.md §2.

SkillVerRoleTree node grownStage-4 deliverableRoutes out →
user-flow-map
orchestrator
packs/product-design
v1.6Root orchestrator; one user-flow branch per flow; owns build-plan synthesisroot + user-flow branches + build planflow-tree-{t}.yaml, user-flow-{t}.md, prototype-build-plan-{t}.md/state-model/ux-variations
state-model
first-class step
packs/product-design
v0.8Proposed: first-class step; codifies data architecture (app/flow/screen) before UX/UI. (Canon today: orthogonal skippable per-branch attachment.)model attachment (model_ref); proposed app/screen scopesmodel-tree-{t}.yaml, domain-model-{t}.md/ux-variations
ux-variations
pipeline
packs/product-design
v0.28Grows ≤5 UX variation branches on a modelled flowux_variations[] branchesux-variations-{t}.md/ui-interview
ui-interview
pipeline
packs/product-design
v0.27Evaluates one UX branch; grows UI experiment branches; HTML mockupui_experiments[] branchesui-{t}.md, ui-requirements-{t}.md/user-flow-map --prototype-build-plan
create-ui-experiment
inline step
packs/product-design
v0.1Proposed: inline clickable validation between ui-interview and the build plan (mandatory · batchable). (Canon today: experiment owner, not a default buildout path.)UI-experiment evidence noteexperiments/{t}/{id}//user-flow-map --prototype-build-plan
prototype
validation
packs/product-design
v0.19Builds runnable prototypes; records decisions; origin of modify-backprototype + decisions[]prototypes/{t}/variation-N//uat --variant-evaluation
uat
sub-skill
packs/product-testing
v0.14Human variant-evaluation / acceptance plans + evidenceevaluation evidenceresearch/uat-variant-evaluation-{t}.md→ parent (/consolidate-prototypes)
consolidate-prototypes
pipeline
packs/product-design
v0.17Converges evaluated branches into one MVP; AFPS graduationconsolidated MVP nodeprototypes/{t}/consolidated/, afps-graduation-{t}.md/research-roadmap --post-prototype
spec-interview
terminal
packs/product-design
v0.17Production deep-dive; owns Production Ready Approvalspec nodespecs/{t}.md/roadmap (implementation)
design-inspirations
sub-skill
packs/product-design
v0.3Inline web-research feeder for ui-interview(no node — feeds parent)design-inspirations-{t}.md→ parent (/ui-interview)
consolidate-variations
deprecated
packs/product-design
v0.0Compatibility alias → consolidate-prototypesnonenone (delegates)/consolidate-prototypes

Current canon (per docs/skill-next-step-contracts.md §8): closed 6-skill route user-flow-map → ux-variations → ui-interview → prototype → consolidate-prototypes → spec-interview, with state-model a recommended-but-skippable per-branch attachment, create-ui-experiment an off-route experiment owner, and research-roadmap --post-prototype the graduation-aware cleanup pass before spec.

Proposed (this page; see docs/proposals/state-model-first-pipeline-refactor.md): promote both into the inline route — user-flow-map → state-model → ux-variations → ui-interview → create-ui-experiment → user-flow-map --prototype-build-plan → prototype ⇄ uat → consolidate-prototypes → research-roadmap --post-prototype → spec-interview. state-model becomes mandatory (app/flow/screen scopes, fast-pass fold); create-ui-experiment becomes mandatory-but-batchable.

4. What different design trees look like (4 real repos)

Four flow-tree manifests found across active repos show the schema at different maturities. They are the basis for the gap analysis in §5.

A — Canonical reference · agentic-skills/design/flow-tree-sample.yaml (schema v0.3)

The fully-formed shape: nested branches, per-branch model_ref, the deterministic branch_order_override, decisions[] with a modify that re-opens upstream nodes, and a populated prototype_build_plan.

root: invoice-approval (v0.3, flat) └── submit-and-approve [ready-for-ui] model_ref ✓ journey_sequence=1 ├── guided-wizard [approved] eval_priority=1 │ └── wizard-stepper (UI) [approved] → decision: approve → built (variation-1) └── single-page-dense [retry-needed] eval_priority=2 └── dense-table (UI) [rejected] → decision: MODIFY → targets:[model_ref, submit-and-approve]

B — Mid-revision · alignmeant/design/alignmeant/flow-tree-alignment-page-review.yaml (schema v0.1, product-path)

The exact scenario behind this investigation: the base user-flow map was rewritten; next_route → $state-model, the model and all 5 UX + 1 UI descendants set needs-revalidation. Note it uses the legacy top-level model_tree_ref, not per-branch model_ref.

root: alignment-page-review (v0.1, product-path: research/alignmeant) ├── 9 user-flow branches [all approved] (Orient→Review→Respond→Preview→Handoff→Verify) │ model_tree_ref → model-tree-…yaml [needs-revalidation] └── ux_variations (5) [ALL needs-revalidation] ├── trust-first-review-page │ └── ui-exp trust-first [needs-revalidation] (was approved under prior flow) ├── change-first-revision-workspace · guided-approval-wizard └── operator-console · agent-handoff-lineage-flow next_route: $state-model alignment-page-review ← the correct post-approval route

C — Broad fan-out · gblock-party-redux/design/flow-tree-personal-workstation.yaml (schema v0.1, flat)

Seven user-flow branches, only one with UX variations grown. Uses the older branch schema (flow_paths, screens, ux_variations_status, decision) and routes through the deprecated consolidate-variations. No state-model attachment at all.

root: personal-workstation (v0.1, flat) route includes consolidate-variations ⚠ (deprecated) ├── onboarding [not-started] ├── monitoring-start [in-progress] ← 5 UX variations (proposed) │ ├── v1-operator-console v2-card-mosaic(baseline) v3-kanban-pipeline │ └── v4-command-first v5-glanceable-stream recommended_next: v2-card-mosaic ├── approval · recovery · device-handoff · diff-review · settings [all not-started] (no model_ref / model_tree_ref on any branch) + 6 open_questions, proposed_flowmap_amendment pending

D — Pre-v0.1 schema · omega-war/design/unthinkable/flow-tree-tactical-battle.yaml (no schema_version, product-path)

An older structural shape: root → parent_user_flow → ux_variations (single flow, no branches[] array), branch_routing instead of the deterministic priority stack, and a build plan that references UX variations (tactical-entry-demo, after-action-demo) that do not exist in the ux_variations list.

root: unthinkable → parent_user_flow: tactical-battle (no schema_version) └── ux_variations (5) ├── guided-battle-drill [planned] recommended_for_ui_interview ✓ ├── deployment-plan-first [ui_approved] → UI review approved → built └── commanders-… · map-first-… · resilient-skirmish-loop [planned, deferred] prototype_build_plan: 3 built, 4 deferred ⚠ items reference ux_variations 'tactical-entry-demo' & 'after-action-demo' — absent from ux_variations[]

5. Gaps & issues in the real trees (fixes proposed, not applied)

Findings mapped to evidence and a suggested fix. No fixes were implemented — this section is the proposal record only.

#TreeGap / issueEvidenceSuggested fix (not applied)Sev
G1Convention"stop after confirmation" rendered as a post-approval route option with no canonical next-stepalignment-page-convention.md:69 lists the gate type but no option setAdd a canonical post-approval-route option set to the convention: (a) continue next route now, (b) clear context then run next route, (c) revalidation pause → state-model. Forbid a bare "stop" with no route.High
G2B alignmeantUses legacy top-level model_tree_ref, not per-branch model_ref — convention marks the top-level pointer back-compat onlyconvention §1 "primary linkage is branches[].model_ref"; tree has model_tree_ref onlyOn the pending state-model revalidation, attach model_ref per user-flow branch; retain top-level pointer only as back-compat.Med
G3B alignmeant9 user-flow branches still approved while the base flow was rewritten — descendants are stale but parents not re-markedrevision summary changes the base process; branches keep status: approvedConfirm whether the 9 branches survived the rewrite verbatim; if the base process changed, mark affected user-flow branches for re-confirmation, not just UX/UI descendants.Med
G4C gblockRoute array contains deprecated consolidate-variations instead of consolidate-prototypesroute: list line; alias is deprecated: trueUpdate the route tuple to consolidate-prototypes so the manifest matches the live skill.Med
G5C gblockNo domain model anywhere; ux-variations already in-progress though convention requires model_ref confirmed firstconvention §6 "ux-variations requires the branch's model_ref confirmed"; no model node existsRun state-model personal-workstation for at least the monitoring-start branch before its UX variations are approved; backfill model_ref.Med
G6C gblockproposed_flowmap_amendment (merge S5/S6) parked unresolved — UX variations built on a flow map the run itself flags as needing edittree note: "Pending flow-map owner acceptance — do not silently edit approved flow-map"Resolve the amendment through user-flow-map (accept/reject the S5/S6 merge) before approving the 5 UX specs that depend on it.Med
G7D omega-warBuild-plan items cite UX variations absent from ux_variations[] (tactical-entry-demo, after-action-demo)prototype_build_plan.items[].source_ux_variation has no matching ux_variations[].idEither add the two demo variations as real ux_variations nodes, or relabel the build items as derived demo artifacts of deployment-plan-first so every build item traces to a real branch.High
G8D omega-warPre-branches[] shape (root→parent_user_flow→ux_variations) + branch_routing instead of deterministic priority stack; no schema_versionconvention §1 node types + §3 deterministic branch selection; manifest predates bothMigrate to the branches[] + schema_version: v0.3 shape with journey_sequence/evaluation_priority so deterministic selection applies.Med
G9All real treesSchema drift: three different schema versions in flight (v0.1 ×2, none, vs v0.3 sample)headers across the four manifestsProvide a one-shot manifest migrator (sample v0.3 is the target) and run it per repo; out of scope for this investigation.Low

6. Gate: the corrected post-approval route

Post-Approval Route (corrected) — required

After a canonical base-flow rewrite and confirmed page update, what should happen? (Replaces the degenerate "stop after confirmation" option.)

The defect was treating the third/fourth ideas as one "stop." Clearing context is a session choice; the route is still state-model. A true terminal stop is a separate, rarely-correct answer.

Under the §2 proposal, state-model is a mandatory route step rather than a skippable sibling — which makes "the route is state-model" structurally guaranteed here, not a recommendation the gate had to reconstruct. The gate options themselves are unchanged.

Scope / fixes gate — required

This page proposes fixes (§5) but applied none. Which should become tracked work?

7. Compile responses

When you've answered the gates above, compile to YAML for the agent to consume.

Awaiting answers…

Evidence sources: docs/design-tree-loop-convention.md, docs/skill-next-step-contracts.md, docs/alignment-page-convention.md; flow-tree manifests in agentic-skills, alignmeant, gblock-party-redux, omega-war; SKILL.md audit of 11 prototype-phase skills.