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,45 +0,0 @@
1
- # Option Comparison
2
-
3
- ## Purpose
4
-
5
- Compare 2+ design options against scoring axes to support anchor screen selection.
6
-
7
- ## Comparison Matrix
8
-
9
- ### Invariant Axes
10
-
11
- | Axis | Option A: [Name] | Option B: [Name] | Notes |
12
- | ------------------ | ---------------- | ---------------- | ----------- |
13
- | Usability (20) | [score 1-5] | [score 1-5] | [rationale] |
14
- | Consistency (21) | [score 1-5] | [score 1-5] | [rationale] |
15
- | Accessibility (22) | [score 1-5] | [score 1-5] | [rationale] |
16
- | Delight (23) | [score 1-5] | [score 1-5] | [rationale] |
17
-
18
- ### Trend-derived Axes
19
-
20
- | Axis | Option A: [Name] | Option B: [Name] | Source Translation |
21
- | --------------- | ---------------- | ---------------- | ------------------ |
22
- | (trend-derived) | [score 1-5] | [score 1-5] | [research source] |
23
-
24
- ### Product-specific Axes
25
-
26
- | Axis | Option A: [Name] | Option B: [Name] | Notes |
27
- | ------------------ | ---------------- | ---------------- | ----------- |
28
- | (product-specific) | [score 1-5] | [score 1-5] | [rationale] |
29
-
30
- ## Aggregate Scoring
31
-
32
- | Option | Weights | Normalized Total | Threshold | Rank |
33
- | -------- | ------------------------------------- | ---------------- | --------------------- | ------ |
34
- | Option A | Invariant: 60%, Trend: 25%, Prod: 15% | [total] | [accept/refine/pivot] | [rank] |
35
- | Option B | Invariant: 60%, Trend: 25%, Prod: 15% | [total] | [accept/refine/pivot] | [rank] |
36
-
37
- ## Recommendation
38
-
39
- Selected: [Option X] — [rationale for selection based on scores and constraints]
40
-
41
- ## Cross-references
42
-
43
- - Invariant axes: `20_eval_axis_usability.md`, `21_eval_axis_consistency.md`, `22_eval_axis_accessibility.md`, `23_eval_axis_delight.md`
44
- - 3-layer model & aggregate rules: `23_eval_axis_delight.md` (Aggregate Scoring Rules section)
45
- - Anchor selection: `31_anchor.md`
@@ -1,27 +0,0 @@
1
- # Anchor Screen Selection
2
-
3
- ## Purpose
4
-
5
- Document the selected anchor screen and rationale for the design direction.
6
-
7
- ## Selected Anchor
8
-
9
- - Screen: [Screen name/identifier]
10
- - Source option: [Option X from 30_comparison.md]
11
- - Rationale: [Why this screen was selected as the anchor]
12
-
13
- ## Anchor Screen Description
14
-
15
- - Primary purpose: [What the user accomplishes on this screen]
16
- - Key interactions: [List of primary interactions]
17
- - Entry points: [How users reach this screen]
18
- - Exit points: [Where users go from this screen]
19
-
20
- ## Design Constraints
21
-
22
- - [Constraint derived from comparison and scoring]
23
-
24
- ## Cross-references
25
-
26
- - Option comparison: `30_comparison.md`
27
- - Screen contracts: `40_contracts.md`
@@ -1,51 +0,0 @@
1
- # Screen Contracts
2
-
3
- ## Purpose
4
-
5
- Draft interaction contracts for the anchor screen and key screens.
6
-
7
- ## Anchor Screen Contract
8
-
9
- ### Screen: [Screen name]
10
-
11
- - Route: [/path-to-screen]
12
- - Actor: [primary user role]
13
- - Purpose: [what the user accomplishes on this screen]
14
-
15
- #### Primary Tasks
16
-
17
- | Task | Trigger | Success Criteria |
18
- | ---------------- | ------------- | -------------------- |
19
- | [primary task] | [user action] | [observable outcome] |
20
- | [secondary task] | [user action] | [observable outcome] |
21
-
22
- #### Required States
23
-
24
- | State | Trigger | Display |
25
- | --------- | ---------------------- | --------------------------- |
26
- | empty | Initial load, no data | [empty state description] |
27
- | loading | Data fetch in progress | [loading indicator] |
28
- | error | Fetch failure | [error message + retry CTA] |
29
- | populated | Data available | [primary content layout] |
30
-
31
- #### Transitions
32
-
33
- | From | To | Trigger |
34
- | --------- | --------- | -------------------- |
35
- | empty | loading | Data fetch initiated |
36
- | loading | populated | Data received |
37
- | loading | error | Fetch failure |
38
- | error | loading | Retry action |
39
- | populated | empty | Clear action |
40
-
41
- #### Observable Outcomes
42
-
43
- | Outcome | Verification Method |
44
- | -------------------------- | ------------------- |
45
- | [expected user outcome] | [how to verify] |
46
- | [expected system behavior] | [how to verify] |
47
-
48
- ## Cross-references
49
-
50
- - Anchor selection: `31_anchor.md`
51
- - State coverage: see `../03_Story-Workshop.md` Design Direction Summary
@@ -1,31 +0,0 @@
1
- # Review Input Bundle
2
-
3
- ## Purpose
4
-
5
- Consolidate all sidecar artifacts into a review-ready bundle for design reviewers.
6
-
7
- ## Bundle Contents
8
-
9
- | Artifact | Path | Status |
10
- | ------------------ | ------------------------------------ | ------------------------- |
11
- | Strategy | `uiux/10_strategy.md` | [draft/reviewed/approved] |
12
- | Usability axis | `uiux/20_eval_axis_usability.md` | [draft/reviewed/approved] |
13
- | Consistency axis | `uiux/21_eval_axis_consistency.md` | [draft/reviewed/approved] |
14
- | Accessibility axis | `uiux/22_eval_axis_accessibility.md` | [draft/reviewed/approved] |
15
- | Delight axis | `uiux/23_eval_axis_delight.md` | [draft/reviewed/approved] |
16
- | Comparison | `uiux/30_comparison.md` | [draft/reviewed/approved] |
17
- | Anchor selection | `uiux/31_anchor.md` | [draft/reviewed/approved] |
18
- | Screen contracts | `uiux/40_contracts.md` | [draft/reviewed/approved] |
19
-
20
- ## Review Checklist
21
-
22
- - [ ] Strategy aligns with surface type and project constraints
23
- - [ ] All 4 invariant scoring axes defined with measurable criteria
24
- - [ ] 2+ options compared against all axes
25
- - [ ] Anchor screen selected with rationale
26
- - [ ] Screen contracts cover all 4 required states (empty/loading/error/populated)
27
- - [ ] Critique loop entries addressed or deferred with rationale
28
-
29
- ## Reviewer Notes
30
-
31
- <!-- Reviewer feedback is captured here during the review cycle. -->
@@ -1,23 +0,0 @@
1
- # Critique Loop Tracking
2
-
3
- ## Purpose
4
-
5
- Track iterative design critique rounds and resolutions.
6
-
7
- ## Critique Log
8
-
9
- | Round | Source | Finding | Severity | Resolution | Status |
10
- | ----- | ------------------------- | --------------------- | ----------------- | -------------------------------------- | ------------------------ |
11
- | 1 | [reviewer/self/automated] | [finding description] | [high/medium/low] | [resolution or rationale for deferral] | [open/resolved/deferred] |
12
-
13
- ## Resolution Summary
14
-
15
- - Total findings: 0
16
- - Resolved: 0
17
- - Deferred: 0 (with rationale in Deferred column)
18
- - Open: 0
19
-
20
- ## Cross-references
21
-
22
- - Review bundle: `50_review_bundle.md`
23
- - Design decisions: see `../03_Story-Workshop.md` Design Direction Summary
@@ -1,128 +0,0 @@
1
- schema_version: "1.0"
2
-
3
- feedback_policy:
4
- alternative_required: true
5
- description: "All reviewers MUST provide a concrete alternative or fix proposal when returning FAIL. Feedback without a concrete alternative is invalid and triggers re-judgment."
6
-
7
- roster:
8
- - id: qa-lead
9
- name: Quality Lead
10
- scope: [discuss, require, sdd]
11
- must_check:
12
- - Verify scope, objectives, and requirement completeness.
13
- - Verify risk, quality, and acceptance readiness.
14
- can_be_na: false
15
- na_rule: "N/A is not allowed for this reviewer."
16
-
17
- - id: qa-gatekeeper
18
- name: QA Gatekeeper
19
- scope: [discuss, require, sdd]
20
- must_check:
21
- - Verify gate criteria and blocker handling rules.
22
- - Verify review-cycle restart behavior on failure.
23
- can_be_na: false
24
- na_rule: "N/A is not allowed for this reviewer."
25
-
26
- - id: reviewer
27
- name: Independent Reviewer
28
- scope: [discuss, require, sdd]
29
- must_check:
30
- - Verify consistency and independent pass/fail judgment.
31
- - Verify evidence and rationale are reviewable.
32
- can_be_na: false
33
- na_rule: "N/A is not allowed for this reviewer."
34
-
35
- - id: code-reviewer
36
- name: Code Reviewer
37
- scope: [discuss, require, sdd]
38
- must_check:
39
- - Verify maintainability and implementation-risk signals.
40
- - Verify design intent is actionable for downstream coding.
41
- can_be_na: true
42
- na_rule: "Allowed only if no implementation-impacting decision exists."
43
-
44
- - id: architect-reviewer
45
- name: Architect Reviewer
46
- scope: [discuss, require, sdd]
47
- must_check:
48
- - Verify architecture constraints and technical consistency.
49
- - Verify decision trade-offs and rejected-option rationale.
50
- can_be_na: true
51
- na_rule: "Allowed only if no architecture-affecting decision exists."
52
-
53
- - id: qa-reviewer
54
- name: QA Reviewer
55
- scope: [discuss, require, sdd]
56
- must_check:
57
- - Verify testability, edge cases, and failure-path coverage.
58
- - Verify open/deferred items are explicit and actionable.
59
- can_be_na: true
60
- na_rule: "Allowed only if no quality-impacting change exists."
61
-
62
- - id: frontend-reviewer
63
- name: Frontend Reviewer
64
- scope: [discuss, require, sdd]
65
- must_check:
66
- - Verify UI/UX, accessibility, and interaction implications.
67
- - Verify user-facing flows and exception paths.
68
- can_be_na: true
69
- na_rule: "Allowed only if no frontend or UX impact exists."
70
-
71
- - id: backend-reviewer
72
- name: Backend Reviewer
73
- scope: [discuss, require, sdd]
74
- must_check:
75
- - Verify backend/API/data consistency implications.
76
- - Verify operational and reliability concerns.
77
- can_be_na: true
78
- na_rule: "Allowed only if no backend or data impact exists."
79
-
80
- - id: design-review-lead
81
- name: Design Review Lead
82
- scope: [discuss, require, sdd]
83
- must_check:
84
- - Verify requirement/design coherence and structure quality.
85
- - Verify information architecture and decision clarity.
86
- can_be_na: true
87
- na_rule: "Allowed only if no product/design decision changed."
88
-
89
- - id: runtime-gatekeeper
90
- name: Runtime Gatekeeper
91
- scope: [discuss, require, sdd]
92
- must_check:
93
- - Verify operational readiness and runtime risk controls.
94
- - Verify mitigation and rollback assumptions.
95
- can_be_na: true
96
- na_rule: "Allowed only if no runtime/operations impact exists."
97
-
98
- - id: devils-advocate
99
- name: Devil's Advocate
100
- scope: [discuss, require, sdd]
101
- must_check:
102
- - Challenge every assumption, conclusion, and design decision as if it were fundamentally wrong.
103
- - Provide a concrete desired-state alternative for every issue raised; bare negation without an alternative is invalid.
104
- - Persist with objections using any rhetorical means (nitpicking, reductio ad absurdum, forced analogy) to surface hidden risks.
105
- can_be_na: false
106
- na_rule: "N/A is not allowed for this reviewer."
107
- behavioral_principles:
108
- premise: "Assume the current state is fundamentally incorrect."
109
- stance: "Challenge assumptions aggressively and present objections clearly, even under uncertainty."
110
- requirement: "When returning FAIL, always provide a concrete alternative proposal."
111
- escalation:
112
- consecutive_fail_limit: 3
113
- demotion: advisory
114
- demotion_scope: current_review_cycle
115
-
116
- - id: pattern-doubler
117
- name: Pattern Doubler
118
- scope: [discuss, require, sdd]
119
- must_check:
120
- - Count all ID-bearing items (US, AC, BR, EX, TC) in the target spec and demand at least 2x the current count.
121
- - Identify missing perspectives (boundary, negative, permission, state-transition, idempotency) and propose concrete additions with rationale.
122
- - Persist with demands using any rhetorical means (edge-case invention, combinatorial explosion, analogy) to maximize pattern coverage.
123
- can_be_na: true
124
- na_rule: "Allowed only if the target artifact contains no ID-bearing spec items (US/AC/BR/EX/TC)."
125
- behavioral_principles:
126
- premise: "Current pattern coverage is insufficient."
127
- stance: "Push clearly for at least 2x pattern coverage and challenge under-specified cases."
128
- requirement: "Justify added patterns and set the doubling target from counts of ID-bearing items."
@@ -1,3 +0,0 @@
1
- *
2
- !.gitignore
3
- !README.md
@@ -1,3 +0,0 @@
1
- *
2
- !.gitignore
3
- !README.md
@@ -1,5 +0,0 @@
1
- *
2
- !.gitignore
3
- !README.md
4
- !review-*/
5
- !review-*/**