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.
- package/README.md +34 -70
- package/assets/init/.qfai/README.md +11 -16
- package/assets/init/.qfai/assistant/agents/acceptance-test-engineer.md +51 -0
- package/assets/init/.qfai/assistant/agents/architecture-reviewer.md +57 -0
- package/assets/init/.qfai/assistant/agents/backend-engineer.md +40 -31
- package/assets/init/.qfai/assistant/agents/completion-reviewer.md +48 -0
- package/assets/init/.qfai/assistant/agents/delivery-planner.md +52 -0
- package/assets/init/.qfai/assistant/agents/devops-ci-engineer.md +31 -28
- package/assets/init/.qfai/assistant/agents/discovery-analyst.md +50 -0
- package/assets/init/.qfai/assistant/agents/doc-steward.md +30 -20
- package/assets/init/.qfai/assistant/agents/frontend-engineer.md +40 -31
- package/assets/init/.qfai/assistant/agents/implementation-reviewer.md +58 -0
- package/assets/init/.qfai/assistant/agents/orchestrator.md +19 -2
- package/assets/init/.qfai/assistant/agents/product-experience-architect.md +59 -0
- package/assets/init/.qfai/assistant/agents/product-surface-reviewer.md +60 -0
- package/assets/init/.qfai/assistant/agents/qa-gatekeeper.md +53 -48
- package/assets/init/.qfai/assistant/agents/qa-strategist.md +49 -0
- package/assets/init/.qfai/assistant/agents/requirements-analyst.md +32 -29
- package/assets/init/.qfai/assistant/agents/requirements-reviewer.md +48 -0
- package/assets/init/.qfai/assistant/agents/solution-architect.md +59 -0
- package/assets/init/.qfai/assistant/agents/test-design-analyst.md +64 -0
- package/assets/init/.qfai/assistant/instructions/agent-selection.md +64 -50
- package/assets/init/.qfai/assistant/instructions/communication.md +17 -0
- package/assets/init/.qfai/assistant/instructions/constitution.md +36 -1
- package/assets/init/.qfai/assistant/instructions/drift-protocol.md +1 -1
- package/assets/init/.qfai/assistant/instructions/requirements-decomposition.md +20 -13
- package/assets/init/.qfai/assistant/instructions/workflow.md +2 -1
- package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +32 -31
- package/assets/init/.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md +80 -0
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +21 -15
- package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +95 -61
- package/assets/init/.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md +17 -85
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/01_Context.md +9 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/02_Inception-Deck.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/03_Story-Workshop.md +17 -60
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/04_Sources.md +69 -2
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/06_REQ.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/07_NFR.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/09_Constraints.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/10_Policy.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/11_OQ-Register.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/12_OQ-Resolution-Log.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/13_Deferred.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/14_Review-Request.md +25 -16
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/99_delta.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/prototyping.yaml +9 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/Rxx_reviewer.md +8 -4
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/review_request.md +11 -7
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/summary.json +6 -44
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/00_index.md +29 -14
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/10_implementation_strategy.md +20 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/11_design_taste_interview.md +45 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/20_design_eval_invariant.md +68 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/21_design_eval_trend_derived.md +68 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/22_design_eval_product_specific.md +68 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/23_design_eval_aggregate.md +41 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/24_design_eval_dynamic_overrides.md +28 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/30_option_comparison.md +56 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/31_selected_anchor_screen.md +42 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_screen_contracts.md +44 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_input_bundle.md +36 -0
- package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +65 -67
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +171 -279
- package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +91 -57
- package/assets/init/.qfai/assistant/skills/qfai-sdd/references/rcp_footer.md +21 -80
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/evidence/import-lite.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/11_Slice-Policy.md +50 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/06_Test-Cases.md +23 -3
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +25 -17
- package/assets/init/.qfai/assistant/steering/agent-catalog.yml +194 -0
- package/assets/init/.qfai/assistant/steering/agent-routing.yml +176 -0
- package/assets/init/.qfai/assistant/steering/cli-ux-guidelines.md +49 -0
- package/assets/init/.qfai/assistant/steering/manifest.md +44 -19
- package/assets/init/.qfai/assistant/steering/product.md +53 -11
- package/assets/init/.qfai/assistant/steering/research-first-protocol.md +58 -0
- package/assets/init/.qfai/assistant/steering/review-gate.rules.yml +17 -66
- package/assets/init/.qfai/assistant/steering/review-profiles.yml +30 -0
- package/assets/init/.qfai/assistant/steering/structure.md +30 -16
- package/assets/init/.qfai/assistant/steering/tech.md +37 -21
- package/assets/init/.qfai/assistant/steering/ui-definition-protocol.md +54 -0
- package/assets/init/.qfai/contracts/README.md +10 -4
- package/assets/init/.qfai/contracts/design/README.md +32 -0
- package/assets/init/.qfai/contracts/ui/README.md +5 -3
- package/assets/init/.qfai/discussion/README.md +52 -5
- package/assets/init/.qfai/evidence/README.md +143 -116
- package/assets/init/.qfai/report/README.md +1 -1
- package/assets/init/.qfai/review/README.md +24 -9
- package/assets/init/.qfai/specs/README.md +5 -2
- package/assets/init/root/qfai.config.yaml +13 -0
- package/assets/uix-rev/comparison-review.md +24 -7
- package/assets/uix-rev/contracts-review.md +17 -10
- package/assets/uix-rev/scoring-review.md +42 -6
- package/assets/uix-rev/strategy-review.md +13 -9
- package/dist/cli/index.cjs +15618 -11547
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +15487 -11415
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +10486 -6080
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +766 -198
- package/dist/index.d.ts +766 -198
- package/dist/index.mjs +10823 -6420
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -3
- package/assets/init/.qfai/assistant/agents/architect-reviewer.md +0 -65
- package/assets/init/.qfai/assistant/agents/architect.md +0 -49
- package/assets/init/.qfai/assistant/agents/atdd-api-implementer.md +0 -49
- package/assets/init/.qfai/assistant/agents/atdd-e2e-implementer.md +0 -48
- package/assets/init/.qfai/assistant/agents/atdd-integration-implementer.md +0 -48
- package/assets/init/.qfai/assistant/agents/backend-reviewer.md +0 -66
- package/assets/init/.qfai/assistant/agents/code-reviewer.md +0 -67
- package/assets/init/.qfai/assistant/agents/contract-designer.md +0 -49
- package/assets/init/.qfai/assistant/agents/coverage-planner.md +0 -49
- package/assets/init/.qfai/assistant/agents/design-owner.md +0 -48
- package/assets/init/.qfai/assistant/agents/design-review-lead.md +0 -68
- package/assets/init/.qfai/assistant/agents/facilitator.md +0 -48
- package/assets/init/.qfai/assistant/agents/frontend-reviewer.md +0 -66
- package/assets/init/.qfai/assistant/agents/interviewer.md +0 -45
- package/assets/init/.qfai/assistant/agents/option-explorer.md +0 -51
- package/assets/init/.qfai/assistant/agents/option-reviewer.md +0 -66
- package/assets/init/.qfai/assistant/agents/oq-harvester.md +0 -50
- package/assets/init/.qfai/assistant/agents/oq-reviewer.md +0 -70
- package/assets/init/.qfai/assistant/agents/planner.md +0 -48
- package/assets/init/.qfai/assistant/agents/project-lead.md +0 -47
- package/assets/init/.qfai/assistant/agents/prototyping-coverage-auditor.md +0 -46
- package/assets/init/.qfai/assistant/agents/qa-engineer.md +0 -47
- package/assets/init/.qfai/assistant/agents/qa-lead.md +0 -44
- package/assets/init/.qfai/assistant/agents/qa-reviewer.md +0 -66
- package/assets/init/.qfai/assistant/agents/researcher.md +0 -47
- package/assets/init/.qfai/assistant/agents/reviewer.md +0 -62
- package/assets/init/.qfai/assistant/agents/runtime-gatekeeper.md +0 -46
- package/assets/init/.qfai/assistant/agents/test-case-owner.md +0 -53
- package/assets/init/.qfai/assistant/agents/test-engineer.md +0 -50
- package/assets/init/.qfai/assistant/agents/test-volume-estimator.md +0 -48
- package/assets/init/.qfai/assistant/agents/ui-ux-reviewer.md +0 -71
- package/assets/init/.qfai/assistant/agents/unit-test-scope-enforcer.md +0 -46
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/10_strategy.md +0 -28
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/20_eval_axis_usability.md +0 -31
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/21_eval_axis_consistency.md +0 -31
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/22_eval_axis_accessibility.md +0 -31
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/23_eval_axis_delight.md +0 -56
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/30_comparison.md +0 -45
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/31_anchor.md +0 -27
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_contracts.md +0 -51
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_bundle.md +0 -31
- package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/60_critique_loop.md +0 -23
- package/assets/init/.qfai/assistant/skills/qfai-prototyping-full-harness/SKILL.md +0 -185
- package/assets/init/.qfai/assistant/steering/review-roster.yml +0 -128
- package/assets/init/.qfai/evidence/.gitignore +0 -3
- package/assets/init/.qfai/report/.gitignore +0 -3
- 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
|
package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_bundle.md
DELETED
|
@@ -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. -->
|
package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/60_critique_loop.md
DELETED
|
@@ -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,185 +0,0 @@
|
|
|
1
|
-
# /qfai-prototyping-full-harness
|
|
2
|
-
|
|
3
|
-
[DRIFT-PROTOCOL:MANDATORY]
|
|
4
|
-
|
|
5
|
-
Premium prototyping skill with planner/generator/evaluator iteration loop.
|
|
6
|
-
Full-harness mode is an **explicit, non-default** path activated only via
|
|
7
|
-
`qfai prototyping --mode full-harness` or discussion artifact recommendation.
|
|
8
|
-
|
|
9
|
-
> This skill defines a real execution workflow — it is NOT a routing-only redirect.
|
|
10
|
-
|
|
11
|
-
## When to Use
|
|
12
|
-
|
|
13
|
-
- Projects requiring L3–L5 fidelity evidence (production-ready prototypes).
|
|
14
|
-
- Evaluation needs: weighted multi-dimension scoring with decision gates.
|
|
15
|
-
- Explicit opt-in only; never auto-activated from config, env, or standard mode.
|
|
16
|
-
|
|
17
|
-
## Workflow Loop
|
|
18
|
-
|
|
19
|
-
The full-harness iteration loop proceeds through four phases per cycle:
|
|
20
|
-
|
|
21
|
-
### Planner Phase
|
|
22
|
-
|
|
23
|
-
- Generate strategy from spec constraints, budget, and prior iteration feedback.
|
|
24
|
-
- Produce a ranked plan with target dimensions, expected quality floor, and cost estimate.
|
|
25
|
-
- Constraints propagated from discussion artifact recommendation.
|
|
26
|
-
|
|
27
|
-
### Generator Phase
|
|
28
|
-
|
|
29
|
-
- Execute prototyping output production based on planner strategy.
|
|
30
|
-
- Incorporate refinement notes from prior evaluator feedback.
|
|
31
|
-
- Produce render evidence, test results, and validator output as artifacts.
|
|
32
|
-
|
|
33
|
-
### Evaluator Phase
|
|
34
|
-
|
|
35
|
-
- Apply weighted scoring across configured dimensions (floor enforcement).
|
|
36
|
-
- Decision gate: converge, refine, or pivot based on scoring-ready schema.
|
|
37
|
-
- Record scoring trace with dimension-level breakdown for auditability.
|
|
38
|
-
|
|
39
|
-
### Decision Gate
|
|
40
|
-
|
|
41
|
-
- Convergence criteria: all dimension floors met AND aggregate score above threshold.
|
|
42
|
-
- Refinement: loop back to generator with evaluator feedback.
|
|
43
|
-
- Pivot: loop back to planner with strategic reassessment.
|
|
44
|
-
- Termination: max iterations reached OR convergence achieved.
|
|
45
|
-
|
|
46
|
-
## Evidence Collection
|
|
47
|
-
|
|
48
|
-
Every full-harness run MUST produce:
|
|
49
|
-
|
|
50
|
-
- Render evidence with `captured / skipped / failed` status (3-state vocabulary).
|
|
51
|
-
- Iteration history (planner input → generator output → evaluator score per cycle).
|
|
52
|
-
- Scoring trace with dimension-level breakdown.
|
|
53
|
-
- Termination reason (converged / max-iterations / manual-stop).
|
|
54
|
-
- Validator output from `qfai validate` at each iteration.
|
|
55
|
-
|
|
56
|
-
## Reviewer Invocation
|
|
57
|
-
|
|
58
|
-
- Generate review summary at convergence or termination.
|
|
59
|
-
- Review findings must reference iteration history and scoring trace.
|
|
60
|
-
- Reviewer sign-off is a required gate before evidence is finalized.
|
|
61
|
-
|
|
62
|
-
### Reviewer Gate (MUST)
|
|
63
|
-
|
|
64
|
-
- Final completion gate MUST be delegated to an independent Reviewer sub-agent.
|
|
65
|
-
- Reviewer checks (minimum):
|
|
66
|
-
- evidence completeness and iteration history integrity,
|
|
67
|
-
- scoring trace auditability and calibration adherence,
|
|
68
|
-
- Drift Protocol was enforced,
|
|
69
|
-
- test-layer obligations match `test-layers.md` and plan,
|
|
70
|
-
- floors and ratios are **signals, not gates**.
|
|
71
|
-
- Reviewer returns only `PASS` or `REVISE`.
|
|
72
|
-
- Every `REVISE` must include a concrete alternative proposal.
|
|
73
|
-
|
|
74
|
-
## Calibration Integration
|
|
75
|
-
|
|
76
|
-
- Scoring-ready schema defines dimension weights and floor thresholds.
|
|
77
|
-
- Calibration config is read from `qfai.config.yaml` under `prototyping.calibration`.
|
|
78
|
-
- Threshold adjustments are logged in iteration history for traceability.
|
|
79
|
-
|
|
80
|
-
## Three-Mode Positioning
|
|
81
|
-
|
|
82
|
-
This skill covers **full-harness** mode only. See also:
|
|
83
|
-
|
|
84
|
-
| Mode | Scope | Skill |
|
|
85
|
-
| ---------------- | --------------------------------------- | --------------------------------------------- |
|
|
86
|
-
| **low-cost** | Static checks only (L1/L2) | `/qfai-prototyping` |
|
|
87
|
-
| **standard** | Static + optional light runtime (L2/L3) | `/qfai-prototyping` |
|
|
88
|
-
| **full-harness** | Static + runtime-heavy (L3/L4/L5) | `/qfai-prototyping-full-harness` (this skill) |
|
|
89
|
-
|
|
90
|
-
Standard and low-cost modes are handled by the standard `/qfai-prototyping` skill.
|
|
91
|
-
Full-harness adds runtime-heavy obligations: API non-404 checks, DB existence verification,
|
|
92
|
-
and UI route reachability — these are NOT imposed on standard or low-cost modes.
|
|
93
|
-
|
|
94
|
-
## Non-UI Projects
|
|
95
|
-
|
|
96
|
-
For non-UI projects (`surface: non-ui`), this skill returns n/a.
|
|
97
|
-
Full-harness obligations assume a UI-bearing surface.
|
|
98
|
-
|
|
99
|
-
## Sub-agent Delegation (MANDATORY)
|
|
100
|
-
|
|
101
|
-
This section is mandatory and overrides conflicting fallback text.
|
|
102
|
-
|
|
103
|
-
### Orchestrator Protocol (MUST)
|
|
104
|
-
|
|
105
|
-
- Orchestrator may only create work orders, delegate tasks, integrate outputs, and present results to the user.
|
|
106
|
-
- Orchestrator MUST NOT generate the primary artifact first draft.
|
|
107
|
-
- Orchestrator MUST NOT serve as Reviewer or skip delegation for convenience.
|
|
108
|
-
|
|
109
|
-
### Capability Probe (MUST)
|
|
110
|
-
|
|
111
|
-
1. Run one harmless Probe Task (for example: "reply with ok") once at stage start.
|
|
112
|
-
2. If subagents are unavailable, explicitly ask the user for Simulation mode approval.
|
|
113
|
-
3. Without explicit approval, stop the stage.
|
|
114
|
-
|
|
115
|
-
### Simulation mode (Opt-in only)
|
|
116
|
-
|
|
117
|
-
- Allowed only when the user explicitly states `Simulation mode allowed`.
|
|
118
|
-
- Record both in evidence:
|
|
119
|
-
- `Subagents: simulated (reason: <why unavailable>)`
|
|
120
|
-
- `User approval: <quote or reference>`
|
|
121
|
-
|
|
122
|
-
## Work Orders Summary
|
|
123
|
-
|
|
124
|
-
Every major artifact in this stage MUST include this table:
|
|
125
|
-
|
|
126
|
-
| Step | Role (sub-agent) | Task title | Input (refs) | Output (refs) | Status (PASS/REVISE) |
|
|
127
|
-
| ---- | ---------------- | ---------- | ------------ | ------------- | -------------------- |
|
|
128
|
-
| 1 | <role> | <task> | <refs> | <refs> | PASS/REVISE |
|
|
129
|
-
|
|
130
|
-
## CRITICAL CONSTRAINTS (Read First)
|
|
131
|
-
|
|
132
|
-
- Scope is full-harness prototyping only — do not run standard/low-cost validation.
|
|
133
|
-
- Contracts are strict inputs in this stage.
|
|
134
|
-
- Runtime checks are mandatory for this mode (UI reachability, endpoint liveness, DB presence).
|
|
135
|
-
- Evidence must capture iteration-level detail including scoring traces.
|
|
136
|
-
- DONE is forbidden when iteration loop has not converged or max-iterations is not reached.
|
|
137
|
-
|
|
138
|
-
## Completion Contract (Shared)
|
|
139
|
-
|
|
140
|
-
Before declaring completion, you MUST:
|
|
141
|
-
|
|
142
|
-
- resolve or explicitly defer ambiguous items,
|
|
143
|
-
- verify every required artifact exists and is complete,
|
|
144
|
-
- scan outputs for placeholders (TBD/TODO/OPEN QUESTION and equivalents),
|
|
145
|
-
- run the smallest executable smoke proof and record outcomes.
|
|
146
|
-
|
|
147
|
-
## Evidence (MANDATORY)
|
|
148
|
-
|
|
149
|
-
Create/update both artifacts in `.qfai/evidence/`:
|
|
150
|
-
|
|
151
|
-
1. Markdown evidence with sections:
|
|
152
|
-
- Iteration History (planner/generator/evaluator per cycle)
|
|
153
|
-
- Scoring Trace (dimension-level breakdown)
|
|
154
|
-
- Termination Reason
|
|
155
|
-
- Work Orders Summary
|
|
156
|
-
2. JSON evidence with minimum fields:
|
|
157
|
-
- `iterations[]` with per-cycle scoring and decision
|
|
158
|
-
- `meta.generatedAt`, `meta.toolVersion`, `meta.commands[]`
|
|
159
|
-
|
|
160
|
-
## FINAL CHECKLIST (Check Last)
|
|
161
|
-
|
|
162
|
-
- [ ] All iteration cycles are recorded with scoring traces.
|
|
163
|
-
- [ ] Convergence or termination condition was met.
|
|
164
|
-
- [ ] Reviewer returned PASS.
|
|
165
|
-
- [ ] Evidence artifacts are updated.
|
|
166
|
-
- [ ] `qfai validate --fail-on error` passes.
|
|
167
|
-
|
|
168
|
-
## Completion Checklist (MUST)
|
|
169
|
-
|
|
170
|
-
- [ ] This skill's Definition of Done is satisfied.
|
|
171
|
-
- [ ] Required artifacts were produced or updated.
|
|
172
|
-
- [ ] Open questions were logged when needed.
|
|
173
|
-
- [ ] Completion message was presented to the user.
|
|
174
|
-
- [ ] Next actions were enumerated.
|
|
175
|
-
|
|
176
|
-
## Completion Message & Next Actions (MUST)
|
|
177
|
-
|
|
178
|
-
When complete, provide a final user-facing completion message and list actions.
|
|
179
|
-
|
|
180
|
-
- Proceed (recommended): `/qfai-atdd`.
|
|
181
|
-
Action: implement acceptance tests against the full-harness prototype.
|
|
182
|
-
- Quality gate run: `/qfai-verify`.
|
|
183
|
-
Action: run full validation/report flow and publish gate evidence.
|
|
184
|
-
- Rework prototyping: rerun `/qfai-prototyping-full-harness`.
|
|
185
|
-
Action: fix convergence failures or scoring trace gaps.
|
|
@@ -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."
|