qfai 1.9.2 → 1.10.0

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 (123) hide show
  1. package/README.md +48 -2
  2. package/assets/init/.qfai/assistant/agents/acceptance-test-engineer.md +1 -0
  3. package/assets/init/.qfai/assistant/agents/backend-engineer.md +1 -0
  4. package/assets/init/.qfai/assistant/agents/completion-reviewer.md +13 -2
  5. package/assets/init/.qfai/assistant/agents/delivery-planner.md +9 -0
  6. package/assets/init/.qfai/assistant/agents/frontend-engineer.md +1 -0
  7. package/assets/init/.qfai/assistant/agents/implementation-reviewer.md +6 -0
  8. package/assets/init/.qfai/assistant/agents/orchestrator.md +2 -2
  9. package/assets/init/.qfai/assistant/agents/qa-gatekeeper.md +96 -3
  10. package/assets/init/.qfai/assistant/agents/test-design-analyst.md +20 -3
  11. package/assets/init/.qfai/assistant/catalog/cli-ux-guidelines.md +2 -2
  12. package/assets/init/.qfai/assistant/catalog/spec_required_files.json +2 -1
  13. package/assets/init/.qfai/assistant/catalog/test-layers.md +355 -14
  14. package/assets/init/.qfai/assistant/catalog/worklog-entry.schema.md +165 -0
  15. package/assets/init/.qfai/assistant/constitution/communication.md +1 -1
  16. package/assets/init/.qfai/assistant/constitution/drift-protocol.md +304 -10
  17. package/assets/init/.qfai/assistant/constitution/quality.md +35 -5
  18. package/assets/init/.qfai/assistant/constitution/requirements-decomposition.md +37 -0
  19. package/assets/init/.qfai/assistant/constitution/shared-skill-delegation-baseline.md +244 -8
  20. package/assets/init/.qfai/assistant/constitution/shared-skill-operating-baseline.md +122 -5
  21. package/assets/init/.qfai/assistant/constitution/workflow.md +53 -7
  22. package/assets/init/.qfai/assistant/manifest/agent-catalog.yml +316 -945
  23. package/assets/init/.qfai/assistant/manifest/agent-routing.yml +50 -4
  24. package/assets/init/.qfai/assistant/manifest/review-profiles.yml +9 -0
  25. package/assets/init/.qfai/assistant/process/migrations/v1.4.27-atdd-alignment.md +1 -1
  26. package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +61 -21
  27. package/assets/init/.qfai/assistant/skills/qfai-atdd/references/test-case-depth-checklist.md +23 -4
  28. package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +15 -7
  29. package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +8 -4
  30. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/design-md-brand-catalog.md +2 -2
  31. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/discussion-completion-matrix.md +17 -7
  32. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/rcp_footer.md +10 -4
  33. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/review-cycle-playbook.md +1 -1
  34. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui-bearing-playbook.md +4 -4
  35. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui_ux/review_audit_playbook.md +1 -1
  36. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui_ux/trend_scan_playbook.md +1 -1
  37. package/assets/init/.qfai/assistant/skills/qfai-discussion/references/ui_ux_best_practices.md +17 -7
  38. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/01_Context.md +1 -1
  39. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/02_Inception-Deck.md +1 -1
  40. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/03_Story-Workshop.md +11 -3
  41. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/05_Scope.md +5 -2
  42. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/07_NFR.md +1 -1
  43. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/09_Constraints.md +7 -4
  44. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/10_Policy.md +1 -1
  45. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/11_OQ-Register.md +1 -1
  46. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/12_OQ-Resolution-Log.md +1 -1
  47. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/14_Review-Request.md +14 -7
  48. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/99_delta.md +1 -1
  49. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/Rxx_reviewer.md +16 -7
  50. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/review_request.md +9 -6
  51. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/40_screen_contracts.md +3 -2
  52. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/uiux/50_review_input_bundle.md +4 -2
  53. package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +250 -128
  54. package/assets/init/.qfai/assistant/skills/qfai-implement/references/change-request-reset.md +93 -0
  55. package/assets/init/.qfai/assistant/skills/qfai-implement/references/checkpoint-verification.md +106 -0
  56. package/assets/init/.qfai/assistant/skills/qfai-implement/references/cross-spec-ownership.md +73 -0
  57. package/assets/init/.qfai/assistant/skills/qfai-implement/references/evidence-revision.md +77 -0
  58. package/assets/init/.qfai/assistant/skills/qfai-implement/references/execution-ledger.md +303 -0
  59. package/assets/init/.qfai/assistant/skills/qfai-implement/references/final-checklist.md +19 -0
  60. package/assets/init/.qfai/assistant/skills/qfai-implement/references/finding-classification.md +49 -0
  61. package/assets/init/.qfai/assistant/skills/qfai-implement/references/ledger-preconditions.md +55 -0
  62. package/assets/init/.qfai/assistant/skills/qfai-implement/references/oracle-strength.md +81 -0
  63. package/assets/init/.qfai/assistant/skills/qfai-implement/references/parallelization-policy.md +235 -0
  64. package/assets/init/.qfai/assistant/skills/qfai-implement/references/red-admissibility.md +91 -0
  65. package/assets/init/.qfai/assistant/skills/qfai-implement/references/red-not-observable.md +70 -0
  66. package/assets/init/.qfai/assistant/skills/qfai-implement/references/relevant-test-suite.md +87 -0
  67. package/assets/init/.qfai/assistant/skills/qfai-implement/references/review-artifact-layout.md +31 -0
  68. package/assets/init/.qfai/assistant/skills/qfai-implement/references/round-evidence.md +102 -0
  69. package/assets/init/.qfai/assistant/skills/qfai-implement/references/selector-granularity.md +24 -0
  70. package/assets/init/.qfai/assistant/skills/qfai-implement/references/volume-policy.md +149 -0
  71. package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +35 -18
  72. package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/evidence-requirements.md +1 -1
  73. package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/generator-prompt.md +106 -7
  74. package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/handoff.md +40 -11
  75. package/assets/init/.qfai/assistant/skills/qfai-prototyping/references/iteration-loop.md +48 -1
  76. package/assets/init/.qfai/assistant/skills/qfai-prototyping/templates/DESIGN.md.sample +6 -0
  77. package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +82 -22
  78. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/contract-artifact-rules.md +148 -0
  79. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/rcp_footer.md +10 -4
  80. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/review-cycle-playbook.md +1 -1
  81. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-execution-playbook.md +4 -2
  82. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-phase-checklists.md +18 -0
  83. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-quality-gate.md +44 -3
  84. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/sdd-triage.md +60 -7
  85. package/assets/init/.qfai/assistant/skills/qfai-sdd/references/spec-traceability-rules.md +157 -5
  86. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/change-request.md +125 -0
  87. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/contracts/db-contract.sample.sql +6 -0
  88. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/evidence/sdd-spec.md +92 -0
  89. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/01_Objective.md +27 -0
  90. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/02_Initiative.md +30 -0
  91. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/05_Contracts.md +16 -6
  92. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/06_Glossary.md +19 -0
  93. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/07_Constraints.md +25 -0
  94. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/08_Decisions.md +22 -2
  95. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/11_Slice-Policy.md +37 -10
  96. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/02_User-stories.md +20 -0
  97. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/03_Acceptance-Criteria.md +19 -0
  98. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/04_Business-Rules.md +32 -3
  99. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/06_Test-Cases.md +56 -0
  100. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/07_Decisions.md +29 -2
  101. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/10_Plan.md +41 -0
  102. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/16_Traceability-ledger.md +58 -0
  103. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/tdd/test-list.md +56 -0
  104. package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +57 -102
  105. package/assets/init/.qfai/assistant/skills/qfai-verify/references/articles.md +24 -0
  106. package/assets/init/.qfai/assistant/skills/qfai-verify/references/context-load.md +22 -0
  107. package/assets/init/.qfai/assistant/skills/qfai-verify/references/verify-output-contract.md +48 -0
  108. package/assets/init/.qfai/assistant/skills/qfai-verify/templates/verify-evidence.md +48 -0
  109. package/assets/init/.qfai/assistant/skills/web-research/SKILL.md +25 -7
  110. package/assets/init/.qfai/waivers.yml +11 -5
  111. package/assets/init/root/DESIGN.md +6 -0
  112. package/assets/init/root/qfai.config.yaml +15 -12
  113. package/dist/cli/index.cjs +11023 -7139
  114. package/dist/cli/index.cjs.map +1 -1
  115. package/dist/cli/index.mjs +10963 -7080
  116. package/dist/cli/index.mjs.map +1 -1
  117. package/dist/index.cjs +8782 -5257
  118. package/dist/index.cjs.map +1 -1
  119. package/dist/index.d.cts +280 -8
  120. package/dist/index.d.ts +280 -8
  121. package/dist/index.mjs +11776 -8264
  122. package/dist/index.mjs.map +1 -1
  123. package/package.json +18 -19
@@ -20,6 +20,10 @@ QFAI Skill Body (SSOT)
20
20
 
21
21
  ## Sub-agent Delegation (MANDATORY)
22
22
 
23
+ Follow `.qfai/assistant/constitution/shared-skill-delegation-baseline.md`.
24
+ The sections below add only pipeline-specific detail; where they and the
25
+ baseline overlap, the baseline governs.
26
+
23
27
  ### Orchestrator Protocol (MUST)
24
28
 
25
29
  - Orchestrator may only create work orders, delegate tasks, integrate outputs, and present results.
@@ -38,19 +42,33 @@ QFAI Skill Body (SSOT)
38
42
 
39
43
  ## Work Orders Summary
40
44
 
41
- Every major research artifact SHOULD include a `## Work Orders Summary` table:
45
+ Every major research artifact MUST include a `## Work Orders Summary` table.
46
+ Use the shared schema from `shared-skill-delegation-baseline.md` — including the
47
+ `Agent instance` column, without which an author-reviewed-their-own-work
48
+ collision cannot be detected from the evidence afterwards. Typical pipeline
49
+ steps:
42
50
 
43
- | Step | Role (sub-agent) | Task title | Input (refs) | Output (refs) | Status (PASS/REVISE) |
44
- | ---- | ---------------- | -------------------------- | --------------------- | ----------------- | -------------------- |
45
- | 1 | Researcher | Discover candidate sources | User request + config | Candidate list | PASS/REVISE |
46
- | 2 | Analyst | Prepare research notes | Candidate URLs | Research notes | PASS/REVISE |
47
- | 3 | Reviewer | Review evidence and claims | Notes + sources | Approval decision | PASS/REVISE |
51
+ | Step | Role (sub-agent) | Agent instance | Task title | Input (refs) | Output (refs) | Status (PASS/REVISE/PENDING) |
52
+ | ---- | ---------------- | --------------- | -------------------------- | --------------------- | ----------------- | ---------------------------- |
53
+ | 1 | Researcher | `<instance id>` | Discover candidate sources | User request + config | Candidate list | PASS/REVISE |
54
+ | 2 | Analyst | `<instance id>` | Prepare research notes | Candidate URLs | Research notes | PASS/REVISE |
55
+ | 3 | Reviewer | `<instance id>` | Review evidence and claims | Notes + sources | Approval decision | PASS/REVISE |
48
56
 
49
57
  ### Reviewer Gate (MUST)
50
58
 
51
- - Final completion gate MUST be performed by an independent Reviewer.
59
+ - Final completion gate MUST be performed by an independent reviewer, as defined
60
+ normatively in `shared-skill-delegation-baseline.md#definition-independent-reviewer-normative`.
61
+ Being routed as `Reviewer` does not by itself make an agent independent: an agent
62
+ that drafted or edited any artifact under review is disqualified for the whole run,
63
+ and MUST hand the same evidence set to a non-participating reviewer instead of
64
+ returning `PASS`.
65
+ - Reviewer responses use the response template in
66
+ `shared-skill-delegation-baseline.md#reviewer-response-template`, including the
67
+ REQUIRED `Authored/edited under review:` line. A response omitting that line is
68
+ not a valid verdict; anything other than `none` cannot be a `PASS`.
52
69
  - Reviewer checks the Drift Protocol, verifies alignment with `test-layers.md`, and treats ratios as signals, not gates.
53
70
  - Reviewer returns only `PASS` or `REVISE` with a concrete fix proposal when returning `REVISE`.
71
+ - A gate that could not be run at all is recorded as `PENDING` in the Work Orders Summary. `PENDING` never counts as `PASS`.
54
72
 
55
73
  ## CRITICAL CONSTRAINTS (Read First)
56
74
 
@@ -1,13 +1,19 @@
1
1
  version: 1
2
2
  waivers: []
3
- # Example:
3
+ # Write `rule:` exactly as the finding's `code` appears in
4
+ # `.qfai/report/validate.json` and in the CLI output — `QFAI-ATDD-112`,
5
+ # `TDDLIST_UNKNOWN_LEVEL`, `E_TC_ORPHAN`. Do not strip the `QFAI-` prefix; the
6
+ # stripped form is kept working only for older waiver files.
7
+ #
8
+ # Waivers apply to `warning` and `info` findings only. A waiver aimed at an
9
+ # `error` is a configuration error and fails the run.
10
+ #
11
+ # Example — a project that deliberately ships its own `Level` vocabulary:
4
12
  # - id: WVR-20260207-01
5
- # rule: COMPAT-003
13
+ # rule: TDDLIST_UNKNOWN_LEVEL
6
14
  # scope:
7
15
  # paths: [".qfai/specs/spec-0001/**"]
8
- # match:
9
- # dl_ids: ["DL-20260207-01"]
10
- # reason: "Legacy acceptance tests are being migrated; suppress until migration completes."
16
+ # reason: "Level vocabulary is owned by this project; migration tracked in DL-20260207-01."
11
17
  # expires: "2026-03-01"
12
18
  # evidence: "delta.md#DL-20260207-01"
13
19
  # owner: "team-foo"
@@ -52,6 +52,12 @@ accessibility:
52
52
  motion: "respect-reduced-motion"
53
53
  ---
54
54
 
55
+ <!-- QFAI-SAMPLE-DESIGN-MD: this is the qfai sample brand, NOT your product's brand.
56
+ Replace the front-matter and the body below with this product's own brand SSOT
57
+ (`/qfai-discussion` emits the draft), then DELETE this comment. While this comment
58
+ is present `qfai validate` reports QFAI-DCON-034 and /qfai-sdd Phase 0 refuses to
59
+ freeze the file's sha256 as the project's brand contract. -->
60
+
55
61
  # Brand Philosophy
56
62
 
57
63
  Acme Ledger is a calm, confident financial comparison surface. The interface
@@ -18,17 +18,20 @@ validation:
18
18
  traceability:
19
19
  brMustHaveSc: true
20
20
  scMustHaveTest: true
21
- testFileGlobs:
22
- - tests/**/*.test.ts
23
- - tests/**/*.spec.ts
24
- - packages/*/tests/**/*.test.ts
25
- - packages/*/tests/**/*.spec.ts
26
- - src/**/*.test.ts
27
- - src/**/*.spec.ts
28
- - packages/*/src/**/*.test.ts
29
- - packages/*/src/**/*.spec.ts
30
- - features/**/*.feature
31
- - packages/*/features/**/*.feature
21
+ # Intentionally empty: this matches the in-code default and must be set to the
22
+ # repository's real test layout before the SC traceability gate means anything.
23
+ # Seeding a language-specific list here makes the gate silently pass on every
24
+ # other stack. Run /qfai-configure to populate it; `qfai validate` reports
25
+ # QFAI-TRACE-124 while this is unset or matches zero files.
26
+ #
27
+ # Examples:
28
+ # TypeScript: tests/**/*.test.ts, src/**/*.spec.ts
29
+ # Python: tests/**/test_*.py, tests/**/*_test.py
30
+ # Go: **/*_test.go
31
+ # Java/Kotlin: src/test/**/*.java, src/test/**/*.kt
32
+ # Rust: tests/**/*.rs
33
+ # Cucumber: features/**/*.feature
34
+ testFileGlobs: []
32
35
  testFileExcludeGlobs: []
33
36
  scNoTestSeverity: error
34
37
  orphanContractsPolicy: error
@@ -40,4 +43,4 @@ prototyping:
40
43
  packPath: .qfai/evidence/calibration.yaml
41
44
  execution:
42
45
  targetUrl: null
43
- browserTool: playwright-cli
46
+ browserTool: playwright