buildanything 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +9 -1
- package/README.md +57 -61
- package/agents/a11y-architect.md +2 -0
- package/agents/briefing-officer.md +172 -0
- package/agents/business-model.md +14 -12
- package/agents/code-architect.md +6 -1
- package/agents/code-reviewer.md +3 -2
- package/agents/code-simplifier.md +12 -4
- package/agents/design-brand-guardian.md +19 -0
- package/agents/design-critic.md +16 -11
- package/agents/design-inclusive-visuals-specialist.md +2 -0
- package/agents/design-ui-designer.md +17 -0
- package/agents/design-ux-architect.md +15 -0
- package/agents/design-ux-researcher.md +102 -7
- package/agents/engineering-ai-engineer.md +2 -0
- package/agents/engineering-backend-architect.md +2 -0
- package/agents/engineering-data-engineer.md +2 -0
- package/agents/engineering-devops-automator.md +2 -0
- package/agents/engineering-frontend-developer.md +13 -0
- package/agents/engineering-mobile-app-builder.md +2 -0
- package/agents/engineering-rapid-prototyper.md +15 -2
- package/agents/engineering-security-engineer.md +2 -0
- package/agents/engineering-senior-developer.md +13 -0
- package/agents/engineering-sre.md +2 -0
- package/agents/engineering-technical-writer.md +2 -0
- package/agents/feature-intel.md +8 -7
- package/agents/ios-app-review-guardian.md +2 -0
- package/agents/ios-foundation-models-specialist.md +2 -0
- package/agents/ios-product-reality-auditor.md +292 -0
- package/agents/ios-storekit-specialist.md +2 -0
- package/agents/ios-swift-architect.md +1 -0
- package/agents/ios-swift-search.md +1 -0
- package/agents/ios-swift-ui-design.md +7 -4
- package/agents/marketing-app-store-optimizer.md +2 -0
- package/agents/planner.md +6 -1
- package/agents/pr-test-analyzer.md +3 -2
- package/agents/product-feedback-synthesizer.md +62 -0
- package/agents/product-owner.md +163 -0
- package/agents/product-reality-auditor.md +216 -0
- package/agents/product-spec-writer.md +176 -0
- package/agents/refactor-cleaner.md +9 -1
- package/agents/security-reviewer.md +2 -1
- package/agents/silent-failure-hunter.md +2 -1
- package/agents/swift-build-resolver.md +2 -0
- package/agents/swift-reviewer.md +2 -1
- package/agents/tech-feasibility.md +5 -3
- package/agents/testing-api-tester.md +2 -0
- package/agents/testing-evidence-collector.md +24 -0
- package/agents/testing-performance-benchmarker.md +2 -0
- package/agents/testing-reality-checker.md +2 -1
- package/agents/visual-research.md +7 -5
- package/bin/adapters/scribe-tool.ts +4 -2
- package/bin/adapters/write-lease-tool.ts +1 -1
- package/bin/buildanything-runtime.ts +20 -107
- package/bin/graph-index.js +24 -0
- package/bin/graph-index.ts +340 -0
- package/bin/mcp-servers/graph-mcp.js +26 -0
- package/bin/mcp-servers/graph-mcp.ts +481 -0
- package/bin/mcp-servers/orchestrator-mcp.js +26 -0
- package/bin/mcp-servers/orchestrator-mcp.ts +361 -0
- package/bin/setup.js +272 -111
- package/commands/build.md +371 -158
- package/commands/idea-sweep.md +2 -2
- package/commands/setup.md +15 -4
- package/commands/ux-review.md +3 -3
- package/commands/verify.md +3 -0
- package/docs/migration/phase-graph.yaml +573 -157
- package/hooks/design-md-lint +4 -0
- package/hooks/design-md-lint.ts +295 -0
- package/hooks/pre-tool-use.ts +37 -6
- package/hooks/record-mode-transitions.ts +63 -6
- package/hooks/subagent-start.ts +3 -2
- package/package.json +3 -1
- package/protocols/agent-prompt-authoring.md +165 -0
- package/protocols/architecture-schema.md +10 -3
- package/protocols/cleanup.md +4 -0
- package/protocols/decision-log.md +8 -4
- package/protocols/design-md-authoring.md +520 -0
- package/protocols/design-md-spec.md +362 -0
- package/protocols/fake-data-detector.md +1 -1
- package/protocols/ios-fake-data-detector.md +65 -0
- package/protocols/ios-phase-branches.md +112 -27
- package/protocols/launch-readiness.md +9 -5
- package/protocols/metric-loop.md +1 -1
- package/protocols/page-spec-schema.md +234 -0
- package/protocols/product-spec-schema.md +354 -0
- package/protocols/sprint-tasks-schema.md +53 -0
- package/protocols/state-schema.json +38 -3
- package/protocols/state-schema.md +32 -2
- package/protocols/verify.md +29 -1
- package/protocols/web-phase-branches.md +234 -64
- package/skills/ios/ios-bootstrap/SKILL.md +1 -1
- package/src/graph/ids.ts +86 -0
- package/src/graph/index.ts +32 -0
- package/src/graph/parser/architecture.ts +603 -0
- package/src/graph/parser/component-manifest.ts +268 -0
- package/src/graph/parser/decisions-jsonl.ts +407 -0
- package/src/graph/parser/design-md-pass2.ts +253 -0
- package/src/graph/parser/design-md.ts +477 -0
- package/src/graph/parser/page-spec.ts +496 -0
- package/src/graph/parser/product-spec.ts +930 -0
- package/src/graph/parser/screenshot.ts +342 -0
- package/src/graph/parser/sprint-tasks.ts +317 -0
- package/src/graph/storage/index.ts +1154 -0
- package/src/graph/types.ts +432 -0
- package/src/graph/util/dhash.ts +84 -0
- package/src/lrr/aggregator.ts +105 -10
- package/src/orchestrator/hooks/context-header.ts +34 -10
- package/src/orchestrator/hooks/token-accounting.ts +25 -14
- package/src/orchestrator/mcp/cycle-counter.ts +2 -1
- package/src/orchestrator/mcp/scribe.ts +27 -16
- package/src/orchestrator/mcp/write-lease.ts +30 -13
- package/src/orchestrator/phase4-shared-context.ts +20 -4
- package/protocols/visual-dna.md +0 -185
|
@@ -10,14 +10,14 @@ Every `subagent_type:` dispatch in this file prepends a CONTEXT header to its pr
|
|
|
10
10
|
CONTEXT:
|
|
11
11
|
project_type: web
|
|
12
12
|
phase: <resolved: current phase number>
|
|
13
|
-
dna: <resolved:
|
|
13
|
+
dna: <resolved: 7-axis Brand DNA values extracted from `DESIGN.md` `## Overview > ### Brand DNA` block — NOT the full file content, just the axis values. Include only if phase >= 3 AND DESIGN.md exists>
|
|
14
14
|
|
|
15
15
|
TASK:
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**Resolution rules:**
|
|
19
|
-
- `dna` = the
|
|
20
|
-
- Phase 3 Step 3.0 (Visual DNA Selection) is the ONE exception — it runs BEFORE `
|
|
19
|
+
- `dna` = the 7 axis values only (Scope, Density, Character, Material, Motion, Type, Copy) extracted from `DESIGN.md` `## Overview > ### Brand DNA` — NOT the full `DESIGN.md` content. ~100 tokens, not ~5K.
|
|
20
|
+
- Phase 3 Step 3.0 (Visual DNA Selection) is the ONE exception — it runs BEFORE `DESIGN.md` exists, so its CONTEXT omits `dna`.
|
|
21
21
|
- The rendered header is a stable prefix — it does not change between dispatches within a phase.
|
|
22
22
|
|
|
23
23
|
Individual dispatches below reference `[CONTEXT header above]` and rely on this rendered template.
|
|
@@ -30,29 +30,57 @@ Before the Quality Gate 2 approval prompt in `commands/build.md` is rendered, di
|
|
|
30
30
|
|
|
31
31
|
Call the Agent tool once:
|
|
32
32
|
|
|
33
|
-
1. Description: "Visual DNA directional preview" — subagent_type: `design-brand-guardian` — prompt: "[CONTEXT header above — phase: 2. NOTE: `dna` is omitted — this step produces the preview, not the lock.] Read `docs/plans/design-doc.md` (#persona, #scope, #voice), `docs/plans/findings-digest.md` (reference signals), and `docs/plans/architecture.md` (stack constraints). Emit a 3-5 bullet DIRECTIONAL preview of the intended Visual DNA — brand read in one line, then proposed leanings on Scope, Character, Material/Motion, and Type. NO rationale paragraphs, NO reference citations, NO incompatibility-matrix work. This is a sanity-check for the user at Gate 2, not the locked card. Save to `docs/plans/visual-dna-preview.md` as a flat bullet list. Target 150 tokens of output, max 250."
|
|
33
|
+
1. Description: "Visual DNA directional preview" — subagent_type: `design-brand-guardian` — prompt: "[CONTEXT header above — phase: 2. NOTE: `dna` is omitted — this step produces the preview, not the lock.] Read `docs/plans/design-doc.md` (#persona, #scope, #voice), `docs/plans/phase1-scratch/findings-digest.md` (reference signals), and `docs/plans/architecture.md` (stack constraints). Emit a 3-5 bullet DIRECTIONAL preview of the intended Visual DNA — brand read in one line, then proposed leanings on Scope, Character, Material/Motion, and Type. NO rationale paragraphs, NO reference citations, NO incompatibility-matrix work. This is a sanity-check for the user at Gate 2, not the locked card. Save to `docs/plans/visual-dna-preview.md` as a flat bullet list. Target 150 tokens of output, max 250."
|
|
34
34
|
|
|
35
35
|
Output: `docs/plans/visual-dna-preview.md` — surfaced by the orchestrator in the Gate 2 prompt alongside Architecture + Sprint Task List. Phase 3.0 Brand Guardian re-invokes to produce the full locked 6-axis card; the preview is discarded after Gate 2 approval.
|
|
36
36
|
|
|
37
37
|
## Phase 3 — Design (web branch)
|
|
38
38
|
|
|
39
|
-
**Goal:** Lock
|
|
39
|
+
**Goal:** Lock the 7-axis Brand DNA inside `DESIGN.md` Pass 1, then compose — not reconstruct — the product's visual system from a vendored component library, then complete `DESIGN.md` Pass 2 with full tokens + prose. Every downstream step reads `DESIGN.md`. Compositional beats reconstructive for visual quality. Fully autonomous.
|
|
40
40
|
|
|
41
41
|
**Skip if** the project has no user-facing frontend (CLI tools, pure APIs, backend services).
|
|
42
42
|
|
|
43
|
-
HARD-GATE: UI/UX IS THE PRODUCT. This phase is a full peer to Architecture and Build — not a footnote, not an afterthought, not a "nice to have." Do NOT skip, compress, or rush this phase for any reason. Brand Guardian MUST
|
|
43
|
+
HARD-GATE: UI/UX IS THE PRODUCT. This phase is a full peer to Architecture and Build — not a footnote, not an afterthought, not a "nice to have." Do NOT skip, compress, or rush this phase for any reason. Brand Guardian MUST author Pass 1 of `DESIGN.md` (Overview + Brand DNA + Do's and Don'ts) at Step 3.0 before any other agent runs. Every downstream step reads `DESIGN.md`. The `/design-system` route must be rendered and iterated with Playwright-verified feedback from the Design Critic before a single line of product code is written. Phase 4 (Build) Step 4.0 Scaffold WILL NOT START without `DESIGN.md` complete (Pass 2 finished). If missing or incomplete, return here.
|
|
44
44
|
|
|
45
45
|
HARD-GATE: **Compositional not reconstructive.** From Step 3.2 onward, every visual element that has a library variant MUST be mapped to that variant in `docs/plans/component-manifest.md`. Writing components from scratch when the library covers the case is a HARD-GATE violation that the cleanup agent will revert.
|
|
46
46
|
|
|
47
|
-
### Step 3.0 —
|
|
47
|
+
### Step 3.0 — DESIGN.md Pass 1 — Brand DNA + Overview + Do's and Don'ts (single agent)
|
|
48
48
|
|
|
49
|
-
Dispatch a single agent to
|
|
49
|
+
Dispatch a single agent to author Pass 1 of `DESIGN.md` (repo root). Pass 1 locks the 7-axis Brand DNA, writes the Overview prose, and seeds the Do's and Don'ts. Pass 2 (token + remaining prose) lands at Step 3.4.
|
|
50
50
|
|
|
51
51
|
Call the Agent tool once:
|
|
52
52
|
|
|
53
|
-
1. Description: "
|
|
53
|
+
1. Description: "DESIGN.md Pass 1 — Brand DNA + Overview" — subagent_type: `design-brand-guardian` — prompt: "[CONTEXT header above — phase: 3. NOTE: Step 3.0 omits `dna` because this step PRODUCES it.] You are the Brand Guardian authoring Pass 1 of `DESIGN.md`. The format is specified by `protocols/design-md-spec.md` (vendored). The pipeline contract is in `protocols/design-md-authoring.md`. Read both before writing.
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Inputs (Read tool): `docs/plans/product-spec.md` (## App Overview for product identity, ## Screen Inventory for what screens exist, ## Permissions & Roles for complexity level — a dense admin panel needs different DNA than a simple consumer app), `docs/plans/design-doc.md` (product concept, user, voice), `docs/plans/phase1-scratch/findings-digest.md` (reference sites the user mentioned, competitor aesthetic landscape), `docs/plans/architecture.md` (stack constraints — e.g. server-rendered Rails can't ship Three.js), `docs/plans/quality-targets.json` (perf budget constrains motion and material choices), `docs/plans/phase1-scratch/user-decisions.md`.
|
|
56
|
+
|
|
57
|
+
Lock the 7-axis Brand DNA per `protocols/design-md-authoring.md` §3 (incompatibility matrix). The 7 axes: **Scope** (Marketing / Product / Dashboard / Internal Tool), **Density** (Airy / Balanced / Dense), **Character** (Minimal / Editorial / Maximalist / Brutalist / Playful), **Material** (Flat / Glassy / Physical / Neumorphic), **Motion** (Still / Subtle / Expressive / Cinematic), **Type** (Neutral Sans / Humanist Sans / Serif-forward / Display-forward / Mono-accented), **Copy** (Functional / Narrative / Punchy / Technical). You are FORBIDDEN from picking illegal combinations from the §3 matrix.
|
|
58
|
+
|
|
59
|
+
Write `DESIGN.md` at the **repository root** (NOT under `docs/plans/`) using the Pass 1 skeleton in `protocols/design-md-authoring.md` §5:
|
|
60
|
+
- YAML front matter: `version: alpha`, `name: <Brand Name>`. Leave colors/typography/rounded/spacing/components empty for Pass 2.
|
|
61
|
+
- `## Overview` with 2-4 paragraph brand description.
|
|
62
|
+
- `### Brand DNA` h3 subsection listing all 7 axis values.
|
|
63
|
+
- `### Rationale` h3 with 4-8 sentences citing design-doc.md sections + findings-digest signals.
|
|
64
|
+
- `### Locked At` h3 with `locked_at` (ISO-8601, single-write), `locked_by: design-brand-guardian`, `build_session`.
|
|
65
|
+
- `### References` h3 with at least 2 entries, each tied to specific axis pairs.
|
|
66
|
+
- `## Colors`, `## Typography`, `## Layout`, `## Elevation & Depth`, `## Shapes`, `## Components` — present as headings with `<!-- Pass 2 — UI Designer at Step 3.4 -->` placeholder body. Section ORDER matters; the linter enforces it.
|
|
67
|
+
- `## Do's and Don'ts` with at least 4 bullets (≥2 Do, ≥2 Don't), enforcing the anti-slop gates in §4 of the authoring protocol against the user's references.
|
|
68
|
+
|
|
69
|
+
Apply the anti-slop gates from `protocols/design-md-authoring.md` §4 (font hard-ban, font overuse-ban, AI-slop pattern ban, Copy axis validation). When the user's references push toward a forbidden choice, reject it, pick the closest legal alternative, and emit a decision-log row naming the rejection.
|
|
70
|
+
|
|
71
|
+
Output: `DESIGN.md` at repo root. Every downstream Phase 3 step reads this file."
|
|
72
|
+
|
|
73
|
+
Output: `DESIGN.md` (repo root) — Pass 1. Step 3.4 completes Pass 2.
|
|
74
|
+
|
|
75
|
+
#### Step 3.0.idx — DESIGN.md Pass 1 graph index
|
|
76
|
+
|
|
77
|
+
After `design-brand-guardian` returns and `DESIGN.md` is on disk, index it into the build graph. Slice 2 graph index — required for downstream agents.
|
|
78
|
+
|
|
79
|
+
Run via the Bash tool:
|
|
80
|
+
|
|
81
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js DESIGN.md`
|
|
82
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
83
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
56
84
|
|
|
57
85
|
### Step 3.1 — Visual Research (2 agents, parallel, both Playwright-driven)
|
|
58
86
|
|
|
@@ -60,37 +88,94 @@ Research is now goal-directed — validate and enrich the locked DNA, not catalo
|
|
|
60
88
|
|
|
61
89
|
Call the Agent tool 2 times in one message:
|
|
62
90
|
|
|
63
|
-
1. Description: "Competitive visual audit" — subagent_type: `visual-research` — prompt: "[CONTEXT header above — phase: 3] Mode: `competitive-audit`. Read `
|
|
91
|
+
1. Description: "Competitive visual audit" — subagent_type: `visual-research` — prompt: "[CONTEXT header above — phase: 3] Mode: `competitive-audit`. Read `DESIGN.md` (`## Overview > ### Brand DNA`) to understand the locked DNA. Find 5-8 rival UIs that exemplify the chosen DNA axes (NOT all competitors — only ones that nail the axes we chose). Use Playwright to screenshot each at desktop 1920x1080 and mobile 375x812. For each site, analyze which DNA axes it nails and which it doesn't. Save screenshots to `docs/plans/design-references/competitors/`. Append findings to `docs/plans/design-references.md` grouped by DNA axis (motion refs, material refs, typography refs, character refs, density refs). Optional caller-supplied competitor URLs: [list or 'none']."
|
|
64
92
|
|
|
65
|
-
2. Description: "Design inspiration mining" — subagent_type: `visual-research` — prompt: "[CONTEXT header above — phase: 3] Mode: `inspiration-mining`. Read `
|
|
93
|
+
2. Description: "Design inspiration mining" — subagent_type: `visual-research` — prompt: "[CONTEXT header above — phase: 3] Mode: `inspiration-mining`. Read `DESIGN.md` (`## Overview > ### Brand DNA`). Search Awwwards.com, Godly.website, and SiteInspire for award-winning sites that match the DNA axes. Use Playwright to screenshot the top 5-8 results at desktop 1920x1080 and mobile 375x812. Save to `docs/plans/design-references/inspiration/`. Append findings to `docs/plans/design-references.md` grouped by DNA axis. Tag every reference with the specific axis (or axes) it validates."
|
|
66
94
|
|
|
67
95
|
Output: `docs/plans/design-references.md` — reference paths grouped by DNA axis, ready to feed Step 3.2 component mapping and Step 3.6 critic scoring.
|
|
68
96
|
|
|
97
|
+
#### Step 3.1.idx — Design references graph index
|
|
98
|
+
|
|
99
|
+
After both `visual-research` agents return and `docs/plans/design-references/` is populated with screenshots, index the directory into the build graph as Slice 5 reference fragments. Required for downstream agents.
|
|
100
|
+
|
|
101
|
+
Run via the Bash tool:
|
|
102
|
+
|
|
103
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/design-references/`
|
|
104
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
105
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
106
|
+
|
|
69
107
|
### Step 3.2 — Component Library Mapping (single agent, HARD-GATE source)
|
|
70
108
|
|
|
71
109
|
This is the compositional step. The Visual Designer picks specific library component variants for every slot the product needs, using the static DNA→variant catalog as its source of truth. The output is a locked manifest that Phase 4 implementers MUST import from.
|
|
72
110
|
|
|
73
111
|
Call the Agent tool once:
|
|
74
112
|
|
|
75
|
-
1. Description: "Component library mapping" — subagent_type: `design-ui-designer` — prompt: "[CONTEXT header above — phase: 3] Read `docs/plans/
|
|
113
|
+
1. Description: "Component library mapping" — subagent_type: `design-ui-designer` — prompt: "[CONTEXT header above — phase: 3] Read `DESIGN.md` (`## Overview > ### Brand DNA` for axis values; `### References` for reference paths), `docs/plans/design-references.md`, `docs/plans/product-spec.md` (## Screen Inventory for what screens exist, per-feature States and Empty/Loading/Error States sections for what component states are needed — e.g. a feature with 7 states needs more component variants than one with 3), and `docs/library-refs/component-library-catalog.md` (the static reference mapping DNA-axis combinations to library component variants). Pick specific component variants for each slot the product needs: hero, cards, cta, nav, marquee, chart, 3D, form elements, modals. The catalog is authoritative — when the DNA matches a row, use the variants that row specifies; do not reinvent. Write `docs/plans/component-manifest.md` with the locked component picks, one row per slot, naming the library and the variant. For any slot the catalog doesn't cover, emit a row tagged 'manifest gap' with a short fallback plan (stock shadcn primitive plus notes)."
|
|
76
114
|
|
|
77
115
|
Output: `docs/plans/component-manifest.md` — locked component manifest.
|
|
78
116
|
|
|
79
117
|
**HARD-GATE:** Phase 4 implementers MUST import from this manifest. Writing components from scratch when the manifest names one is a HARD-GATE violation. The cleanup agent will flag and revert custom-written components that have a manifest entry. See the Phase 4 HARD-GATE block below.
|
|
80
118
|
|
|
119
|
+
#### Step 3.2.idx — Component manifest graph index
|
|
120
|
+
|
|
121
|
+
After `design-ui-designer` returns and `docs/plans/component-manifest.md` is on disk, index it into the build graph. Slice 2 graph index — required for downstream agents.
|
|
122
|
+
|
|
123
|
+
Run via the Bash tool:
|
|
124
|
+
|
|
125
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/component-manifest.md`
|
|
126
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
127
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
128
|
+
|
|
81
129
|
### Step 3.2b — DNA Persona Check
|
|
82
130
|
|
|
83
|
-
Call the Agent tool — description: "DNA persona check" — subagent_type: design-ux-researcher — prompt: "[CONTEXT header above — phase: 3] Read
|
|
131
|
+
Call the Agent tool — description: "DNA persona check" — subagent_type: design-ux-researcher — prompt: "[CONTEXT header above — phase: 3] Read `DESIGN.md` (the full Pass 1 — `## Overview` including `### Brand DNA` is the locked 7-axis card and `### Rationale` explains why those axes were chosen) + docs/plans/design-doc.md (#persona and #jobs-to-be-done sections) + docs/plans/product-spec.md (## App Overview and per-feature Persona Constraints sections — these carry the specific behavioral patterns from research, e.g. 'user scans, doesn't read') + docs/plans/phase1-scratch/findings-digest.md. Validate: do the locked DNA axes actually serve this persona and these jobs-to-be-done? Cross-check each DNA axis against the persona's context (e.g., if persona is 'senior enterprise buyer on a tight schedule' but DNA chose Maximalist + Cinematic, that's wrong — Enterprise/Minimal/Subtle fits better). Report any DNA-persona mismatches. If mismatches found, the Brand Guardian may need to re-author DESIGN.md Pass 1 (backward edge to Step 3.0). Save findings to docs/plans/dna-persona-check.md."
|
|
84
132
|
|
|
85
|
-
### Step 3.3 — UX Architecture (single agent)
|
|
133
|
+
### Step 3.3 — UX Architecture + Page Layouts (single agent)
|
|
86
134
|
|
|
87
|
-
Structural design must align to the locked DNA — a Dense layout behaves differently from an Airy layout even for the same user flow.
|
|
135
|
+
Structural design must align to the locked DNA — a Dense layout behaves differently from an Airy layout even for the same user flow. This step produces BOTH the UX architecture (flows, navigation, IA) AND per-screen page specs with ASCII wireframes. Flows and layouts inform each other — a checkout flow might be 2 steps or 3 depending on what fits spatially, and a sidebar nav only makes sense if the screen count warrants it.
|
|
88
136
|
|
|
89
137
|
Call the Agent tool once:
|
|
90
138
|
|
|
91
|
-
1. Description: "UX architecture" — subagent_type: `design-ux-architect` — prompt: "[CONTEXT header above — phase: 3] Read
|
|
139
|
+
1. Description: "UX architecture + page layouts" — subagent_type: `design-ux-architect` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 3] Read the page spec schema at `protocols/page-spec-schema.md` before writing. Then read these inputs via your Read tool:
|
|
140
|
+
- Product spec: `docs/plans/product-spec.md` (FULL document — this is your source of truth. Screen Inventory is your screen list. Per-feature sections define what each screen does, what data it shows, what states exist, what errors look like, persona constraints, business rules)
|
|
141
|
+
- Visual DNA: `DESIGN.md` `## Overview > ### Brand DNA` (Density axis drives layout — Airy = generous whitespace, Dense = compact data. Character and Motion axes shape navigation transitions and interaction patterns)
|
|
142
|
+
- Components: `docs/plans/component-manifest.md` (which library components for which slots — use these in your wireframes)
|
|
143
|
+
- Frontend architecture: `docs/plans/architecture.md#frontend` (component hierarchy, routing, state management)
|
|
144
|
+
- API contracts: `docs/plans/architecture.md#backend/api` (what data is available from each endpoint)
|
|
145
|
+
- Design references: `docs/plans/design-references/` (competitor/inspiration screenshots for layout reference)
|
|
146
|
+
- PRD: `docs/plans/design-doc.md` (#persona, #jobs-to-be-done, #scope)
|
|
92
147
|
|
|
93
|
-
|
|
148
|
+
Produce TWO outputs:
|
|
149
|
+
|
|
150
|
+
**Output 1: `docs/plans/ux-architecture.md`** — information architecture, user flows (derived from product spec feature flows, not invented), navigation model, interaction patterns, responsive strategy. Map each user flow to the component-manifest slots it needs. The product spec's feature flows are your behavioral source of truth — refine and structure them into screen-to-screen journeys, don't reinvent them.
|
|
151
|
+
|
|
152
|
+
**Output 2: `docs/plans/page-specs/*.md`** — one file per screen from the Screen Inventory, following `protocols/page-spec-schema.md`. Each file includes: ASCII wireframe (desktop + mobile for web), content hierarchy with component refs from the manifest and data sources from the API contracts, key copy, responsive behavior, platform conventions, data loading strategy, and screen-specific states from the product spec.
|
|
153
|
+
|
|
154
|
+
The Density axis from DESIGN.md is your primary layout driver. Airy = generous spacing, fewer items visible per viewport. Dense = compact rows, data tables, more items per viewport. Match the density to the persona constraints from the product spec.
|
|
155
|
+
|
|
156
|
+
NOTE: The visual design spec (exact spacing values, typography ramp) does not exist yet at this step. Use the DNA Density axis for spatial decisions (airy vs dense) and the component manifest for component choices. Phase 4 implementers have specialized build skills and will apply the final token values from the visual design spec when they build — your layouts define the spatial arrangement and content hierarchy, not pixel-precise measurements."
|
|
157
|
+
|
|
158
|
+
Output: `docs/plans/ux-architecture.md` + `docs/plans/page-specs/*.md`.
|
|
159
|
+
|
|
160
|
+
#### Step 3.3.idx — Page-specs graph index
|
|
161
|
+
|
|
162
|
+
After `design-ux-architect` returns and `docs/plans/page-specs/` is populated with one .md file per screen, index the directory into the build graph. Slice 3 graph index — best-effort, BO falls back to file reads on failure.
|
|
163
|
+
|
|
164
|
+
Run via the Bash tool:
|
|
165
|
+
|
|
166
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/page-specs/`
|
|
167
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
168
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
169
|
+
|
|
170
|
+
### Step 3.3b — UX Flow Validation
|
|
171
|
+
|
|
172
|
+
Validate the UX architecture against the target persona's actual goals and jobs-to-be-done before the Visual Design Spec is built on top of it.
|
|
173
|
+
|
|
174
|
+
Call the Agent tool once:
|
|
175
|
+
|
|
176
|
+
1. Description: "UX flow validation" — subagent_type: `design-ux-researcher` — prompt: "[CONTEXT header above — phase: 3] Read `docs/plans/ux-architecture.md`, `docs/plans/page-specs/` (the ASCII wireframes — validate that layouts serve the persona), `docs/plans/product-spec.md` (per-feature Happy Path and Persona Constraints — these are the behavioral source of truth the flows must implement), `docs/plans/design-doc.md` (#persona, #jobs-to-be-done, #scope sections), and `DESIGN.md`. For each user flow in the UX architecture, walk through it as the target persona: narrate the steps, flag friction points, check if the flow serves the persona's jobs-to-be-done efficiently. Specifically check: (1) Are there screens or sections the persona doesn't need? (2) Are critical tasks reachable in the minimum number of steps? (3) Does the information hierarchy match what the persona cares about most? (4) Does the navigation pattern fit the persona's context (mobile-first for on-the-go users, sidebar for desktop power users, etc.)? (5) Does the responsive strategy degrade gracefully for the persona's primary device? Report findings to `docs/plans/ux-flow-validation.md` with pass/flag per flow. If critical flow issues are found, the UX Architect should revise `ux-architecture.md` before proceeding (backward edge to Step 3.3)."
|
|
177
|
+
|
|
178
|
+
Output: `docs/plans/ux-flow-validation.md`.
|
|
94
179
|
|
|
95
180
|
### Step 3.4 — Visual Design Spec (single agent, second Visual Designer invocation)
|
|
96
181
|
|
|
@@ -98,7 +183,7 @@ The Visual Designer re-invokes as writer this time, producing the much richer Vi
|
|
|
98
183
|
|
|
99
184
|
Call the Agent tool once:
|
|
100
185
|
|
|
101
|
-
1. Description: "Visual design spec" — subagent_type: `design-ui-designer` — prompt: "[CONTEXT header above — phase: 3] Second invocation as writer. Read `
|
|
186
|
+
1. Description: "Visual design spec" — subagent_type: `design-ui-designer` — prompt: "[CONTEXT header above — phase: 3] Second invocation as writer. Read `DESIGN.md`, `docs/plans/component-manifest.md`, `docs/plans/ux-architecture.md`, `docs/plans/design-references.md`, `docs/plans/product-spec.md` (per-feature States and Empty/Loading/Error States — the state matrix must cover every state the product spec defines, not just generic defaults), and `docs/plans/page-specs/` (the ASCII wireframes — the typography ramp and spacing scale must work for the actual page layouts, not just in isolation). Write `DESIGN.md` with ALL the following layers:
|
|
102
187
|
|
|
103
188
|
**TOKENS** (existing): color system (hex, light + dark), typography scale, spacing (8px base), shadows, radius.
|
|
104
189
|
|
|
@@ -112,13 +197,23 @@ Call the Agent tool once:
|
|
|
112
197
|
|
|
113
198
|
Every token, parameter, and rule must be derivable from the DNA card plus the design references. Cite the reference path for every non-obvious choice."
|
|
114
199
|
|
|
115
|
-
Output: `
|
|
200
|
+
Output: `DESIGN.md` — substantially richer than the prior one-layer spec.
|
|
201
|
+
|
|
202
|
+
#### Step 3.4.idx — DESIGN.md Pass 2 token re-index
|
|
203
|
+
|
|
204
|
+
After `design-ui-designer` completes Pass 2 of `DESIGN.md` (YAML front matter + Pass 2 prose sections populated), re-run the indexer on DESIGN.md. The CLI dispatch detects Pass 2 content and writes `slice-3-tokens.json` alongside the existing `slice-2-dna.json` (which is also overwritten with the latest Pass 1 state for consistency).
|
|
205
|
+
|
|
206
|
+
Run via the Bash tool:
|
|
207
|
+
|
|
208
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js DESIGN.md`
|
|
209
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
210
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
116
211
|
|
|
117
212
|
### Step 3.5 — Inclusive Visuals Check (single agent)
|
|
118
213
|
|
|
119
214
|
Call the Agent tool once:
|
|
120
215
|
|
|
121
|
-
1. Description: "Inclusive visuals check" — subagent_type: `design-inclusive-visuals-specialist` — prompt: "[CONTEXT header above — phase: 3] Read `
|
|
216
|
+
1. Description: "Inclusive visuals check" — subagent_type: `design-inclusive-visuals-specialist` — prompt: "[CONTEXT header above — phase: 3] Read `DESIGN.md`, `docs/plans/component-manifest.md`, and `DESIGN.md`. Audit for representation gaps, imagery bias, color choices that exclude colorblind users, contrast failures, and culturally-specific iconography that doesn't translate. Write findings to `docs/plans/inclusive-visuals-audit.md`."
|
|
122
217
|
|
|
123
218
|
Output: `docs/plans/inclusive-visuals-audit.md`.
|
|
124
219
|
|
|
@@ -130,15 +225,15 @@ This is the only Phase 3 step that writes code. Wrapped in a generator/critic me
|
|
|
130
225
|
|
|
131
226
|
Call the Agent tool once:
|
|
132
227
|
|
|
133
|
-
1. Description: "Build living style guide" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 3] [COMPLEXITY: L] Read `docs/plans/component-manifest.md` and `
|
|
228
|
+
1. Description: "Build living style guide" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 3] [COMPLEXITY: L] Read `docs/plans/component-manifest.md` and `DESIGN.md`. Build a `/design-system` route with rendered, interactive examples of every chosen variant from the manifest. **HARD-GATE: Import from the installed libraries. Do NOT write components from scratch when the manifest names one.** Every component must be interactive (hover, focus, transitions all work). Mobile-responsive. This ships with the product. Commit: 'feat: living style guide'."
|
|
134
229
|
|
|
135
230
|
**Metric loop wrapper** (per `protocols/metric-loop.md`):
|
|
136
231
|
|
|
137
|
-
- **Critic** — Call the Agent tool — description: "Design critic scoring pass" — subagent_type: `design-critic` — prompt: "[CONTEXT header above — phase: 3] SCORING CRITERIA CHECKLIST: [paste the checklist from `active_metric_loop.scoring_criteria_checklist` in `.build-state.json` — NOT the raw reference docs]. Capture the rendered `/design-system` route via Playwright screenshot (desktop 1920x1080 + mobile 375x812). Score the gap on **
|
|
232
|
+
- **Critic** — Call the Agent tool — description: "Design critic scoring pass" — subagent_type: `design-critic` — prompt: "[CONTEXT header above — phase: 3] SCORING CRITERIA CHECKLIST: [paste the checklist from `active_metric_loop.scoring_criteria_checklist` in `.build-state.json` — NOT the raw reference docs]. Capture the rendered `/design-system` route via Playwright screenshot (desktop 1920x1080 + mobile 375x812). Also read `docs/plans/page-specs/` to understand what page compositions these components will be used in — score components in the context of their actual usage, not just in isolation. Score the gap on **7 DNA axes** (Scope fit, Density, Character, Material, Motion, Type, Copy — 20 points each) plus **5 craft dimensions** (whitespace rhythm, visual hierarchy, motion coherence, color harmony, typographic refinement — 20 points each). Total 240. Target 195. <!-- Scoring scale: see agents/design-critic.md for authoritative thresholds --> Every finding must cite a specific element with file:line reference AND reference the checklist criteria — score a gap, not an opinion. Suggest concrete improvements ('the card padding is 16px but the checklist says Density: Airy — 32px — bump to 32px'). Iteration 1 MAY Read `docs/plans/design-references.md` for visual comparison; iteration 2+ MUST NOT unless diagnosis explicitly flags a visual-reference gap. Default verdict: NEEDS WORK. Never edit code. Max 5 iterations before exit."
|
|
138
233
|
|
|
139
234
|
- **Generator (re-invocation, iteration 2+)** — Call the Agent tool — description: "Apply critic's top issue" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt: "TARGETED FIX from metric loop diagnosis: [paste top issue from Step 3 diagnosis]. Files: [paste file paths]. Relevant criteria from checklist: [paste the specific checklist values that relate to the top issue — e.g., 'Density: Airy — 32px card padding']. Apply ONLY the top issue. Do not re-critique. Do not refactor other parts. Re-render the `/design-system` route. Return the commit SHA." NOTE: Do NOT include `[CONTEXT header above]` on iteration 2+ — the generator already has the codebase context from iteration 1. Per `protocols/metric-loop.md` Step 4 iteration-aware context rule.
|
|
140
235
|
|
|
141
|
-
- **Exit conditions:** quality target hit (score ≥
|
|
236
|
+
- **Exit conditions:** quality target hit (score ≥ 195), stall (no score improvement for 2 consecutive rounds), or max iterations (5 total).
|
|
142
237
|
|
|
143
238
|
Record the score history to `docs/plans/build-log.md` under `## Design Critic Loop`.
|
|
144
239
|
|
|
@@ -154,9 +249,11 @@ Output: `docs/plans/a11y-design-review.md`.
|
|
|
154
249
|
|
|
155
250
|
### Step 3.8 — Autonomous Quality Gate
|
|
156
251
|
|
|
157
|
-
Log to `docs/plans/build-log.md`: final screenshot paths, Design Critic score history (per-round totals plus per-axis subscores), a11y findings count by severity,
|
|
252
|
+
Log to `docs/plans/build-log.md`: final screenshot paths, Design Critic score history (per-round totals plus per-axis subscores), a11y findings count by severity, a DNA compliance score derived from the critic's 7 DNA-axis subscores, and the DESIGN.md lint result (broken-refs count, warning count, hash). No user pause.
|
|
158
253
|
|
|
159
|
-
|
|
254
|
+
DESIGN.md lint runs at this step via `hooks/design-md-lint`. Broken-refs is a hard fail and routes back to Step 3.4 with the broken ref as the focused finding. Warnings (missing-primary, contrast-ratio WCAG AA, orphaned-tokens, missing-typography, section-order) are logged to `build-log.md` and feed the Phase 3.7 a11y review's contrast escalation rules but do NOT block Phase 4.
|
|
255
|
+
|
|
256
|
+
Phase 4 HARD-GATE: web mode requires `DESIGN.md` (Pass 1 + Pass 2 complete, lint broken-refs == 0) AND `docs/plans/component-manifest.md` AND `docs/plans/page-specs/` (at least one file) to exist before Phase 4 starts. If any is missing or DESIGN.md fails the broken-refs lint, return to Phase 3.
|
|
160
257
|
|
|
161
258
|
## Phase 4 — Build (web branch)
|
|
162
259
|
|
|
@@ -176,11 +273,11 @@ Step 4.0 is three sequential dispatches: project scaffolding, design system setu
|
|
|
176
273
|
|
|
177
274
|
#### 4.0.a — Project scaffolding
|
|
178
275
|
|
|
179
|
-
Call the Agent tool — description: "Project scaffolding" — subagent_type: `engineering-rapid-prototyper` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 4] [COMPLEXITY: M] Set up the project from the architecture. Read `docs/plans/architecture.md` via your Read tool before starting. Create directory structure, dependencies, build tooling, linting config, test framework with one passing test, .gitignore, .env.example. Read `
|
|
276
|
+
Call the Agent tool — description: "Project scaffolding" — subagent_type: `engineering-rapid-prototyper` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 4] [COMPLEXITY: M] Set up the project from the architecture. Read `docs/plans/architecture.md` via your Read tool before starting. Create directory structure, dependencies, build tooling, linting config, test framework with one passing test, .gitignore, .env.example. Read `DESIGN.md` Scope axis and only install the component libraries the DNA needs — never ship Three.js for an internal admin panel. Commit: 'feat: initial scaffolding'."
|
|
180
277
|
|
|
181
278
|
#### 4.0.b — Design system setup
|
|
182
279
|
|
|
183
|
-
Call the Agent tool — description: "Design system setup" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 4] Implement the design system from the Visual Design Spec. Read `
|
|
280
|
+
Call the Agent tool — description: "Design system setup" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 4] Implement the design system from the Visual Design Spec. Read `DESIGN.md` via your Read tool before starting. Create CSS tokens matching the spec's color system, typography scale, spacing system, shadow/elevation tokens, and base layout components. The living style guide from Phase 3 is the reference implementation — components must match. Commit: 'feat: design system'."
|
|
184
281
|
|
|
185
282
|
#### 4.0.c — Acceptance test scaffolding
|
|
186
283
|
|
|
@@ -188,27 +285,55 @@ Call the Agent tool — description: "Scaffold acceptance tests" — subagent_ty
|
|
|
188
285
|
|
|
189
286
|
## Phase 4 — Build per-task flow (web branch)
|
|
190
287
|
|
|
191
|
-
These are the web-specific prompt templates for the per-task flow inside Phase 4 Step 4.1+. The orchestrator-side machinery (
|
|
288
|
+
These are the web-specific prompt templates for the per-task flow inside Phase 4 Step 4.1+. The orchestrator-side machinery (**three-tier: Product Owner → Briefing Officer → Execution Agents**, Senior Dev cleanup, code review pair, Metric Loop, Verify Service) lives in `commands/build.md` Phase 4. This section only overrides the implementer dispatch and UI-specific verification prompts.
|
|
192
289
|
|
|
193
|
-
### Wave dispatch (
|
|
290
|
+
### Wave dispatch (feature-grained, from feature-delegation-plan.json)
|
|
194
291
|
|
|
195
|
-
|
|
292
|
+
The Product Owner (Step 4.1) groups features into waves and writes `docs/plans/feature-delegation-plan.json`. The orchestrator reads that plan — not sprint-tasks.md Dependencies — to determine wave membership. Each wave dispatches one Briefing Officer per feature in parallel. Within a feature, tasks run in DAG-parallel batches (topological order from the `Dependencies:` field in sprint-tasks.md — independent sibling tasks run in parallel, yielding ~30-50% wall-clock saving).
|
|
196
293
|
|
|
197
|
-
No magic parallelism cap — the dependency graph is the limit. A task that declares no dependencies runs in
|
|
294
|
+
No magic parallelism cap — the dependency graph is the limit within a feature. A task that declares no dependencies runs in the first intra-feature batch alongside every other root. A task that declares `Dependencies: T1, T2` runs in whichever batch first satisfies both.
|
|
198
295
|
|
|
199
296
|
### Step 4.1+ — Task execution overrides (web)
|
|
200
297
|
|
|
201
298
|
#### Implementer dispatch (web)
|
|
202
299
|
|
|
203
|
-
|
|
300
|
+
The Briefing Officer's feature brief specifies the agent type (`subagent_type`) for each task — the orchestrator reads it from the brief rather than deciding itself.
|
|
301
|
+
|
|
302
|
+
Call the Agent tool — description: "[task name]" — subagent_type: `[from BO brief]` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 4] [COMPLEXITY: S/M/L from sprint-tasks.md].
|
|
303
|
+
|
|
304
|
+
TASK: [task description from BO brief]
|
|
305
|
+
|
|
306
|
+
FEATURE CONTEXT:
|
|
307
|
+
[product_context from BO brief — persona constraints, business rules, key error scenarios]
|
|
308
|
+
|
|
309
|
+
PAGE LAYOUT:
|
|
310
|
+
[relevant wireframe section from page-spec, pasted from BO brief. Omit for backend-only tasks.]
|
|
311
|
+
|
|
312
|
+
COMPONENTS:
|
|
313
|
+
[component picks from BO brief — name, variant, which slot. HARD-GATE: import from manifest, do NOT write from scratch.]
|
|
204
314
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
- Backend / API / data-layer tasks → `engineering-backend-architect`
|
|
208
|
-
- AI / ML / model-integration tasks → `engineering-ai-engineer`
|
|
209
|
-
- Generalist / refactor / cross-cutting tasks → `engineering-senior-developer`
|
|
315
|
+
API CONTRACT:
|
|
316
|
+
[endpoint shape from BO brief — route, method, request/response]
|
|
210
317
|
|
|
211
|
-
|
|
318
|
+
ERROR STATES:
|
|
319
|
+
[specific failure modes from BO brief — trigger, user message, recovery]
|
|
320
|
+
|
|
321
|
+
BUSINESS RULES:
|
|
322
|
+
[concrete rules from BO brief — values, not 'configurable']
|
|
323
|
+
|
|
324
|
+
SKILLS ASSIGNED: [skill list from BO brief]
|
|
325
|
+
|
|
326
|
+
ACCEPTANCE: [criteria from BO brief]
|
|
327
|
+
|
|
328
|
+
## Prior Learnings
|
|
329
|
+
[paste contents of docs/plans/.active-learnings.md if it exists]
|
|
330
|
+
|
|
331
|
+
## Deviation Reporting
|
|
332
|
+
If your implementation deviates from the planned architecture, return a deviation_row object per protocols/decision-log.md. If no deviation, return deviation_row: null. Do NOT write decisions.jsonl directly.
|
|
333
|
+
|
|
334
|
+
For UI tasks: the living style guide at /design-system shows every component's exact styling and states — match it. Import from the manifest-named library variants (Phase 4 HARD-GATE).
|
|
335
|
+
|
|
336
|
+
Implement fully with real code and tests. Commit: 'feat: [task]'. Report what you built, files changed, and test results."
|
|
212
337
|
|
|
213
338
|
#### Metric Loop (web behavioral verification)
|
|
214
339
|
|
|
@@ -222,19 +347,19 @@ Uses agent-browser against localhost to open the app, execute the task's behavio
|
|
|
222
347
|
|
|
223
348
|
## Phase 5 — Audit (web branch)
|
|
224
349
|
|
|
225
|
-
Phase 5 in the web branch
|
|
350
|
+
Phase 5 in the web branch is split into three layers — Track A (engineering envelope: 5 parallel auditors), Track B (product reality: parallel per-feature audit driven by graph queries), and Cross-cutting (3-iteration Playwright E2E, autonomous agent-browser dogfood, fake-data detector). All findings route through the Feedback Synthesizer (Step 5.4) and Fix loop (Step 5.5). The orchestrator-side machinery (Track-A team dispatch, Track-B fan-out, synthesizer, evidence writes, fix loop) follows `commands/build.md` Phase 5 — this file carries web-branch-specific elaboration only. Reality Check and LRR Aggregation are Phase 6, not here.
|
|
226
351
|
|
|
227
|
-
### Step 5.1 —
|
|
352
|
+
### Step 5.1 — Track A: Engineering Reality (5 agents in parallel, ONE message)
|
|
228
353
|
|
|
229
|
-
Read the NFRs from `docs/plans/quality-targets.json` (and `docs/plans/sprint-tasks.md` NFR section if present). Pass the relevant NFR thresholds to each audit agent so they have concrete targets, not generic checks. The
|
|
354
|
+
Read the NFRs from `docs/plans/quality-targets.json` (and `docs/plans/sprint-tasks.md` NFR section if present). Pass the relevant NFR thresholds to each audit agent so they have concrete targets, not generic checks. The fifth auditor is the Brand Guardian drift check — it runs alongside the technical auditors to catch DNA drift before the Phase 6 LRR Brand Guardian chapter renders its verdict. Per-feature UX quality (loading states, empty states, error states, mobile responsiveness, visual consistency) is now covered feature-by-feature in Step 5.2 Track B — DO NOT add a generic UX-quality dispatch back here.
|
|
230
355
|
|
|
231
|
-
Call the Agent tool
|
|
356
|
+
Call the Agent tool 5 times in one message:
|
|
232
357
|
|
|
233
358
|
1. Description: "API testing" — subagent_type: `testing-api-tester` — Prompt: "[CONTEXT header above — phase: 5] Comprehensive API validation: all endpoints, edge cases, error responses, auth flows. NFR targets: Read `docs/plans/quality-targets.json` via your Read tool for performance and reliability thresholds. Report findings with counts."
|
|
234
359
|
|
|
235
360
|
2. Description: "Performance audit" — subagent_type: `testing-performance-benchmarker` — Prompt: "[CONTEXT header above — phase: 5] Measure response times, identify bottlenecks, flag performance issues. NFR targets: Read `docs/plans/quality-targets.json` via your Read tool for performance thresholds. Report benchmarks AGAINST these targets.
|
|
236
361
|
|
|
237
|
-
**Bundle budget per Scope axis** (read `
|
|
362
|
+
**Bundle budget per Scope axis** (read `DESIGN.md` Scope field):
|
|
238
363
|
- Marketing: 500KB gzipped (excluding images), LCP <= 2.5s
|
|
239
364
|
- Product: 300KB gzipped, LCP <= 1.8s
|
|
240
365
|
- Dashboard: 400KB gzipped, LCP <= 2.0s
|
|
@@ -246,44 +371,67 @@ Exceeding the budget by >25% auto-blocks the Phase 6 LRR SRE chapter. Budget vio
|
|
|
246
371
|
|
|
247
372
|
4. Description: "Security audit" — subagent_type: `engineering-security-engineer` — Prompt: "[CONTEXT header above — phase: 5] Security review: auth, input validation, data exposure, dependency vulnerabilities. NFR targets: Read `docs/plans/quality-targets.json` via your Read tool for security thresholds. Report findings with severity."
|
|
248
373
|
|
|
249
|
-
5. Description: "
|
|
374
|
+
5. Description: "Brand Guardian drift check" — subagent_type: `design-brand-guardian` — Prompt: "[CONTEXT header above — phase: 5] You are the Phase 5 drift check (proposed state §5 re-invite). Read `DESIGN.md` (the DNA card locked at Phase 3.0) + the actually-built pages via Playwright screenshots under `docs/plans/evidence/brand-drift/` (write production screenshots there as PNG/JPG files, one per page audited, named `<screen-id>.png`). Score whether Phase 4 implementers stayed true to the DNA or drifted away from it. Specifically check each of the 6 DNA axes (Scope / Density / Character / Material / Motion / Type) against what the built product actually renders. Report drift count and specific elements (file:line references). Save findings to `docs/plans/evidence/brand-drift.md`. This is a drift check only — the Phase 6 LRR Brand Guardian chapter does the verdict. You do NOT issue a pass/fail here, only surface findings for the LRR chapter to read."
|
|
375
|
+
|
|
376
|
+
#### Step 5.1.idx — Brand drift screenshots graph index
|
|
250
377
|
|
|
251
|
-
|
|
378
|
+
After `design-brand-guardian` returns and `docs/plans/evidence/brand-drift/` is populated with production screenshots, index the directory into the build graph as Slice 5 brand-drift fragments. Best-effort, the LRR Brand chapter falls back to direct file reads on failure.
|
|
252
379
|
|
|
253
|
-
|
|
380
|
+
Run via the Bash tool:
|
|
254
381
|
|
|
255
|
-
|
|
382
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/evidence/brand-drift/`
|
|
383
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
384
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
256
385
|
|
|
257
|
-
### Step 5.
|
|
386
|
+
### Step 5.2 — Track B: Product Reality (parallel per-feature, ONE message)
|
|
258
387
|
|
|
259
|
-
|
|
388
|
+
Track B audits the built app against `product-spec.md` on a per-feature basis. The orchestrator-side dispatch shape (feature enumeration via the graph, zero-feature gate, parallel `product-reality-auditor` fan-out, post-dispatch evidence verification) is canonically described in `commands/build.md` Step 5.2 — follow that for orchestration. This section adds web-branch-specific elaboration.
|
|
260
389
|
|
|
261
|
-
|
|
390
|
+
**What the auditor does** (per-feature, in parallel): synthesizes agent-browser scripts from the graph slice (states, transitions, business rules, happy path, persona constraints, page-spec wiring, manifest coverage), executes them against the running web app, captures screenshots, and writes structured evidence. The auditor's contract is in `agents/product-reality-auditor.md`. The seven check classes (a–g) and the routing table live there — do not paraphrase them here.
|
|
262
391
|
|
|
263
|
-
|
|
392
|
+
**Web-branch specifics:**
|
|
393
|
+
- The running app is at `http://localhost:[port]` (orchestrator must have the dev server running before Step 5.2 — same as for E2E/dogfood at Step 5.3).
|
|
394
|
+
- agent-browser is the primary execution surface; Playwright loaded via the Skill tool is the fallback (one retry total).
|
|
395
|
+
- Screenshots and per-case evidence land under `docs/plans/evidence/product-reality/{feature_id}/screenshots/`. Each case_id maps 1:1 to a PNG file (or `screenshot: null` for non-visual checks like manifest-slot-empty).
|
|
396
|
+
- The four evidence files per feature (`tests-generated.md`, `results.json`, `findings.json`, `coverage.json`) are written by the auditor; the orchestrator verifies their presence + JSON parseability per `commands/build.md` Step 5.2 post-dispatch verification.
|
|
397
|
+
- Failure modes (graph queries fail, graph layer absent, agent-browser unavailable, dev server not running, feature has no screens) are owned by the auditor — see `agents/product-reality-auditor.md` §Failure Modes. This file does not duplicate them.
|
|
264
398
|
|
|
265
|
-
|
|
399
|
+
**Failure routing:** Track B auditor failures route through the existing fix-loop spec-gap path (`target_phase: 1, target_task_or_step: "1.6"` to `product-spec-writer`) — see `commands/build.md` Step 5.2 post-dispatch verification for the escalation flow.
|
|
266
400
|
|
|
267
|
-
|
|
401
|
+
#### Step 5.2.idx — Track B evidence graph index
|
|
268
402
|
|
|
269
|
-
|
|
403
|
+
After all per-feature `product-reality-auditor` dispatches return and `docs/plans/evidence/product-reality/*/` is populated, index the directory into the build graph.
|
|
404
|
+
|
|
405
|
+
Run via the Bash tool:
|
|
406
|
+
|
|
407
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/evidence/product-reality/`
|
|
408
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
409
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
410
|
+
|
|
411
|
+
### Step 5.3 — Cross-cutting (3 parallel, ONE message)
|
|
412
|
+
|
|
413
|
+
Three checks run in parallel as a cross-cutting layer: 3-iteration Playwright E2E for multi-feature User Journeys, autonomous agent-browser dogfood for emergent issues, and the fake-data detector. The orchestrator fires THREE Agent dispatches in one message — the E2E one runs all 3 iterations internally (see Step 5.3a "Where this runs"). Dispatch shape canonicalized in `commands/build.md` Step 5.3.
|
|
414
|
+
|
|
415
|
+
#### Step 5.3a — E2E Testing (3 mandatory iterations)
|
|
416
|
+
|
|
417
|
+
**Where this runs:** The orchestrator fires ONE Agent dispatch (description: "E2E runner") at Step 5.3 alongside dogfood and fake-data — three parallel agents in one message. The three iterations below run INSIDE that single E2E runner agent, sequentially. The runner agent reads this section as its instruction body and internally drives iteration 1 → 2 → 3 without coming back to the orchestrator between iterations. Do NOT misread "3 mandatory iterations" as three separate orchestrator-side dispatches.
|
|
270
418
|
|
|
271
419
|
HARD-GATE: ALL 3 ITERATIONS ARE MANDATORY. Do NOT stop after iteration 1 even if all tests pass. The purpose of 3 runs is to catch flaky tests, timing-dependent failures, and race conditions that only surface on repeated execution. Skip this step ONLY if the project has no user-facing frontend.
|
|
272
420
|
|
|
273
|
-
|
|
421
|
+
**Scope (POST Track B):** E2E covers **multi-feature User Journeys ONLY** — login → browse → buy, signup → onboarding → first-action, etc. Single-feature happy paths are covered by Track B per-feature auditors at Step 5.2 — DO NOT duplicate. The User Journey list lives in `docs/plans/sprint-tasks.md` (Step 0 of the Planning Protocol). Each cross-feature journey = one E2E test file.
|
|
274
422
|
|
|
275
423
|
**Iteration 1 — Generate & Run:**
|
|
276
424
|
|
|
277
425
|
Call the Agent tool — description: "E2E test generation" — subagent_type: `engineering-frontend-developer` — mode: "bypassPermissions" — prompt:
|
|
278
426
|
|
|
279
|
-
"[CONTEXT header above — phase: 5] [COMPLEXITY: L] Generate and run end-to-end Playwright tests for
|
|
427
|
+
"[CONTEXT header above — phase: 5] [COMPLEXITY: L] Generate and run end-to-end Playwright tests for cross-feature User Journeys ONLY (single-feature happy paths are covered by Track B at Step 5.2 — do NOT duplicate them here).
|
|
280
428
|
|
|
281
429
|
INPUTS:
|
|
282
430
|
Read these files via your Read tool before starting — do NOT expect pasted content:
|
|
283
431
|
- User Journeys: `docs/plans/sprint-tasks.md` (User Journeys section — each journey becomes one E2E test)
|
|
284
432
|
- Architecture (API contracts): `docs/plans/architecture.md`
|
|
285
433
|
- NFRs: `docs/plans/sprint-tasks.md` (NFR section — use performance thresholds as test assertions)
|
|
286
|
-
- Visual Design Spec (component selectors): `
|
|
434
|
+
- Visual Design Spec (component selectors): `DESIGN.md`
|
|
287
435
|
|
|
288
436
|
REQUIREMENTS:
|
|
289
437
|
1. One E2E test per User Journey from sprint-tasks.md (each journey = one test file covering the full flow)
|
|
@@ -294,10 +442,10 @@ REQUIREMENTS:
|
|
|
294
442
|
6. Configure multi-browser: Chromium + Firefox + WebKit
|
|
295
443
|
7. Set up playwright.config.ts with: fullyParallel, retries: 0 (we handle retries ourselves), screenshot: 'only-on-failure', video: 'retain-on-failure', trace: 'on-first-retry'
|
|
296
444
|
8. Run all tests. Report: total, passed, failed, with failure details and screenshot paths.
|
|
297
|
-
9. Commit: 'test: e2e test suite for
|
|
445
|
+
9. Commit: 'test: e2e test suite for cross-feature user journeys'
|
|
298
446
|
|
|
299
447
|
Test priority:
|
|
300
|
-
- CRITICAL: Auth, core
|
|
448
|
+
- CRITICAL: Auth, core happy path, data submission, payment/transaction flows
|
|
301
449
|
- HIGH: Search, filtering, navigation, error states
|
|
302
450
|
- MEDIUM: Responsive layout, animations, edge cases"
|
|
303
451
|
|
|
@@ -321,17 +469,31 @@ Call the Agent tool — description: "E2E stability run" — subagent_type: `eng
|
|
|
321
469
|
|
|
322
470
|
Record final results. Include in the Phase 6.0 Reality Check evidence sweep (see `commands/build.md` Phase 6 Step 6.0).
|
|
323
471
|
|
|
324
|
-
|
|
472
|
+
#### Step 5.3b — Autonomous Dogfooding
|
|
325
473
|
|
|
326
|
-
Run the agent-browser dogfood skill against the running app. Unlike the per-task smoke tests (which verify specific acceptance criteria), dogfooding is **exploratory** — it autonomously navigates every reachable page, clicks buttons, fills forms, checks console errors, and finds issues we didn't think to test.
|
|
474
|
+
Run the agent-browser dogfood skill against the running app. Unlike Track B (which checks built features against the spec) and unlike per-task smoke tests (which verify specific acceptance criteria), dogfooding is **exploratory** — it autonomously navigates every reachable page, clicks buttons, fills forms, checks console errors, and finds issues we didn't think to test. Spec-blind by design — that's the point.
|
|
327
475
|
|
|
328
476
|
Start the dev server if not running. Then invoke the dogfood skill:
|
|
329
477
|
|
|
330
|
-
Call the Agent tool — description: "Dogfood the app" — subagent_type: `testing-evidence-collector` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 5] Run the agent-browser dogfood skill against the running app at http://localhost:[port]. Explore every reachable page. Click every button. Fill every form. Check console for errors. Report a structured list of issues with severity ratings (critical/high/medium/low), screenshots, and repro steps.
|
|
478
|
+
Call the Agent tool — description: "Dogfood the app" — subagent_type: `testing-evidence-collector` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 5] Run the agent-browser dogfood skill against the running app at http://localhost:[port]. Explore every reachable page. Click every button. Fill every form. Check console for errors. Report a structured list of issues with severity ratings (critical/high/medium/low), screenshots, and repro steps. Save screenshots under `docs/plans/evidence/dogfood/` (one PNG/JPG per finding, named after the finding_id), and emit `docs/plans/evidence/dogfood/findings.json` (machine-readable mirror of findings.md — schema: `[{finding_id, severity, description, screenshot_path, affected_screen_id}, ...]` per agents/testing-evidence-collector.md \"Dogfood Evidence Outputs\") so the Slice 5 indexer can wire `screenshot_evidences_finding` edges.
|
|
479
|
+
|
|
480
|
+
If dogfood skill is not available, use agent-browser manually: snapshot each page, click all interactive elements, check errors and network requests.
|
|
481
|
+
|
|
482
|
+
Focus on emergent issues (console errors, broken layouts at 320/375/768px, failed network requests, broken navigation links) — do NOT re-audit per-feature spec coverage; that's Track B's job at Step 5.2."
|
|
331
483
|
|
|
332
484
|
Classification and fix-routing of Dogfood findings is handled by the Feedback Synthesizer at `commands/build.md` Phase 5 Step 5.4 — do NOT self-classify or spawn fix agents from this step.
|
|
333
485
|
|
|
334
|
-
|
|
486
|
+
##### Step 5.3b.idx — Dogfood evidence graph index
|
|
487
|
+
|
|
488
|
+
After `testing-evidence-collector` returns and `docs/plans/evidence/dogfood/` is populated with finding screenshots, index the directory into the build graph as Slice 5 dogfood fragments. Best-effort, the feedback synthesizer falls back to file reads on failure. The indexer reads BOTH the screenshots in `evidence/dogfood/` AND the `findings.json` side-channel to wire `screenshot_evidences_finding` edges.
|
|
489
|
+
|
|
490
|
+
Run via the Bash tool:
|
|
491
|
+
|
|
492
|
+
- Command: `node ${CLAUDE_PLUGIN_ROOT}/bin/graph-index.js docs/plans/evidence/dogfood/`
|
|
493
|
+
- On exit 0: log success to `docs/plans/build-log.md` and continue.
|
|
494
|
+
- On non-zero exit: STOP. Log the error to `docs/plans/build-log.md` and report the failure. Downstream agents require the graph — do not proceed without a successful index.
|
|
495
|
+
|
|
496
|
+
#### Step 5.3c — Fake Data Detector
|
|
335
497
|
|
|
336
498
|
Call the Agent tool — description: "Fake data audit" — subagent_type: `silent-failure-hunter` — mode: "bypassPermissions" — prompt: "[CONTEXT header above — phase: 5] Run the Fake Data Detector Protocol (protocols/fake-data-detector.md). Check for mock/hardcoded data in production paths. Static analysis: grep for Math.random() business data, hardcoded API responses, setTimeout faking async, placeholder text. Dynamic analysis: inspect HAR files from docs/plans/evidence/ for missing real API calls, static responses, absent WebSocket traffic. Report findings with file:line references and severity."
|
|
337
499
|
|
|
@@ -342,6 +504,14 @@ Call the Agent tool — description: "Fake data audit" — subagent_type: `silen
|
|
|
342
504
|
|
|
343
505
|
Remaining findings feed into the Phase 6.0 Reality Check evidence sweep (see `commands/build.md` Phase 6 Step 6.0).
|
|
344
506
|
|
|
507
|
+
### Step 5.4 — Feedback Synthesizer
|
|
508
|
+
|
|
509
|
+
The orchestrator-side dispatch and prompt body live in `commands/build.md` Step 5.4. The synthesizer ingests both Track B `findings.json` (one per feature) and Dogfood `findings.md`/`findings.json`, validates target_phase routing against the graph, and emits `docs/plans/evidence/dogfood/classified-findings.json` with a `source: "dogfood" | "product-reality"` discriminator. Web-branch note: for `project_type=web` this is always the path; for iOS see `protocols/ios-phase-branches.md`.
|
|
510
|
+
|
|
511
|
+
### Step 5.5 — Fix loop
|
|
512
|
+
|
|
513
|
+
The orchestrator-side fix-loop dispatch lives in `commands/build.md` Step 5.5. Max 2 fix cycles. Routing template at the bottom of `commands/build.md` ("Re-entry dispatch template"). Findings with `target_phase: 1, target_task_or_step: "1.6"` route back to `product-spec-writer`, which re-triggers Track B for the affected feature on the next loop.
|
|
514
|
+
|
|
345
515
|
## Phase 7 — Ship (web branch)
|
|
346
516
|
|
|
347
517
|
### Step 7.1 — Documentation (web)
|
|
@@ -41,7 +41,7 @@ If missing or older: fail with `"Install Xcode 26.3 from the Mac App Store, then
|
|
|
41
41
|
|
|
42
42
|
### 3. Create project directory structure
|
|
43
43
|
From project root, create:
|
|
44
|
-
- `docs/plans/` — holds `.build-state.md`, `
|
|
44
|
+
- `docs/plans/` — holds `.build-state.md`, task lists (note: `DESIGN.md` lives at the repo root, not under `docs/plans/`)
|
|
45
45
|
- `maestro/` — canonical name for Maestro YAML flows
|
|
46
46
|
|
|
47
47
|
### 4. User-assisted Xcode New Project dialog
|