qfai 1.7.9 → 1.7.13

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.
Files changed (151) hide show
  1. package/README.md +34 -70
  2. package/assets/init/.qfai/README.md +11 -16
  3. package/assets/init/.qfai/assistant/agents/acceptance-test-engineer.md +51 -0
  4. package/assets/init/.qfai/assistant/agents/architecture-reviewer.md +57 -0
  5. package/assets/init/.qfai/assistant/agents/backend-engineer.md +40 -31
  6. package/assets/init/.qfai/assistant/agents/completion-reviewer.md +48 -0
  7. package/assets/init/.qfai/assistant/agents/delivery-planner.md +52 -0
  8. package/assets/init/.qfai/assistant/agents/devops-ci-engineer.md +31 -28
  9. package/assets/init/.qfai/assistant/agents/discovery-analyst.md +50 -0
  10. package/assets/init/.qfai/assistant/agents/doc-steward.md +30 -20
  11. package/assets/init/.qfai/assistant/agents/frontend-engineer.md +40 -31
  12. package/assets/init/.qfai/assistant/agents/implementation-reviewer.md +58 -0
  13. package/assets/init/.qfai/assistant/agents/orchestrator.md +19 -2
  14. package/assets/init/.qfai/assistant/agents/product-experience-architect.md +59 -0
  15. package/assets/init/.qfai/assistant/agents/product-surface-reviewer.md +60 -0
  16. package/assets/init/.qfai/assistant/agents/qa-gatekeeper.md +53 -48
  17. package/assets/init/.qfai/assistant/agents/qa-strategist.md +49 -0
  18. package/assets/init/.qfai/assistant/agents/requirements-analyst.md +32 -29
  19. package/assets/init/.qfai/assistant/agents/requirements-reviewer.md +48 -0
  20. package/assets/init/.qfai/assistant/agents/solution-architect.md +59 -0
  21. package/assets/init/.qfai/assistant/agents/test-design-analyst.md +64 -0
  22. package/assets/init/.qfai/assistant/instructions/agent-selection.md +64 -50
  23. package/assets/init/.qfai/assistant/instructions/communication.md +17 -0
  24. package/assets/init/.qfai/assistant/instructions/constitution.md +36 -1
  25. package/assets/init/.qfai/assistant/instructions/drift-protocol.md +1 -1
  26. package/assets/init/.qfai/assistant/instructions/requirements-decomposition.md +20 -13
  27. package/assets/init/.qfai/assistant/instructions/workflow.md +2 -1
  28. package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +32 -31
  29. package/assets/init/.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md +80 -0
  30. package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +21 -15
  31. package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +95 -61
  32. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md +17 -85
  33. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/01_Context.md +9 -1
  34. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/02_Inception-Deck.md +1 -1
  35. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/03_Story-Workshop.md +17 -60
  36. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/04_Sources.md +69 -2
  37. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/06_REQ.md +1 -1
  38. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/07_NFR.md +1 -1
  39. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/09_Constraints.md +1 -1
  40. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/10_Policy.md +1 -1
  41. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/11_OQ-Register.md +1 -1
  42. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/12_OQ-Resolution-Log.md +1 -1
  43. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/13_Deferred.md +1 -1
  44. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/14_Review-Request.md +25 -16
  45. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/99_delta.md +1 -1
  46. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/prototyping.yaml +9 -0
  47. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/Rxx_reviewer.md +8 -4
  48. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/review_request.md +11 -7
  49. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/summary.json +6 -44
  50. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/00_index.md +29 -14
  51. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/10_implementation_strategy.md +20 -0
  52. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/11_design_taste_interview.md +45 -0
  53. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/20_design_eval_invariant.md +68 -0
  54. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/21_design_eval_trend_derived.md +68 -0
  55. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/22_design_eval_product_specific.md +68 -0
  56. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/23_design_eval_aggregate.md +41 -0
  57. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/24_design_eval_dynamic_overrides.md +28 -0
  58. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/30_option_comparison.md +56 -0
  59. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/31_selected_anchor_screen.md +42 -0
  60. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_screen_contracts.md +44 -0
  61. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_input_bundle.md +36 -0
  62. package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +65 -67
  63. package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +171 -279
  64. package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +91 -57
  65. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/rcp_footer.md +21 -80
  66. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/evidence/import-lite.md +1 -1
  67. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/11_Slice-Policy.md +50 -0
  68. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/06_Test-Cases.md +23 -3
  69. package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +25 -17
  70. package/assets/init/.qfai/assistant/steering/agent-catalog.yml +194 -0
  71. package/assets/init/.qfai/assistant/steering/agent-routing.yml +176 -0
  72. package/assets/init/.qfai/assistant/steering/cli-ux-guidelines.md +49 -0
  73. package/assets/init/.qfai/assistant/steering/manifest.md +44 -19
  74. package/assets/init/.qfai/assistant/steering/product.md +53 -11
  75. package/assets/init/.qfai/assistant/steering/research-first-protocol.md +58 -0
  76. package/assets/init/.qfai/assistant/steering/review-gate.rules.yml +17 -66
  77. package/assets/init/.qfai/assistant/steering/review-profiles.yml +30 -0
  78. package/assets/init/.qfai/assistant/steering/structure.md +30 -16
  79. package/assets/init/.qfai/assistant/steering/tech.md +37 -21
  80. package/assets/init/.qfai/assistant/steering/ui-definition-protocol.md +54 -0
  81. package/assets/init/.qfai/contracts/README.md +10 -4
  82. package/assets/init/.qfai/contracts/design/README.md +32 -0
  83. package/assets/init/.qfai/contracts/ui/README.md +5 -3
  84. package/assets/init/.qfai/discussion/README.md +52 -5
  85. package/assets/init/.qfai/evidence/README.md +143 -116
  86. package/assets/init/.qfai/report/README.md +1 -1
  87. package/assets/init/.qfai/review/README.md +24 -9
  88. package/assets/init/.qfai/specs/README.md +5 -2
  89. package/assets/init/root/qfai.config.yaml +13 -0
  90. package/assets/uix-rev/comparison-review.md +24 -7
  91. package/assets/uix-rev/contracts-review.md +17 -10
  92. package/assets/uix-rev/scoring-review.md +42 -6
  93. package/assets/uix-rev/strategy-review.md +13 -9
  94. package/dist/cli/index.cjs +15618 -11547
  95. package/dist/cli/index.cjs.map +1 -1
  96. package/dist/cli/index.mjs +15487 -11415
  97. package/dist/cli/index.mjs.map +1 -1
  98. package/dist/index.cjs +10486 -6080
  99. package/dist/index.cjs.map +1 -1
  100. package/dist/index.d.cts +766 -198
  101. package/dist/index.d.ts +766 -198
  102. package/dist/index.mjs +10823 -6420
  103. package/dist/index.mjs.map +1 -1
  104. package/package.json +11 -3
  105. package/assets/init/.qfai/assistant/agents/architect-reviewer.md +0 -65
  106. package/assets/init/.qfai/assistant/agents/architect.md +0 -49
  107. package/assets/init/.qfai/assistant/agents/atdd-api-implementer.md +0 -49
  108. package/assets/init/.qfai/assistant/agents/atdd-e2e-implementer.md +0 -48
  109. package/assets/init/.qfai/assistant/agents/atdd-integration-implementer.md +0 -48
  110. package/assets/init/.qfai/assistant/agents/backend-reviewer.md +0 -66
  111. package/assets/init/.qfai/assistant/agents/code-reviewer.md +0 -67
  112. package/assets/init/.qfai/assistant/agents/contract-designer.md +0 -49
  113. package/assets/init/.qfai/assistant/agents/coverage-planner.md +0 -49
  114. package/assets/init/.qfai/assistant/agents/design-owner.md +0 -48
  115. package/assets/init/.qfai/assistant/agents/design-review-lead.md +0 -68
  116. package/assets/init/.qfai/assistant/agents/facilitator.md +0 -48
  117. package/assets/init/.qfai/assistant/agents/frontend-reviewer.md +0 -66
  118. package/assets/init/.qfai/assistant/agents/interviewer.md +0 -45
  119. package/assets/init/.qfai/assistant/agents/option-explorer.md +0 -51
  120. package/assets/init/.qfai/assistant/agents/option-reviewer.md +0 -66
  121. package/assets/init/.qfai/assistant/agents/oq-harvester.md +0 -50
  122. package/assets/init/.qfai/assistant/agents/oq-reviewer.md +0 -70
  123. package/assets/init/.qfai/assistant/agents/planner.md +0 -48
  124. package/assets/init/.qfai/assistant/agents/project-lead.md +0 -47
  125. package/assets/init/.qfai/assistant/agents/prototyping-coverage-auditor.md +0 -46
  126. package/assets/init/.qfai/assistant/agents/qa-engineer.md +0 -47
  127. package/assets/init/.qfai/assistant/agents/qa-lead.md +0 -44
  128. package/assets/init/.qfai/assistant/agents/qa-reviewer.md +0 -66
  129. package/assets/init/.qfai/assistant/agents/researcher.md +0 -47
  130. package/assets/init/.qfai/assistant/agents/reviewer.md +0 -62
  131. package/assets/init/.qfai/assistant/agents/runtime-gatekeeper.md +0 -46
  132. package/assets/init/.qfai/assistant/agents/test-case-owner.md +0 -53
  133. package/assets/init/.qfai/assistant/agents/test-engineer.md +0 -50
  134. package/assets/init/.qfai/assistant/agents/test-volume-estimator.md +0 -48
  135. package/assets/init/.qfai/assistant/agents/ui-ux-reviewer.md +0 -71
  136. package/assets/init/.qfai/assistant/agents/unit-test-scope-enforcer.md +0 -46
  137. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/10_strategy.md +0 -28
  138. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/20_eval_axis_usability.md +0 -31
  139. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/21_eval_axis_consistency.md +0 -31
  140. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/22_eval_axis_accessibility.md +0 -31
  141. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/23_eval_axis_delight.md +0 -56
  142. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/30_comparison.md +0 -45
  143. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/31_anchor.md +0 -27
  144. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_contracts.md +0 -51
  145. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_bundle.md +0 -31
  146. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/60_critique_loop.md +0 -23
  147. package/assets/init/.qfai/assistant/skills/qfai-prototyping-full-harness/SKILL.md +0 -185
  148. package/assets/init/.qfai/assistant/steering/review-roster.yml +0 -128
  149. package/assets/init/.qfai/evidence/.gitignore +0 -3
  150. package/assets/init/.qfai/report/.gitignore +0 -3
  151. package/assets/init/.qfai/review/.gitignore +0 -5
@@ -5,19 +5,16 @@ description: "Implement automated acceptance tests (E2E/API/Integration) aligned
5
5
  argument-hint: "<spec-id> [--auto]"
6
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
7
7
  roles:
8
- - Orchestrator
9
- - TestVolumeEstimator
10
- - ATDDE2EImplementer
11
- - ATDDAPIImplementer
12
- - ATDDIntegrationImplementer
13
- - QAEngineer
14
- - TestEngineer
15
- - BackendEngineer
16
- - FrontendEngineer
17
- - Reviewer
18
- - RuntimeGatekeeper
19
- - DevOpsCIEngineer
20
- - CodeReviewer
8
+ - orchestrator
9
+ - delivery-planner
10
+ - test-design-analyst
11
+ - qa-strategist
12
+ - acceptance-test-engineer
13
+ - devops-ci-engineer
14
+ - completion-reviewer
15
+ - qa-gatekeeper
16
+ - implementation-reviewer
17
+ routing-profile: runtime-heavy
21
18
  mode: execution-focused
22
19
  ---
23
20
 
@@ -114,31 +111,32 @@ Every major artifact in this stage MUST include this fixed table schema:
114
111
 
115
112
  ### Stage Minimum Roles (MUST)
116
113
 
117
- - Delegate: TestVolumeEstimator, ATDDE2EImplementer, ATDDAPIImplementer, ATDDIntegrationImplementer.
118
- - Integrate: Orchestrator consolidates delegated outputs and presents results.
119
- - Gate: Reviewer is delegated independently and returns only `PASS` or `REVISE`.
114
+ - Delegate: `test-design-analyst` defines coverage and layer ownership.
115
+ - Delegate: `acceptance-test-engineer` implements E2E, API, and integration acceptance tests.
116
+ - Delegate: `devops-ci-engineer` captures execution evidence when CI/runtime proof is needed.
117
+ - Integrate: `orchestrator` consolidates delegated outputs and presents results.
118
+ - Gate: `completion-reviewer` is delegated independently and returns only `PASS` or `REVISE`.
120
119
  - Orchestrator must not draft the primary artifact body and must not self-approve.
121
120
 
122
121
  ### Reviewer Gate (MUST)
123
122
 
124
- - Final completion gate MUST be delegated to an independent Reviewer sub-agent.
123
+ - Final completion gate MUST be delegated to an independent `completion-reviewer`.
125
124
  - Reviewer checks (minimum):
126
125
  - Required roles were delegated (no orchestrator self-authoring).
127
126
  - Drift Protocol enforced (no upstream edits without approval and owner rerun).
128
127
  - Test-layer policy enforced via `test-layers.md`.
129
128
  - Coverage obligations met: E2E covers `US`, Integration covers `TC`, API covers `CON-API`.
129
+ - **Test-case quality depth verified**: Coverage Depth Matrix reviewed; no unjustified ❌ cells remain (see `references/test-case-depth-checklist.md`).
130
130
  - Validation evidence exists and `qfai validate --fail-on error` passes.
131
131
  - Floors/ratios are signals, not gates.
132
132
  - `scenario.feature` and coverage ledgers are optional legacy inputs, not completion gates.
133
- - Do not declare DONE until Reviewer returns `PASS`.
134
- - **All reviewers: alternative proposal obligation**:
135
- - Every reviewer MUST provide a concrete alternative or fix proposal when returning FAIL. Feedback without a concrete alternative is invalid and triggers re-judgment.
136
- - **devils-advocate gate**:
137
- - devils-advocate FAIL must include a concrete alternative proposal. Bare negation FAIL triggers re-judgment.
138
- - 3 consecutive FAILs trigger advisory demotion and allow progression to the next phase.
139
- - **pattern-doubler gate**:
140
- - Each pattern proposed by pattern-doubler must include rationale.
141
- - Artifacts with no ID-bearing items (US/AC/BR/EX/TC) are marked N/A.
133
+ - Route specialist reviewers from `.qfai/assistant/steering/agent-routing.yml`.
134
+ - Default ATDD review set:
135
+ - `completion-reviewer`
136
+ - `qa-gatekeeper`
137
+ - Add `implementation-reviewer` only when helper/runtime support code changed.
138
+ - Do not declare DONE until all routed blocking reviewers return `PASS`.
139
+ - Every reviewer MUST provide a concrete alternative or fix proposal when returning FAIL.
142
140
 
143
141
  ### Work order template (copy/paste)
144
142
 
@@ -238,10 +236,11 @@ Turn specs/contracts obligations (`US` / `TC` / `CON-API`) into runnable accepta
238
236
  ## Mandatory Outputs
239
237
 
240
238
  1. Test Volume Estimate (signal table with evidence)
241
- 2. Coverage obligations checklist (`US` / `TC` / `CON-API`)
242
- 3. Implemented tests per layer (E2E/API/Integration)
243
- 4. Reviewer notes (`PASS` or concrete rework list)
244
- 5. Evidence file: `.qfai/evidence/atdd-<spec-id>.md`
239
+ 2. **Coverage Depth Matrix** (per spec; see `references/test-case-depth-checklist.md`)
240
+ 3. Coverage obligations checklist (`US` / `TC` / `CON-API`)
241
+ 4. Implemented tests per layer (E2E/API/Integration)
242
+ 5. Reviewer notes (`PASS` or concrete rework list)
243
+ 6. Evidence file: `.qfai/evidence/atdd-<spec-id>.md`
245
244
 
246
245
  ## Volume Signals (mandatory, not gates)
247
246
 
@@ -287,6 +286,7 @@ Notes:
287
286
  - Forbidden references remain.
288
287
  - Tests exist but were never executed.
289
288
  - Validation evidence is missing or failing.
289
+ - Coverage Depth Matrix is missing or contains unjustified ❌ cells (normal-path-only coverage is incomplete).
290
290
 
291
291
  ## Failure handling (mandatory)
292
292
 
@@ -341,11 +341,12 @@ Template:
341
341
 
342
342
  ## ATDD Work Orders (mandatory)
343
343
 
344
+ - **Test Case Depth Analyst**: `test-design-analyst` evaluates test cases using `references/test-case-depth-checklist.md`, produces Coverage Depth Matrix, flags gaps in boundary/error/edge coverage.
344
345
  - Test Volume Estimator: compute US/TC/CON signals with evidence.
345
346
  - ATDD E2E Implementer: implement required `US` coverage.
346
347
  - ATDD API Implementer: implement required `CON-API` coverage.
347
348
  - ATDD Integration Implementer: implement required `TC` coverage.
348
- - Reviewer: validate coverage obligations + gate results (non-edit).
349
+ - Reviewer: validate coverage obligations + gate results + Coverage Depth Matrix (non-edit).
349
350
  - Runtime Gatekeeper: run suites and capture logs.
350
351
 
351
352
  ## Completion Separation (mandatory)
@@ -0,0 +1,80 @@
1
+ # Test Case Depth Checklist
2
+
3
+ This checklist ensures test cases cover not only happy paths but also boundary values, error paths, edge cases, and combinatorial scenarios.
4
+ Reviewers MUST use this checklist when evaluating test case completeness during ATDD and SDD review gates.
5
+
6
+ ## 1. Equivalence Partitioning (同値分割)
7
+
8
+ For each input parameter or condition:
9
+
10
+ - [ ] Valid partitions identified with at least one representative test case each.
11
+ - [ ] Invalid partitions identified with at least one representative test case each.
12
+ - [ ] Special value partitions identified (null, empty, zero, default) with test cases.
13
+
14
+ ## 2. Boundary Value Analysis (境界値分析)
15
+
16
+ For each numeric, date, string-length, or ordered domain:
17
+
18
+ - [ ] Minimum valid value tested.
19
+ - [ ] Maximum valid value tested.
20
+ - [ ] Just below minimum (invalid) tested.
21
+ - [ ] Just above maximum (invalid) tested.
22
+ - [ ] Off-by-one boundaries tested where applicable.
23
+
24
+ ## 3. Normal / Error / Edge Path Coverage (正常系・異常系・エッジケース)
25
+
26
+ For each US or TC:
27
+
28
+ - [ ] At least one normal (happy) path test case exists.
29
+ - [ ] At least one error/failure path test case exists (invalid input, missing data, unauthorized access, etc.).
30
+ - [ ] Edge cases identified and tested (concurrent access, timing, empty collections, maximum payload, etc.).
31
+
32
+ ## 4. Special Values (特殊値)
33
+
34
+ - [ ] Null / undefined / missing values handled.
35
+ - [ ] Empty strings, empty arrays, empty objects handled.
36
+ - [ ] Maximum-length strings or maximum-size payloads handled.
37
+ - [ ] Special characters (Unicode, control characters, SQL injection patterns) considered where applicable.
38
+
39
+ ## 5. State Transitions (状態遷移)
40
+
41
+ For business flows with state machines or multi-step processes:
42
+
43
+ - [ ] All valid state transitions have test cases.
44
+ - [ ] Invalid state transitions are tested and rejected.
45
+ - [ ] Terminal / end states are reachable and verified.
46
+
47
+ ## 6. Combinatorial Coverage (組み合わせ)
48
+
49
+ When multiple conditions interact:
50
+
51
+ - [ ] Key condition combinations tested (at minimum pairwise for high-risk interactions).
52
+ - [ ] Conflicting or contradictory input combinations tested.
53
+
54
+ ## 7. Business Rule Coverage (ビジネスルール網羅)
55
+
56
+ - [ ] Every BR-\* referenced in 04_Business-Rules.md has at least one positive and one negative test case.
57
+ - [ ] Conditional business rules have test cases for each branch.
58
+
59
+ ---
60
+
61
+ ## Coverage Depth Matrix (テンプレート)
62
+
63
+ Reviewers and test-design-analysts MUST produce this matrix for each spec under review.
64
+ Mark each cell: ✅ covered, ⚠️ partial, ❌ missing.
65
+
66
+ | US/TC ID | Normal path | Error path | Boundary values | Special values | State transitions | Combinatorial | Status |
67
+ | -------- | ----------- | ---------- | --------------- | -------------- | ----------------- | ------------- | ------ |
68
+ | US-0001 | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | — |
69
+ | TC-0001 | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ | — |
70
+
71
+ ### Evaluation criteria
72
+
73
+ - **PASS**: All cells are ✅ or ⚠️ with documented rationale for partial coverage.
74
+ - **REVISE**: Any cell is ❌ without an explicit justification (e.g., Decision Record).
75
+
76
+ ### Usage
77
+
78
+ - `test-design-analyst`: Produce this matrix when defining coverage obligations. Flag ❌ cells as gaps.
79
+ - `qa-gatekeeper`: Verify the matrix exists and no unjustified ❌ cells remain.
80
+ - `completion-reviewer`: Confirm the matrix was reviewed and any ⚠️ cells have rationale.
@@ -4,7 +4,16 @@ title: QFAI Configure (Tune qfai.config.yaml)
4
4
  description: "Analyze the repository and tune qfai.config.yaml (testFileGlobs, exclude globs, optional specSections)."
5
5
  argument-hint: "[--auto]"
6
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task]
7
- roles: [DevOpsCIEngineer, QAEngineer, CodeReviewer, Planner]
7
+ roles:
8
+ [
9
+ orchestrator,
10
+ delivery-planner,
11
+ qa-strategist,
12
+ devops-ci-engineer,
13
+ completion-reviewer,
14
+ qa-gatekeeper,
15
+ ]
16
+ routing-profile: runtime-heavy
8
17
  mode: evidence-focused
9
18
  ---
10
19
 
@@ -32,7 +41,7 @@ QFAI Skill Body (SSOT)
32
41
  ## FORMAT SSOT (Mandatory)
33
42
 
34
43
  - **Before writing or editing any `.qfai/**` artifact\*\*, read and follow the relevant directory README template and sample:
35
- - `.qfai/require/README.md`
44
+ - `.qfai/discussion/README.md`
36
45
  - `.qfai/specs/README.md`
37
46
  - `.qfai/contracts/**/README.md`
38
47
  - `.qfai/evidence/README.md`
@@ -91,7 +100,7 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
91
100
 
92
101
  ### Reviewer Gate (MUST)
93
102
 
94
- - Final completion gate MUST be delegated to an independent Reviewer sub-agent.
103
+ - Final completion gate MUST be delegated to an independent `completion-reviewer`.
95
104
  - Reviewer checks (minimum):
96
105
  - Required roles were delegated (no orchestrator self-authoring).
97
106
  - DoD satisfied (validate gate, test-layer hard gate, evidence, DR-IDs).
@@ -102,15 +111,12 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
102
111
  - **Test-layer policy enforced**:
103
112
  - E2E/API/Integration coverage aligns with `steering/test-layers.md` and the project’s plan.
104
113
  - Do not use pyramid ratios as a gate; use floors/ratios only as signals. Coverage obligations are the gate.
105
- - Do not declare DONE or handoff until Reviewer returns `PASS`.
106
- - **All reviewers: alternative proposal obligation**:
107
- - Every reviewer MUST provide a concrete alternative or fix proposal when returning FAIL. Feedback without a concrete alternative is invalid and triggers re-judgment.
108
- - **devils-advocate gate**:
109
- - devils-advocate FAIL must include a concrete alternative proposal. Bare negation FAIL triggers re-judgment.
110
- - 3 consecutive FAILs trigger advisory demotion and allow progression to the next phase.
111
- - **pattern-doubler gate**:
112
- - Each pattern proposed by pattern-doubler must include rationale.
113
- - Artifacts with no ID-bearing items (US/AC/BR/EX/TC) are marked N/A.
114
+ - Route specialist reviewers from `.qfai/assistant/steering/agent-routing.yml`.
115
+ - Default configure review set:
116
+ - `completion-reviewer`
117
+ - `qa-gatekeeper`
118
+ - Do not declare DONE or handoff until all routed blocking reviewers return `PASS`.
119
+ - Every reviewer MUST provide a concrete alternative or fix proposal when returning FAIL.
114
120
 
115
121
  ### Work order template (copy/paste)
116
122
 
@@ -327,7 +333,7 @@ This workflow assumes the environment _may_ support subagents (e.g., Claude Code
327
333
 
328
334
  Delegate to multiple roles and then merge the results. Use a "real-world workflow" order:
329
335
 
330
- - Facilitator -> Interviewer -> Requirements Analyst -> Planner -> Architect -> (Contract Designer) -> Test Engineer -> QA Engineer -> Code Reviewer -> DevOps/CI Engineer
336
+ - discovery-analyst -> requirements-analyst -> delivery-planner -> solution-architect -> test-design-analyst -> qa-strategist -> devops-ci-engineer -> completion-reviewer / qa-gatekeeper
331
337
 
332
338
  **Pseudo-invocation pattern** (adjust to your tool):
333
339
 
@@ -347,8 +353,8 @@ Only with explicit user approval (`Simulation mode allowed`), simulate roles by
347
353
 
348
354
  ## Completion Separation (mandatory)
349
355
 
350
- - Config changes (DevOpsCIEngineer) and completion approval (CodeReviewer) must be separate.
351
- - QAEngineer must confirm evidence sampling before approval.
356
+ - Config changes (`devops-ci-engineer`) and completion approval (`completion-reviewer`) must be separate.
357
+ - `qa-gatekeeper` must confirm evidence sampling before approval.
352
358
 
353
359
  ## Context Refresh (mandatory for long tasks)
354
360
 
@@ -1,10 +1,23 @@
1
1
  ---
2
2
  name: qfai-discussion
3
3
  title: QFAI Discussion (Unified Discuss + Require)
4
- description: "Run structured discussion that merges discuss and require into a single 15-file discussion pack with OQ-driven exit."
4
+ description: "Run structured discussion that merges discuss and require into a single 15-file discussion pack with required prototyping.yaml and OQ-driven exit."
5
5
  argument-hint: "<idea-or-problem> [--auto]"
6
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
7
- roles: [Researcher, Facilitator, Interviewer, RequirementsAnalyst, QAEngineer, Planner]
7
+ roles:
8
+ [
9
+ orchestrator,
10
+ delivery-planner,
11
+ discovery-analyst,
12
+ requirements-analyst,
13
+ solution-architect,
14
+ product-experience-architect,
15
+ completion-reviewer,
16
+ requirements-reviewer,
17
+ architecture-reviewer,
18
+ product-surface-reviewer,
19
+ ]
20
+ routing-profile: requirements-heavy
8
21
  mode: interactive-by-default
9
22
  ---
10
23
 
@@ -35,7 +48,9 @@ QFAI Skill Body (SSOT)
35
48
  - `.qfai/discussion/README.md`
36
49
  - `.qfai/specs/README.md`
37
50
  - `.qfai/evidence/README.md`
38
- - `.qfai/assistant/steering/review-roster.yml`
51
+ - `.qfai/assistant/steering/agent-catalog.yml`
52
+ - `.qfai/assistant/steering/agent-routing.yml`
53
+ - `.qfai/assistant/steering/review-profiles.yml`
39
54
  - `.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md`
40
55
  - Keep templates as source of truth and preserve file naming/order.
41
56
 
@@ -70,18 +85,18 @@ Every major artifact in this stage MUST include this table schema:
70
85
 
71
86
  ### Reviewer Gate (MUST)
72
87
 
73
- - Delegate final completion gate to an independent Reviewer.
74
- - Reviewer must check Drift Protocol compliance and alignment with `.qfai/assistant/steering/test-layers.md`.
88
+ - Delegate final completion gate to an independent `completion-reviewer`.
89
+ - Route specialist reviewers from `.qfai/assistant/steering/agent-routing.yml` and `.qfai/assistant/steering/review-profiles.yml`.
90
+ - Default discussion review set:
91
+ - `completion-reviewer`
92
+ - `requirements-reviewer`
93
+ - Conditional discussion reviewers:
94
+ - `architecture-reviewer` when architecture-affecting decisions exist
95
+ - `product-surface-reviewer` when the pack is UI-bearing
96
+ - Reviewers must check Drift Protocol compliance and alignment with `.qfai/assistant/steering/test-layers.md`.
75
97
  - Test volume floors/ratios are not gates; they are risk signals.
76
- - Do not declare DONE until Reviewer returns `PASS`; otherwise apply `REVISE`.
77
- - **All reviewers: alternative proposal obligation**:
78
- - Every reviewer MUST provide a concrete alternative or fix proposal when returning FAIL. Feedback without a concrete alternative is invalid and triggers re-judgment.
79
- - **devils-advocate gate**:
80
- - devils-advocate FAIL must include a concrete alternative proposal. Bare negation FAIL triggers re-judgment.
81
- - 3 consecutive FAILs trigger advisory demotion and allow progression to the next phase.
82
- - **pattern-doubler gate**:
83
- - Each pattern proposed by pattern-doubler must include rationale.
84
- - Artifacts with no ID-bearing items (US/AC/BR/EX/TC) are marked N/A.
98
+ - Do not declare DONE until all routed blocking reviewers return `PASS`; otherwise apply `REVISE`.
99
+ - Every reviewer MUST provide a concrete alternative or fix proposal when returning `FAIL`.
85
100
 
86
101
  ## CRITICAL CONSTRAINTS (Read First)
87
102
 
@@ -107,30 +122,35 @@ Every major artifact in this stage MUST include this table schema:
107
122
  - `deferred` is allowed only when required metadata is complete in `13_Deferred.md`.
108
123
  - `02_Inception-Deck.md` MUST contain at least one Mermaid diagram in ` ```mermaid ` fences.
109
124
  - `03_Story-Workshop.md` MUST contain at least one Mermaid diagram in ` ```mermaid ` fences.
110
- - If UI requirements exist, include an HTML+CSS visual mock in `03_Story-Workshop.md`.
125
+ - If UI requirements exist, behavior obligations and sidecar artifacts are primary; HTML+CSS visual mock is optional fallback only.
111
126
  - **UI-bearing Authoring Requirements**:
112
127
  - UI-bearing detection is based on **surface type classification**
113
128
  (see `## UI-bearing Detection` below).
114
129
  - Content signals in `03_Story-Workshop.md`
115
130
  (HTML tags, Mermaid screen flows) serve as supplementary detection hints,
116
131
  not the primary SSOT.
117
- - UI-bearing packs MUST include a `## Design Direction Summary` section in `03_Story-Workshop.md` with all 6 subsections:
118
- 1. `### Option Comparison` — 2+ distinct design options (QFAI-DDP-020)
119
- 2. `### Anchor Screen Selection` — explicit selection referencing a compared option (QFAI-DDP-021)
120
- 3. `### Competitive References` — summary referencing 04_Sources.md (QFAI-DDP-022 validates 04_Sources.md fields)
121
- 4. `### CTA Hierarchy` — must define at least a primary CTA (QFAI-DDP-023)
122
- 5. `### State Coverage` — must define empty, loading, error, populated states (QFAI-DDP-024)
123
- 6. `### Design Anti-goals` 1+ patterns to intentionally avoid (QFAI-DDP-025)
124
- - `04_Sources.md` must include a `## Competitive Reference Registry` with entries containing:
132
+ - UI-bearing packs rely on the **canonical sidecar family** as primary truth for design direction:
133
+ - `uiux/10_implementation_strategy.md`implementation strategy with strict canonical schema
134
+ - `uiux/11_design_taste_interview.md`design taste interview (10 sections)
135
+ - `04_Sources.md#Trend Scan` — trend scan with required category coverage and per-entry completeness
136
+ - `uiux/20-24`3-layer evaluation family (invariant, trend-derived, product-specific, aggregate, dynamic overrides)
137
+ - `uiux/30_option_comparison.md`option comparison
138
+ - `uiux/31_selected_anchor_screen.md` selected anchor screen (Selected Direction single source of truth)
139
+ - `uiux/40_screen_contracts.md` screen contracts (strong schema)
140
+ - `uiux/50_review_input_bundle.md` — review input bundle
141
+ - `04_Sources.md` `## Trend Scan` must include all required categories, and each entry must include: `reference`, `observation`, `freshness_date`, `confidence`, `source_translation`, `local_implication`
142
+ - `04_Sources.md` `## Competitive Reference Registry` entries must include:
125
143
  - `adopted_points`: what was adopted and why
126
144
  - `rejected_points`: what was not adopted and why
127
145
  - `local_translation`: how adopted points were adapted
128
- - Placeholder values (TBD, N/A, TODO, empty) are treated as missing (QFAI-DDP-022)
129
- - `14_Review-Request.md` must include a `## Design Direction Decisions` section with anchor, rejections, and adopted refs.
146
+ - Placeholder-like values (TBD, N/A, TODO, empty) are treated as missing
147
+ - `14_Review-Request.md` must review selected direction from `uiux/31_selected_anchor_screen.md` and strategy alignment from `uiux/10_implementation_strategy.md`.
130
148
  - `99_delta.md` must include a `## Rejected Visual Directions` section with rationale and recurrence prevention.
131
- - All 7 validators (QFAI-DDP-019..025) emit `severity: error` violations block validation.
132
- - Non-UI packs are exempt from all DDS validators (zero new issues).
133
- - Review roster is fixed by `.qfai/assistant/steering/review-roster.yml` and must be executed in full.
149
+ - `04_Sources.md` must include a `## Trend Scan` section where each required category has at least one complete entry.
150
+ - `04_Sources.md` must include a `## Competitive Reference Registry` where each entry has: `adopted_points`, `rejected_points`, `local_translation` fields populated.
151
+ - Sidecar-family validators (UIX-VAL series) are the primary quality gates for UI-bearing packs.
152
+ - Non-UI packs are exempt from all sidecar validators (zero new issues).
153
+ - Reviewer routing is derived from `.qfai/assistant/steering/agent-routing.yml` and `.qfai/assistant/steering/review-profiles.yml`.
134
154
  - RCP wording must be sourced from `.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md`.
135
155
  - Discussion artifacts are logs/rationale and must not duplicate spec SSOT.
136
156
  - If diagrams are written, Mermaid syntax must be in ` ```mermaid ` fences only.
@@ -148,11 +168,12 @@ Classification is based on **surface type only**, not interaction complexity (DR
148
168
 
149
169
  | Surface Type | UI-bearing | Sidecar Generation | Example |
150
170
  | ------------ | ---------- | ---------------------------------------- | ---------------------------------------- |
151
- | web-ui | Yes | Full 11-file uiux/ sidecar | Web application with user-facing screens |
152
- | mobile-ui | Yes | Full 11-file uiux/ sidecar | Mobile app with touch interactions |
153
- | desktop-ui | Yes | Full 11-file uiux/ sidecar | Desktop application with GUI |
171
+ | web | Yes | Full 11-file uiux/ sidecar | Web application with user-facing screens |
172
+ | mobile | Yes | Full 11-file uiux/ sidecar | Mobile app with touch interactions |
173
+ | desktop | Yes | Full 11-file uiux/ sidecar | Desktop application with GUI |
174
+ | cli | No | No uiux/ directory, no sidecar generated | CLI tool, terminal application |
154
175
  | mixed | Yes | Full 11-file uiux/ sidecar | Cross-platform with UI components |
155
- | non-ui | No | No uiux/ directory, no sidecar generated | CLI tool, API service, library |
176
+ | non-ui | No | No uiux/ directory, no sidecar generated | API service, library |
156
177
 
157
178
  ### Detection Signals
158
179
 
@@ -171,24 +192,27 @@ When UI-bearing is detected:
171
192
  When non-ui is detected:
172
193
 
173
194
  - Skip uiux/ sidecar generation entirely — no uiux/ directory, no errors
174
- - Core 15-file pack is generated as before
195
+ - Core 15-file pack plus required prototyping.yaml is generated as before
175
196
  - No additional UI/UX completion conditions apply
176
197
 
177
198
  ### UI-bearing Completion Conditions
178
199
 
179
200
  For UI-bearing projects, the following conditions must ALL be satisfied before discussion completion:
180
201
 
181
- 1. **Strategy selected**: `uiux/10_strategy.md` is populated with a chosen implementation approach
182
- 2. **Scoring axes defined**:
183
- `uiux/20_eval_axis_usability.md`,
184
- `uiux/21_eval_axis_consistency.md`,
185
- `uiux/22_eval_axis_accessibility.md`,
186
- `uiux/23_eval_axis_delight.md`
187
- have evaluation criteria and measurement approaches
188
- 3. **Anchor screen chosen**: `uiux/31_anchor.md` documents the selected anchor screen with rationale
189
- 4. **Contracts drafted**: `uiux/40_contracts.md` contains interaction contracts for the anchor screen
190
-
191
- Completion is blocked until all 4 conditions are met. Skipping any condition prevents the discussion from being marked as complete.
202
+ 1. **Strategy selected**: `uiux/10_implementation_strategy.md` is populated with a canonical implementation approach
203
+ 2. **Taste interview completed**: `uiux/11_design_taste_interview.md` has all 10 sections populated
204
+ 3. **Scoring axes defined (3-layer)**:
205
+ `uiux/20_design_eval_invariant.md`,
206
+ `uiux/21_design_eval_trend_derived.md`,
207
+ `uiux/22_design_eval_product_specific.md`,
208
+ `uiux/23_design_eval_aggregate.md`
209
+ have invariant, trend-derived, and product-specific evaluation criteria
210
+ 4. **Dynamic overrides documented**: `uiux/24_design_eval_dynamic_overrides.md` lists any override rules
211
+ 5. **Comparison completed**: `uiux/30_option_comparison.md` documents option comparison against scoring axes
212
+ 6. **Anchor screen selected**: `uiux/31_selected_anchor_screen.md` documents the selected direction and anchor screen
213
+ 7. **Contracts drafted**: `uiux/40_screen_contracts.md` contains screen interaction contracts
214
+
215
+ Completion is blocked until all 7 conditions are met. Skipping any condition prevents the discussion from being marked as complete.
192
216
 
193
217
  ### Non-UI Completion
194
218
 
@@ -196,7 +220,7 @@ For non-ui projects, completion conditions remain unchanged from prior versions.
196
220
 
197
221
  ## Goal
198
222
 
199
- Produce a unified 15-file discussion pack with explicit decisions, requirements, OQ states, and rationale so `/qfai-sdd` starts without unresolved blockers.
223
+ Produce a unified 15-file discussion pack plus required prototyping.yaml with explicit decisions, requirements, OQ states, and rationale so `/qfai-sdd` starts without unresolved blockers.
200
224
 
201
225
  ## Non-goals
202
226
 
@@ -222,6 +246,7 @@ Produce a unified 15-file discussion pack with explicit decisions, requirements,
222
246
  - `.qfai/discussion/discussion-*/14_Review-Request.md`
223
247
  - `.qfai/discussion/discussion-*/99_delta.md`
224
248
  - review artifacts under `.qfai/review/review-YYYYMMDDhhmmssSSS/`
249
+ - `.qfai/discussion/discussion-*/prototyping.yaml`
225
250
  - Evidence file: `.qfai/evidence/discussion-YYYYMMDDhhmmssSSS.md`
226
251
  - Reviewer notes (`PASS` or `REVISE`)
227
252
 
@@ -229,7 +254,7 @@ Produce a unified 15-file discussion pack with explicit decisions, requirements,
229
254
 
230
255
  1. Run the core interview for product concept, scope, stakeholders, and constraints (`01_Context.md`).
231
256
  2. Run Inception Deck (10 questions) for ambiguity removal and project alignment, and include at least one Mermaid diagram (`02_Inception-Deck.md`).
232
- 3. Run Story Workshop to capture user stories, user flows, and at least one Mermaid diagram; add HTML+CSS screen mock when UI requirements exist (`03_Story-Workshop.md`).
257
+ 3. Run Story Workshop to capture user stories, user flows, and at least one Mermaid diagram; HTML+CSS visual mock is optional fallback only when it materially clarifies the selected direction (`03_Story-Workshop.md`).
233
258
  4. Register source traceability in `04_Sources.md` with stable `SRC-XXXX` identifiers.
234
259
  5. Define scope boundaries and success criteria in `05_Scope.md`.
235
260
  6. Capture functional requirements in `06_REQ.md` with `REQ-0001` format.
@@ -242,7 +267,17 @@ Produce a unified 15-file discussion pack with explicit decisions, requirements,
242
267
  13. Run OQ resolution hearing repeatedly until open count is zero.
243
268
  14. Move deferred items to `13_Deferred.md` with all mandatory metadata columns.
244
269
  15. Update `12_OQ-Resolution-Log.md`, `14_Review-Request.md`, and `99_delta.md`.
245
- 16. Request review and record Reviewer result.
270
+ 16. Generate `prototyping.yaml` at the discussion pack top level for downstream prototyping recommendation.
271
+ - MUST use the **namespaced canonical schema** with `prototyping.recommended_mode` (not top-level `recommended_mode`).
272
+ - Top-level `recommended_mode` is legacy compatibility only and MUST NOT be emitted in new artifacts.
273
+ - All fields (`recommended_mode`, `rationale`, `allowed_modes`, `surface`) are required under the `prototyping:` key.
274
+ 17. Choose `recommended_mode` with these defaults:
275
+
276
+ - `low-cost`: rough draft or strong cost priority
277
+ - `standard`: normal customer-presentable path
278
+ - `full-harness`: only when the premium runtime loop is justified
279
+
280
+ 18. Request review and record Reviewer result.
246
281
 
247
282
  ## Example Mapping Perspectives (Mandatory)
248
283
 
@@ -298,7 +333,7 @@ Rules:
298
333
  At any point during discussion, if the user changes direction or scope:
299
334
 
300
335
  1. Record the drift event in `99_delta.md` with Change Type = `Drift`.
301
- 2. Assess impact on all 15 files.
336
+ 2. Assess impact on all 15 files plus prototyping.yaml.
302
337
  3. Update affected files and re-validate OQ register exit condition.
303
338
  4. If drift contradicts a previously rejected option, record in `99_delta.md` Rejected section with `Recurrence Prevention`.
304
339
 
@@ -314,22 +349,15 @@ RCP rules:
314
349
 
315
350
  - Append-only: create a new review pack for each cycle.
316
351
  - Apply `.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md` as the common footer rule set.
317
- - Any `FAIL` requires return/fix/full rerun from the first reviewer.
318
- - Mark fixed only when all reviewers are `PASS` or valid `N/A`.
352
+ - Run only the reviewers routed by `agent-routing.yml` for the current phase and conditions.
353
+ - On `FAIL`, rerun only the failed reviewer and any reviewers whose scope changed because of the fix.
354
+ - Mark fixed only when all routed blocking reviewers are `PASS`.
319
355
  - `summary.json` `target.kind` must be `"discussion"`.
320
- - Execution order: existing 10 reviewers (1-10) → devils-advocate (11) → pattern-doubler (12).
321
- - devils-advocate (11th):
322
- - `can_be_na: false` — N/A is not allowed.
323
- - FAIL must include a concrete alternative. Bare negation FAIL is invalid.
324
- - 3 consecutive FAILs trigger advisory demotion (current review cycle only).
325
- - pattern-doubler (12th):
326
- - `can_be_na: true` — N/A is default in discussion phase as ID-bearing items are sparse.
327
- - Evaluates Example Seeds count and perspective coverage.
328
356
 
329
357
  ## RCP Footer Include (MUST)
330
358
 
331
359
  - Include and follow `.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md` without rewriting it per skill.
332
- - Roster and loop rules must stay synchronized with the footer SSOT.
360
+ - Routing and rerun rules must stay synchronized with `agent-routing.yml` and the footer SSOT.
333
361
 
334
362
  ## Required Coverage Topics
335
363
 
@@ -356,7 +384,13 @@ Before declaring completion, you MUST:
356
384
  - ensure `02_Inception-Deck.md` includes at least one Mermaid diagram;
357
385
  - ensure `Example Seeds` sections are present and perspective coverage is explicit in `03_Story-Workshop.md`;
358
386
  - ensure `03_Story-Workshop.md` includes at least one Mermaid diagram;
359
- - ensure UI-related stories include an HTML+CSS screen mock section in `03_Story-Workshop.md`;
387
+ - ensure UI-related stories include behavior obligations in `03_Story-Workshop.md` (HTML+CSS mock is optional fallback);
388
+ - ensure `uiux/11_design_taste_interview.md` is complete (all 10 sections) when UI-bearing;
389
+ - ensure `04_Sources.md` includes a `## Trend Scan` section with freshness metadata when UI-bearing;
390
+ - ensure 3-layer evaluation family files (20-24) are populated when UI-bearing;
391
+ - ensure `uiux/10_implementation_strategy.md` uses the strict canonical schema when UI-bearing;
392
+ - ensure `uiux/40_screen_contracts.md` uses the strong screen contract schema when UI-bearing;
393
+ - ensure `uiux/50_review_input_bundle.md` is review-ready when UI-bearing;
360
394
  - avoid duplicating finalized spec content in discussion outputs.
361
395
 
362
396
  ## Evidence (MANDATORY)
@@ -398,7 +432,7 @@ When done, report:
398
432
  - [ ] Deferred items include required metadata.
399
433
  - [ ] `02_Inception-Deck.md` includes at least one Mermaid diagram.
400
434
  - [ ] `03_Story-Workshop.md` includes at least one Mermaid diagram.
401
- - [ ] UI-related stories include HTML+CSS screen mock details in `03_Story-Workshop.md`.
435
+ - [ ] UI-related stories include behavior obligations in `03_Story-Workshop.md` (HTML+CSS mock is optional fallback only).
402
436
  - [ ] Mermaid fence rules were satisfied when diagrams were used.
403
437
  - [ ] Evidence file exists and includes Work Orders Summary + Reviewer result.
404
438
  - [ ] Reviewer returned `PASS`.