qfai 1.7.8 → 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 (150) 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 +188 -267
  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 +15646 -11383
  95. package/dist/cli/index.cjs.map +1 -1
  96. package/dist/cli/index.mjs +10846 -6582
  97. package/dist/cli/index.mjs.map +1 -1
  98. package/dist/index.cjs +10885 -6287
  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 +10858 -6263
  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/steering/review-roster.yml +0 -128
  148. package/assets/init/.qfai/evidence/.gitignore +0 -3
  149. package/assets/init/.qfai/report/.gitignore +0 -3
  150. package/assets/init/.qfai/review/.gitignore +0 -5
@@ -1,7 +1,6 @@
1
1
  # RCP Footer (qfai-discussion / SSOT)
2
2
 
3
- この文書は `/qfai-discussion` のレビュー周回(Review Cycle)を「discussion-pack 前提」で固定するための SSOT です。
4
- 他skill向けの共通規約ではありません。
3
+ この文書は `/qfai-discussion` Review Cyclediscussion-pack 前提で固定する SSOT です。
5
4
 
6
5
  ---
7
6
 
@@ -9,32 +8,21 @@
9
8
 
10
9
  - Scope: `discussion`
11
10
  - Pack: `.qfai/discussion/discussion-<YYYYMMDDhhmmssSSS>/`
12
- - レビュー対象(必須15ファイル):
13
- - `01_Context.md`
14
- - `02_Inception-Deck.md`
15
- - `03_Story-Workshop.md`
16
- - `04_Sources.md`
17
- - `05_Scope.md`
18
- - `06_REQ.md`
19
- - `07_NFR.md`
20
- - `08_Glossary.md`
21
- - `09_Constraints.md`
22
- - `10_Policy.md`
23
- - `11_OQ-Register.md`
24
- - `12_OQ-Resolution-Log.md`
25
- - `13_Deferred.md`
26
- - `14_Review-Request.md`
27
- - `99_delta.md`
11
+ - レビュー対象は discussion-pack の必須15ファイル
28
12
 
29
13
  ---
30
14
 
31
- ## Roster Execution Rule(固定)
15
+ ## Routing Rule(固定)
32
16
 
33
- - Roster `.qfai/assistant/steering/review-roster.yml` を読む
34
- - 各レビューは `PASS` / `FAIL` / `N/A` を返す
35
- - `N/A` は `na_rule` を満たす理由が必須
36
- - `FAIL` が1つでも出たら **即修正へ戻る**(後続レビューは回さない)
37
- - 修正後は **review cycle を新規作成し** roster を先頭から再実行する(スキップ禁止)
17
+ - reviewer の選定は `.qfai/assistant/steering/agent-routing.yml` と `.qfai/assistant/steering/review-profiles.yml` を読む
18
+ - 常設 reviewer:
19
+ - `completion-reviewer`
20
+ - `requirements-reviewer`
21
+ - 条件付き reviewer:
22
+ - `architecture-reviewer` — architecture-affecting decision がある場合
23
+ - `product-surface-reviewer` — UI-bearing の場合
24
+ - 各レビューは `PASS` / `FAIL` を返す
25
+ - `FAIL` が出たら、失敗 reviewer と修正影響を受ける reviewer のみ再実行する
38
26
 
39
27
  ---
40
28
 
@@ -47,71 +35,15 @@
47
35
 
48
36
  ## discussion-pack 固有の Gate(必須)
49
37
 
50
- 以下は validator **error** として扱うため、`fixed` 判定前に必ず潰す:
51
-
52
- 1. 命名(最新pack判定)
53
-
54
- - pack は `discussion-YYYYMMDDhhmmssSSS/` のみ許可
55
- - 不正な `discussion-*` がある場合は latest 判定が壊れるため、退避または削除する
56
-
57
- 2. Blocking OQ の解消
58
-
59
- - `11_OQ-Register.md` の **Disposition が `open` のまま**で、
60
- かつ Gate が `discuss|require|sdd` の OQ が残っていないこと
61
- - `open` を残す場合は、**Gateを外す**か `Disposition: deferred/resolved` に変更する
62
-
63
- 3. Deferred の整合
64
-
65
- - OQ register で `deferred` にした OQ-ID は、`13_Deferred.md` に同じ OQ-ID で必ず記載する
66
-
67
- 4. Story Workshop の Mermaid(最小要件)
68
-
69
- - `03_Story-Workshop.md` に mermaid fenced block を最低1つ含める
70
- - `flowchart` または `sequenceDiagram` を推奨
38
+ - `11_OQ-Register.md` `Disposition: open` かつ blocking gate の OQ を残さない
39
+ - `13_Deferred.md` は deferred OQ と整合している
40
+ - `03_Story-Workshop.md` は Mermaid を最低1つ含む
71
41
 
72
42
  ---
73
43
 
74
44
  ## レビュー観点(discussion-pack 特化)
75
45
 
76
46
  - Context → Inception Deck → Story Workshop の因果が通っているか
77
- - 「なぜ作るか」→「誰のためか」→「どんな業務フローか」が矛盾しない
78
47
  - `06_REQ.md` と `07_NFR.md` の境界が崩れていないか
79
- - Glossary/Constraints/Policy が単なる箇条書きでなく、意思決定(後工程の設計/実装)の入力として使える粒度か
80
- - `99_delta.md` が “更新履歴” ではなく “検討ログ(採用/不採用/基準)” を持っているか
81
-
82
- ---
83
-
84
- ## 代表的な FAIL と復旧(discussion-pack 特化)
85
-
86
- - FAIL: `11_OQ-Register.md` に open+Gate が残る
87
- - 復旧: 影響範囲が大きいものは `Disposition: deferred` + `13_Deferred.md` に詳細を移す
88
- - FAIL: `03_Story-Workshop.md` に図がない
89
- - 復旧: 1本でよいので、登場人物(ペルソナ)と主要分岐が分かる flowchart を入れる
90
- - FAIL: pack 名が不正(latest 判定がブレる)
91
- - 復旧: 不正 pack を `discussion-legacy-*` に退避し、最新 pack を timestamp 命名で作り直す
92
-
93
- ---
94
-
95
- ## 拡張レビュアー
96
-
97
- ### devils-advocate(11番目)
98
-
99
- - 役割: 全否定エージェント — 「現状すべてが間違っている」前提でレビューし、あるべき姿を提示する
100
- - `can_be_na: false` — N/A は許可されない
101
- - FAIL 判定時は必ず具体的代替案を提示すること。代替案なしの FAIL は無効とし、再判定を要求する
102
- - 3 回連続 FAIL → アドバイザリー降格(当該レビューサイクル限定)。降格後はブロッキング力が消失し、フィードバックのみ記録する
103
- - レビュー記録: `R11_devils-advocate.md`
104
-
105
- ### pattern-doubler(12番目)
106
-
107
- - 役割: パターン倍増エージェント — discussion phase では ID 付き項目が少ないため N/A が基本
108
- - `can_be_na: true` — discussion phase では Example Seeds の数と観点網羅性を評価対象とする
109
- - N/A でない場合、追加パターンの根拠提示が必須
110
- - レビュー記録: `R12_pattern-doubler.md`
111
-
112
- ### 代表的な FAIL と復旧(拡張レビュアー特化)
113
-
114
- - FAIL (devils-advocate): 代替案なしの否定のみ
115
- - 復旧: 具体的な「あるべき姿」と移行パスを記述させ、再判定する
116
- - FAIL (devils-advocate, 3回連続): 無限ループ検知
117
- - 復旧: アドバイザリー降格を記録し、devils-advocate のフィードバックを advisory として保存。次フェーズに進行する
48
+ - Glossary / Constraints / Policy が後工程入力として十分か
49
+ - `99_delta.md` に採用/不採用の判断根拠が残っているか
@@ -1,6 +1,14 @@
1
1
  # 01 Context
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, see uiux/10_strategy.md for implementation strategy context -->
3
+ <!-- UX-INTENT: If UI-bearing, see uiux/10_implementation_strategy.md for implementation strategy context -->
4
+
5
+ ## UI-bearing Classification
6
+
7
+ - ui_bearing: [true|false]
8
+ - primary_surface: [web|mobile|desktop|cli|mixed|non-ui]
9
+ - secondary_surfaces:
10
+ - [optional]
11
+ - classification_rationale: [Why this classification was chosen]
4
12
 
5
13
  ## Metadata
6
14
 
@@ -43,7 +43,7 @@ flowchart LR
43
43
  App --> Data["Data Store"]
44
44
  ```
45
45
 
46
- <!-- UX-INTENT: If UI-bearing, reference uiux/30_comparison.md for design option alignment -->
46
+ <!-- UX-INTENT: If UI-bearing, reference uiux/30_option_comparison.md and uiux/31_selected_anchor_screen.md for design option alignment -->
47
47
 
48
48
  ## 7. What Keeps Us Up at Night (Risks)
49
49
 
@@ -45,22 +45,22 @@ flowchart TD
45
45
 
46
46
  ## Behavior Obligations
47
47
 
48
- <!-- Primary focus for UI-bearing packs. Define behavioral requirements before visual mockups. -->
48
+ <!-- Primary focus for UI-bearing packs. Capture behavioral discovery before screen-level contracts.
49
+ Screen-level contract SSOT lives in uiux/40_screen_contracts.md. -->
49
50
 
50
51
  ### State Coverage
51
52
 
52
- | State | Trigger | Display | Transitions |
53
- | --------- | --------- | --------- | ------------- |
54
- | empty | [trigger] | [display] | [transitions] |
55
- | loading | [trigger] | [display] | [transitions] |
56
- | error | [trigger] | [display] | [transitions] |
57
- | populated | [trigger] | [display] | [transitions] |
53
+ | State / Risk | Discovery Notes | Handoff to Contract |
54
+ | --------------- | ------------------------------------------------- | ----------------------------------------------------------------------------- |
55
+ | [state or risk] | [what might trigger confusion, delay, or failure] | Reflect the final `required_states` contract in `uiux/40_screen_contracts.md` |
58
56
 
59
57
  ### Interaction Contracts
60
58
 
61
- | Element | Action | Expected Result | Error Handling |
62
- | --------- | -------- | --------------- | -------------- |
63
- | [element] | [action] | [result] | [error case] |
59
+ | Primary Task | Key Action | Priority Hint | Expected Result | Error Handling |
60
+ | ---------------- | ------------------ | ------------------------ | --------------- | -------------- |
61
+ | [main user goal] | [main interaction] | [primary/high/secondary] | [result] | [error case] |
62
+
63
+ Screen-level contract details are finalized in `uiux/40_screen_contracts.md`. Primary tasks, required states, transitions, and observable outcomes are finalized there; Story Workshop is for discovery and handoff, not final contract fixation.
64
64
 
65
65
  ### Error Handling
66
66
 
@@ -68,11 +68,14 @@ flowchart TD
68
68
  - Network failure: [approach]
69
69
  - Timeout: [approach]
70
70
 
71
- ## Screen Mock — Fallback (HTML+CSS)
71
+ ---
72
+
73
+ ## Appendix: Screen Mock — Optional Fallback (HTML+CSS)
72
74
 
73
- - Secondary: required when UI requirements exist, but subordinate to Behavior Obligations above.
74
- - Visual mock only; do not include JavaScript behavior.
75
- - This HTML/CSS mock is a fallback visual aid that supplements (not replaces) the behavioral definitions.
75
+ <!-- Optional fallback only do not use as the primary UI definition artifact.
76
+ Include only when it materially clarifies the selected direction.
77
+ Behavior Obligations and sidecar artifacts (uiux/) are the primary UI definitions.
78
+ The required state SSOT is uiux/40_screen_contracts.md (`default/loading/empty/error`). -->
76
79
 
77
80
  ```html
78
81
  <section class="screen-mock">
@@ -91,49 +94,3 @@ flowchart TD
91
94
  border-radius: 12px;
92
95
  }
93
96
  ```
94
-
95
- ## Design Direction Summary
96
-
97
- <!-- Required for UI-bearing packs. Validated by QFAI-DDP-019..025. -->
98
-
99
- ### Option Comparison
100
-
101
- <!-- List 2+ design options. Each must be a separate entry. (QFAI-DDP-020) -->
102
-
103
- - **Option A**: [Name and description]
104
- - **Option B**: [Name and description]
105
-
106
- ### Anchor Screen Selection
107
-
108
- <!-- Select one of the compared options as the anchor. (QFAI-DDP-021) -->
109
-
110
- Selected: [Option X] — [Reason for selection]
111
-
112
- ### Competitive References
113
-
114
- <!-- Summarize competitive references from 04_Sources.md. (QFAI-DDP-022) -->
115
-
116
- See 04_Sources.md for full competitive reference registry.
117
-
118
- ### CTA Hierarchy
119
-
120
- <!-- Define CTA hierarchy with at least a primary CTA. (QFAI-DDP-023) -->
121
-
122
- - Primary: [CTA label and placement]
123
- - Secondary: [CTA label and placement]
124
-
125
- ### State Coverage
126
-
127
- <!-- Define all 4 required states. (QFAI-DDP-024) -->
128
- <!-- SSOT for state details: Behavior Obligations > State Coverage table above. Keep these bullets for validator compliance; fill display-level details or reference the table. -->
129
-
130
- - empty: [Empty state display — see Behavior Obligations table for triggers/transitions]
131
- - loading: [Loading state display — see Behavior Obligations table for triggers/transitions]
132
- - error: [Error state display — see Behavior Obligations table for triggers/transitions]
133
- - populated: [Populated state display — see Behavior Obligations table for triggers/transitions]
134
-
135
- ### Design Anti-goals
136
-
137
- <!-- List 1+ design patterns to intentionally avoid. (QFAI-DDP-025) -->
138
-
139
- - Anti-goal: [Pattern to avoid and reason]
@@ -12,12 +12,79 @@
12
12
  - `secondary`: Derived information (summaries, analyses).
13
13
  - `external`: Third-party references (specs, RFCs, vendor docs).
14
14
 
15
- ## Competitive Reference Registry
15
+ ## Trend Scan
16
+
17
+ ### Visual Tone Trends
18
+
19
+ #### Entry 1
20
+
21
+ - reference: [Source name or URL]
22
+ - observation: [What visual tone signal was observed]
23
+ - freshness_date: YYYY-MM-DD
24
+ - confidence: [high|medium|low]
25
+ - source_translation: [How the signal translates into this project]
26
+ - local_implication: [What should change locally]
27
+
28
+ ### Layout / Composition Trends
29
+
30
+ #### Entry 1
31
+
32
+ - reference: [Source name or URL]
33
+ - observation: [What layout or composition signal was observed]
34
+ - freshness_date: YYYY-MM-DD
35
+ - confidence: [high|medium|low]
36
+ - source_translation: [How the signal translates into this project]
37
+ - local_implication: [What should change locally]
38
+
39
+ ### Density / Hierarchy Trends
40
+
41
+ #### Entry 1
42
+
43
+ - reference: [Source name or URL]
44
+ - observation: [What density or hierarchy signal was observed]
45
+ - freshness_date: YYYY-MM-DD
46
+ - confidence: [high|medium|low]
47
+ - source_translation: [How the signal translates into this project]
48
+ - local_implication: [What should change locally]
16
49
 
17
- <!-- Required for UI-bearing packs. Each entry must have all 3 fields populated. (QFAI-DDP-022) -->
50
+ ### Interaction / Motion Trends
51
+
52
+ #### Entry 1
53
+
54
+ - reference: [Source name or URL]
55
+ - observation: [What interaction or motion signal was observed]
56
+ - freshness_date: YYYY-MM-DD
57
+ - confidence: [high|medium|low]
58
+ - source_translation: [How the signal translates into this project]
59
+ - local_implication: [What should change locally]
60
+
61
+ ### Component Styling Trends
62
+
63
+ #### Entry 1
64
+
65
+ - reference: [Source name or URL]
66
+ - observation: [What component styling signal was observed]
67
+ - freshness_date: YYYY-MM-DD
68
+ - confidence: [high|medium|low]
69
+ - source_translation: [How the signal translates into this project]
70
+ - local_implication: [What should change locally]
71
+
72
+ ### Stale / Overused AI Slop Patterns
73
+
74
+ #### Entry 1
75
+
76
+ - reference: [Source name or URL]
77
+ - observation: [What stale pattern should be avoided]
78
+ - freshness_date: YYYY-MM-DD
79
+ - confidence: [high|medium|low]
80
+ - source_translation: [Why this stale pattern is relevant to avoid here]
81
+ - local_implication: [What should be explicitly avoided locally]
82
+
83
+ ## Competitive Reference Registry
18
84
 
19
85
  ### Reference: [Product/Service Name]
20
86
 
87
+ - reference: [Product/Service Name or URL]
21
88
  - adopted_points: [What was adopted from this reference and why]
22
89
  - rejected_points: [What was not adopted and why]
23
90
  - local_translation: [How adopted points were adapted for this project]
@@ -1,6 +1,6 @@
1
1
  # 06 REQ (Functional Requirements)
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, see uiux/40_contracts.md for screen interaction requirements -->
3
+ <!-- UX-INTENT: If UI-bearing, see uiux/40_screen_contracts.md for screen interaction requirements -->
4
4
 
5
5
  ## Requirements Table
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 07 NFR (Non-Functional Requirements)
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, see uiux/20_eval_axis_usability.md for usability measurement targets -->
3
+ <!-- UX-INTENT: If UI-bearing, see uiux/20_design_eval_invariant.md for usability measurement targets -->
4
4
 
5
5
  ## Requirements Table
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 09 Constraints
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, see uiux/22_eval_axis_accessibility.md for accessibility constraints -->
3
+ <!-- UX-INTENT: If UI-bearing, see uiux/20_design_eval_invariant.md for accessibility constraints (invariant layer) -->
4
4
 
5
5
  ## Technical Constraints
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 10 Policy
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, see uiux/10_strategy.md for design policy alignment -->
3
+ <!-- UX-INTENT: If UI-bearing, see uiux/10_implementation_strategy.md for design policy alignment -->
4
4
 
5
5
  ## Security Policy
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 11 OQ Register
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, track design direction OQs from uiux/60_critique_loop.md -->
3
+ <!-- UX-INTENT: If UI-bearing, track design direction OQs from uiux/30_option_comparison.md and uiux/31_selected_anchor_screen.md -->
4
4
 
5
5
  ## OQ Table
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 12 OQ Resolution Log
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, log design critique resolutions from uiux/60_critique_loop.md -->
3
+ <!-- UX-INTENT: If UI-bearing, log design critique resolutions from uiux/30_option_comparison.md and uiux/31_selected_anchor_screen.md -->
4
4
 
5
5
  ## Resolution Timeline
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 13 Deferred
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, track deferred design decisions from uiux/50_review_bundle.md -->
3
+ <!-- UX-INTENT: If UI-bearing, track deferred design decisions from uiux/50_review_input_bundle.md -->
4
4
 
5
5
  ## Deferred Items
6
6
 
@@ -35,38 +35,47 @@
35
35
  - Acceptance criteria are consistent with flows/state transitions
36
36
  - Security/operations risks are reflected in diagrams where relevant
37
37
  - Mermaid diagrams use ` ```mermaid ` fences only
38
- - HTML+CSS screen mock is usable for UI alignment when UI requirements exist
39
- - If UI requirements exist and no screen mock is provided, request changes
38
+ - Strategy alignment and chosen_option consistency (when UI-bearing)
39
+ - Taste reflection completeness and clarity (when UI-bearing)
40
+ - Trend scan freshness and source translation quality (when UI-bearing)
41
+ - 3-layer axes evaluation quality and traceability (when UI-bearing)
42
+ - Option comparison integrity (when UI-bearing)
43
+ - Selected anchor screen clarity and direction justification (when UI-bearing)
44
+ - Screen contract sufficiency and strong schema completeness (when UI-bearing)
45
+ - Generic fallback risk — ensure no unreviewed generic/placeholder UI remains (when UI-bearing)
40
46
  - OQ register exit condition (open count = 0)
41
47
  - Deferred items have full metadata
42
48
 
43
- ## Design Direction Decisions
49
+ ## Selected Direction Consistency
44
50
 
45
- <!-- Required for UI-bearing packs. Populated from DDS in 03_Story-Workshop.md. -->
51
+ <!-- Required for UI-bearing packs. Verifies sidecar-family alignment. -->
46
52
 
47
- - Anchor screen: [Selected option reference]
48
- - Rejection rationale: [Why other options were not selected]
49
- - Adopted competitive references: [Key references adopted from 04_Sources.md]
53
+ - Selected direction: verify `uiux/31_selected_anchor_screen.md` Selected Direction is populated and references a compared option from `uiux/30_option_comparison.md`
54
+ - Strategy alignment: verify `uiux/10_implementation_strategy.md` aligns with the selected direction in `uiux/31_selected_anchor_screen.md`
55
+ - Evaluation traceability: verify selected direction rationale aligns with 3-layer evaluation family (20/21/22/23 + optional 24)
50
56
 
51
57
  ## Sidecar Artifact Review Scope
52
58
 
53
59
  <!-- Required for UI-bearing packs. Reviews uiux/ sidecar artifacts. -->
54
60
 
55
61
  - Verify all 11 uiux/ sidecar files are present (when UI-bearing)
56
- - Verify uiux/10_strategy.md YAML schema conforms to version `"0.1"`
62
+ - Verify uiux/10_implementation_strategy.md strict canonical schema is complete
57
63
  - Verify scoring axes have evaluation criteria and measurement approaches
58
- - Verify option comparison covers 2+ options against all scoring axes
59
- - Verify anchor screen selection references a compared option
60
- - Verify screen contracts define all 4 required states (empty/loading/error/populated)
64
+ - Verify option comparison covers 2+ options against all scoring axes in `uiux/30_option_comparison.md`
65
+ - Verify `uiux/31_selected_anchor_screen.md` Selected Direction references a compared option
66
+ - Verify `uiux/24_design_eval_dynamic_overrides.md` has documented override rules
67
+ - Verify screen contracts use nested strong schema with all 4 required states (default/loading/empty/error) and treat `uiux/40_screen_contracts.md` as the state SSOT
61
68
 
62
69
  ## Required Reviewers
63
70
 
64
- - Load all reviewers from `.qfai/assistant/steering/review-roster.yml`.
65
- - Run all reviewers in roster order for every cycle.
66
- - Allowed verdicts: `PASS`, `FAIL`, `N/A` (`N/A` requires `na_rule` reason).
71
+ - Resolve reviewers from `.qfai/assistant/steering/agent-routing.yml` and `.qfai/assistant/steering/review-profiles.yml`.
72
+ - Always run reviewers listed in `profiles.<routing_profile>.always_required` in `review-profiles.yml`.
73
+ - Add `architecture-reviewer` only when architecture-affecting decisions exist.
74
+ - Add `product-surface-reviewer` only when the pack is UI-bearing.
75
+ - Allowed verdicts: `PASS`, `FAIL`.
67
76
 
68
77
  ## RCP Rules (Mandatory)
69
78
 
70
79
  - Any feedback triggers immediate return (`changes_requested`).
71
- - After fixes, create a new review-pack and restart reviewer sequence from the first reviewer.
72
- - Set `overall_status: PASS` only when all required reviewers are `PASS` or valid `N/A`, and no unresolved `FAIL` remains.
80
+ - After fixes, rerun only failed reviewers and reviewers whose scope changed because of the fix.
81
+ - Set `overall_status: PASS` only when all routed blocking reviewers are `PASS`, and no unresolved `FAIL` remains.
@@ -1,6 +1,6 @@
1
1
  # 99 Delta
2
2
 
3
- <!-- UX-INTENT: If UI-bearing, record design direction changes from uiux/31_anchor.md -->
3
+ <!-- UX-INTENT: If UI-bearing, record design direction changes from uiux/30_option_comparison.md and uiux/31_selected_anchor_screen.md -->
4
4
 
5
5
  ## Change History
6
6
 
@@ -0,0 +1,9 @@
1
+ prototyping:
2
+ recommended_mode: standard
3
+ rationale: >
4
+ Fill this with a concrete reason tied to evidence obligations.
5
+ allowed_modes:
6
+ - low-cost
7
+ - standard
8
+ - full-harness
9
+ surface: web
@@ -1,8 +1,8 @@
1
1
  # Reviewer Result
2
2
 
3
3
  - reviewer_id: `Rxx`
4
- - reviewer_role: `qa-lead`
5
- - verdict: `PASS` <!-- PASS | FAIL | N/A -->
4
+ - reviewer_role: `<reviewer-name>`
5
+ - verdict: `PASS` <!-- PASS | FAIL -->
6
6
  - reviewed_at: `YYYY-MM-DDThh:mm:ssZ`
7
7
 
8
8
  ## Checked
@@ -13,7 +13,11 @@
13
13
  - [ ] Clarity and actionability
14
14
  - [ ] Mermaid diagrams are sufficient for decisions (scope/AC/risk consistency)
15
15
  - [ ] Mermaid diagrams use ` ```mermaid ` fences only
16
- - [ ] HTML+CSS screen mock exists when UI requirements are present
16
+ - [ ] Taste interview completeness (when UI-bearing)
17
+ - [ ] Trend freshness and translation quality (when UI-bearing)
18
+ - [ ] 3-layer evaluation quality and traceability (when UI-bearing)
19
+ - [ ] Option comparison integrity and selected direction clarity (when UI-bearing)
20
+ - [ ] Strong screen contract completeness (when UI-bearing)
17
21
  - [ ] OQ register exit condition (open count = 0)
18
22
  - [ ] Deferred items have full metadata
19
23
 
@@ -23,4 +27,4 @@
23
27
 
24
28
  ## Decision
25
29
 
26
- - PASS / FAIL / N/A
30
+ - PASS / FAIL
@@ -22,8 +22,11 @@
22
22
  - Acceptance criteria are consistent with flows/state transitions
23
23
  - Security/operations risks are reflected in diagrams where relevant
24
24
  - Mermaid diagrams use ` ```mermaid ` fences only (no ` ```text ` or language-less fences)
25
- - HTML+CSS screen mock is usable for UI alignment when UI requirements exist
26
- - If UI requirements exist and no screen mock is provided, request changes
25
+ - Taste interview completeness and clarity (when UI-bearing)
26
+ - Trend freshness and source translation quality (when UI-bearing)
27
+ - 3-layer evaluation quality and traceability (when UI-bearing)
28
+ - Option comparison integrity and selected direction clarity (when UI-bearing)
29
+ - Strong screen contract completeness (when UI-bearing)
27
30
  - OQ register exit condition (open count = 0)
28
31
  - Deferred items have full metadata in `13_Deferred.md`
29
32
  - Validate hard gate evidence exists (`.qfai/report/validate.log`).
@@ -31,12 +34,13 @@
31
34
 
32
35
  ## Required Reviewers
33
36
 
34
- - Load all reviewers from `.qfai/assistant/steering/review-roster.yml`.
35
- - Run all reviewers in roster order for every cycle.
36
- - Allowed verdicts: `PASS`, `FAIL`, `N/A` (`N/A` requires `na_rule` reason).
37
+ - Resolve reviewers from `.qfai/assistant/steering/agent-routing.yml` and `.qfai/assistant/steering/review-profiles.yml`.
38
+ - Always run reviewers listed in `profiles.<routing_profile>.always_required` in `review-profiles.yml`.
39
+ - Add conditional reviewers according to `conditional_required` and related routing rules defined in `agent-routing.yml` and `review-profiles.yml` (do not introduce additional ad-hoc conditions in this template).
40
+ - Allowed verdicts: `PASS`, `FAIL`.
37
41
 
38
42
  ## RCP Rules (Mandatory)
39
43
 
40
44
  - Any feedback triggers immediate return (`changes_requested`).
41
- - After fixes, create a new review-pack and restart reviewer sequence from the first reviewer.
42
- - Set `overall_status: PASS` only when all required reviewers are `PASS` or valid `N/A`, and no unresolved `FAIL` remains.
45
+ - After fixes, rerun only failed reviewers and reviewers whose scope changed because of the fix.
46
+ - Set `overall_status: PASS` only when all routed blocking reviewers are `PASS`, and no unresolved `FAIL` remains.
@@ -1,61 +1,23 @@
1
1
  {
2
- "version": "1.0",
2
+ "version": "2.0",
3
3
  "created_at": "YYYY-MM-DDThh:mm:ssZ",
4
4
  "target": {
5
5
  "kind": "discussion",
6
6
  "path": ".qfai/discussion/discussion-YYYYMMDDhhmmssSSS"
7
7
  },
8
- "roster": [
8
+ "routing_profile": "requirements-heavy",
9
+ "reviewers": [
9
10
  {
10
- "reviewer": "qa-lead",
11
+ "reviewer": "completion-reviewer",
11
12
  "status": "PASS",
12
13
  "feedback_count": 0
13
14
  },
14
15
  {
15
- "reviewer": "qa-gatekeeper",
16
- "status": "PASS",
17
- "feedback_count": 0
18
- },
19
- {
20
- "reviewer": "reviewer",
21
- "status": "PASS",
22
- "feedback_count": 0
23
- },
24
- {
25
- "reviewer": "code-reviewer",
26
- "status": "PASS",
27
- "feedback_count": 0
28
- },
29
- {
30
- "reviewer": "architect-reviewer",
31
- "status": "PASS",
32
- "feedback_count": 0
33
- },
34
- {
35
- "reviewer": "qa-reviewer",
36
- "status": "PASS",
37
- "feedback_count": 0
38
- },
39
- {
40
- "reviewer": "frontend-reviewer",
41
- "status": "PASS",
42
- "feedback_count": 0
43
- },
44
- {
45
- "reviewer": "backend-reviewer",
46
- "status": "PASS",
47
- "feedback_count": 0
48
- },
49
- {
50
- "reviewer": "design-review-lead",
51
- "status": "PASS",
52
- "feedback_count": 0
53
- },
54
- {
55
- "reviewer": "runtime-gatekeeper",
16
+ "reviewer": "requirements-reviewer",
56
17
  "status": "PASS",
57
18
  "feedback_count": 0
58
19
  }
59
20
  ],
21
+ "conditional_reviewers": [],
60
22
  "overall_status": "PASS"
61
23
  }