qfai 1.4.0 → 1.4.6
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 +67 -22
- package/assets/init/.qfai/README.md +23 -39
- package/assets/init/.qfai/assistant/agents/architect.md +2 -1
- package/assets/init/.qfai/assistant/agents/contract-designer.md +2 -1
- package/assets/init/.qfai/assistant/agents/design-owner.md +2 -1
- package/assets/init/.qfai/assistant/agents/facilitator.md +3 -2
- package/assets/init/.qfai/assistant/agents/interviewer.md +3 -2
- package/assets/init/.qfai/assistant/agents/option-explorer.md +3 -2
- package/assets/init/.qfai/assistant/agents/oq-harvester.md +3 -2
- package/assets/init/.qfai/assistant/agents/oq-reviewer.md +2 -1
- package/assets/init/.qfai/assistant/agents/planner.md +2 -1
- package/assets/init/.qfai/assistant/agents/project-lead.md +2 -1
- package/assets/init/.qfai/assistant/agents/requirements-analyst.md +3 -2
- package/assets/init/.qfai/assistant/agents/researcher.md +1 -1
- package/assets/init/.qfai/assistant/instructions/requirements-decomposition.md +1 -1
- package/assets/init/.qfai/assistant/instructions/workflow.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +21 -2
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +20 -1
- package/assets/init/.qfai/assistant/skills/qfai-discuss/SKILL.md +137 -496
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/00_Summary.md +38 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/01_Objective.md +16 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/02_Initiative.md +16 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/03_Capabilities.md +17 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/04_Business-flow.md +29 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/05_Policy.md +28 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/06_Stakeholders.md +13 -0
- package/assets/init/.qfai/assistant/skills/qfai-discuss/templates/07_Open-questions.md +18 -0
- package/assets/init/.qfai/assistant/skills/qfai-implement/SKILL.md +20 -1
- package/assets/init/.qfai/assistant/skills/qfai-pr/SKILL.md +19 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +20 -1
- package/assets/init/.qfai/assistant/skills/qfai-require/SKILL.md +139 -549
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/00_Summary.md +37 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/01_Functional-requirements.md +16 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/02_Non-functional-requirements.md +15 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/03_Contracts-boundary.md +19 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/04_Data-and-glossary.md +16 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/05_Test-policy.md +18 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/06_Compliance-and-risk.md +18 -0
- package/assets/init/.qfai/assistant/skills/qfai-require/templates/07_Open-questions.md +18 -0
- package/assets/init/.qfai/assistant/skills/qfai-scenario-test/SKILL.md +19 -0
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/SKILL.md +131 -67
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/01_Spec.md +2 -2
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/03_Initiative.md +4 -0
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/07_Acceptance-criteria.md +3 -3
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/08_Business-rules.md +3 -3
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/09_Examples.feature +3 -3
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/10_Test-cases.md +3 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/spec-pack/11_Contracts.md +19 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/spec-pack/15_Open-questions.md +22 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/spec-pack/16_Traceability-ledger.md +18 -0
- package/assets/init/.qfai/assistant/skills/{qfai-sdd-planning → qfai-sdd}/templates/spec-pack/17_Plan.md +3 -3
- package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/spec-pack/18_delta.md +40 -0
- package/assets/init/.qfai/assistant/skills/qfai-spec/SKILL.md +29 -9
- package/assets/init/.qfai/{contracts/api → assistant/skills/qfai-spec/templates/contracts}/api-0001-sample.yaml +1 -1
- package/assets/init/.qfai/{contracts/db → assistant/skills/qfai-spec/templates/contracts}/db-0001-sample.sql +1 -1
- package/assets/init/.qfai/{contracts/ui → assistant/skills/qfai-spec/templates/contracts}/ui-0001-sample.yaml +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-tdd-green/SKILL.md +21 -2
- package/assets/init/.qfai/assistant/skills/qfai-tdd-red/SKILL.md +20 -1
- package/assets/init/.qfai/assistant/skills/qfai-tdd-refactor/SKILL.md +21 -2
- package/assets/init/.qfai/assistant/skills/qfai-unit-test/SKILL.md +20 -1
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +19 -0
- package/assets/init/.qfai/contracts/README.md +3 -3
- package/assets/init/.qfai/contracts/api/README.md +2 -2
- package/assets/init/.qfai/contracts/db/README.md +2 -2
- package/assets/init/.qfai/contracts/ui/README.md +2 -2
- package/assets/init/.qfai/discuss/README.md +34 -0
- package/assets/init/.qfai/require/README.md +33 -146
- package/assets/init/.qfai/specs/README.md +37 -119
- package/assets/init/root/{.codex/skills/qfai-sdd-planning → .claude/skills/qfai-sdd}/SKILL.md +5 -5
- package/assets/init/root/.claude/skills/qfai-spec/SKILL.md +2 -2
- package/assets/init/root/{.github/skills/qfai-sdd-planning → .codex/skills/qfai-sdd}/SKILL.md +5 -5
- package/assets/init/root/.codex/skills/qfai-spec/SKILL.md +2 -2
- package/assets/init/root/.github/PULL_REQUEST_TEMPLATE.md +5 -5
- package/assets/init/root/{.claude/skills/qfai-sdd-planning → .github/skills/qfai-sdd}/SKILL.md +5 -5
- package/assets/init/root/.github/skills/qfai-spec/SKILL.md +2 -2
- package/dist/cli/index.cjs +2066 -4220
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +2136 -4290
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +3522 -5186
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -9
- package/dist/index.d.ts +1 -9
- package/dist/index.mjs +3528 -5187
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-sdd-planning/SKILL.md +0 -261
- package/assets/init/.qfai/assistant/skills/qfai-sdd-refinement/templates/spec-pack/11_Contracts.md +0 -19
- package/assets/init/.qfai/assistant/skills/qfai-sdd-refinement/templates/spec-pack/15_Open-questions.md +0 -19
- package/assets/init/.qfai/assistant/skills/qfai-sdd-refinement/templates/spec-pack/16_Traceability-ledger.md +0 -18
- package/assets/init/.qfai/assistant/skills/qfai-sdd-refinement/templates/spec-pack/18_delta.md +0 -35
- package/assets/init/.qfai/discussions/README.md +0 -85
- package/assets/init/.qfai/require/actors.md +0 -10
- package/assets/init/.qfai/require/business-flows.md +0 -32
- package/assets/init/.qfai/require/glossary.md +0 -7
- package/assets/init/.qfai/require/require.md +0 -41
- package/assets/init/.qfai/specs/spec-0001/01_Spec.md +0 -24
- package/assets/init/.qfai/specs/spec-0001/02_Objective.md +0 -18
- package/assets/init/.qfai/specs/spec-0001/03_Initiative.md +0 -26
- package/assets/init/.qfai/specs/spec-0001/04_Capability.md +0 -13
- package/assets/init/.qfai/specs/spec-0001/05_Business-flow.feature +0 -12
- package/assets/init/.qfai/specs/spec-0001/06_User-stories.md +0 -8
- package/assets/init/.qfai/specs/spec-0001/07_Acceptance-criteria.md +0 -9
- package/assets/init/.qfai/specs/spec-0001/08_Business-rules.md +0 -9
- package/assets/init/.qfai/specs/spec-0001/09_Examples.feature +0 -20
- package/assets/init/.qfai/specs/spec-0001/10_Test-cases.md +0 -9
- package/assets/init/.qfai/specs/spec-0001/11_Contracts.md +0 -7
- package/assets/init/.qfai/specs/spec-0001/12_Glossary.md +0 -6
- package/assets/init/.qfai/specs/spec-0001/13_Constraints.md +0 -9
- package/assets/init/.qfai/specs/spec-0001/14_Decisions.md +0 -7
- package/assets/init/.qfai/specs/spec-0001/15_Open-questions.md +0 -13
- package/assets/init/.qfai/specs/spec-0001/16_Traceability-ledger.md +0 -7
- package/assets/init/.qfai/specs/spec-0001/17_Plan.md +0 -49
- package/assets/init/.qfai/specs/spec-0001/18_delta.md +0 -34
- package/assets/init/.qfai/specs/spec-0001/case-catalogue.md +0 -23
- package/assets/init/.qfai/specs/spec-0001/delta.md +0 -76
- package/assets/init/.qfai/specs/spec-0001/plan.md +0 -171
- package/assets/init/.qfai/specs/spec-0001/scenario.feature +0 -22
- package/assets/init/.qfai/specs/spec-0001/spec.md +0 -69
- package/assets/init/.qfai/specs/spec-0001/traceability-matrix.md +0 -28
- package/assets/init/.qfai/templates/spec/delta.md +0 -73
- package/assets/init/.qfai/templates/spec/implementation-brief.md +0 -9
- package/assets/init/.qfai/templates/spec/plan.md +0 -260
- package/assets/init/root/.claude/skills/qfai-sdd-refinement/SKILL.md +0 -52
- package/assets/init/root/.codex/skills/qfai-sdd-refinement/SKILL.md +0 -52
- package/assets/init/root/.github/skills/qfai-sdd-refinement/SKILL.md +0 -52
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/02_Objective.md +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/04_Capability.md +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/05_Business-flow.feature +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/06_User-stories.md +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/12_Glossary.md +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/13_Constraints.md +0 -0
- /package/assets/init/.qfai/assistant/skills/{qfai-sdd-refinement → qfai-sdd}/templates/spec-pack/14_Decisions.md +0 -0
package/README.md
CHANGED
|
@@ -56,10 +56,9 @@ QFAI includes a small set of custom skills (stored under `.qfai/assistant/skills
|
|
|
56
56
|
|
|
57
57
|
- **qfai-configure**: Analyze the repository (language, frameworks, test layout, directory structure) and tailor `qfai.config.yaml` accordingly (especially `testFileGlobs`). Run this once right after `npx qfai init`, and re-run it when the repository structure changes.
|
|
58
58
|
- **qfai-discuss**: Turn an idea into clear requirements by discussing scope, constraints, risks, and open questions.
|
|
59
|
-
- **qfai-require**: Produce `.qfai/require/
|
|
60
|
-
- **qfai-sdd
|
|
61
|
-
- **qfai-
|
|
62
|
-
- **qfai-spec**: Deprecated alias of `qfai-sdd-refinement` for backward compatibility.
|
|
59
|
+
- **qfai-require**: Produce `.qfai/require/REQUIRE-XXXX/*` from your idea or discussion output.
|
|
60
|
+
- **qfai-sdd**: Produce/update the full spec pack (`01_Spec.md` to `18_delta.md`) in one workflow (Outline -> Slice -> Plan finalize -> Delta).
|
|
61
|
+
- **qfai-spec**: Deprecated alias of `qfai-sdd` for backward compatibility.
|
|
63
62
|
- **qfai-scenario-test**: Implement acceptance tests (ATDD) driven by specs/scenarios.
|
|
64
63
|
- **qfai-unit-test**: Implement unit tests (TDD) driven by specs/scenarios.
|
|
65
64
|
- **qfai-implement**: Implement the feature; iterate test→fix until all quality gates are green.
|
|
@@ -88,23 +87,18 @@ AG-->>U: Config tuned to this repo
|
|
|
88
87
|
|
|
89
88
|
opt If you only have an idea
|
|
90
89
|
U->>AG: Run /qfai-discuss
|
|
91
|
-
AG-->>U:
|
|
90
|
+
AG-->>U: Structured discuss package (.qfai/discuss/DISCUSS-XXXX/)
|
|
92
91
|
end
|
|
93
92
|
|
|
94
93
|
U->>AG: Run /qfai-require
|
|
95
94
|
AG->>Q: Read .qfai/assistant/skills/qfai-require/SKILL.md
|
|
96
|
-
AG->>R: Create/Update
|
|
97
|
-
AG-->>U:
|
|
95
|
+
AG->>R: Create/Update REQUIRE-XXXX package docs
|
|
96
|
+
AG-->>U: Requirement package ready
|
|
98
97
|
|
|
99
|
-
U->>AG: Run /qfai-sdd
|
|
100
|
-
AG->>Q: Read .qfai/assistant/skills/qfai-sdd
|
|
101
|
-
AG->>R: Create/refine
|
|
102
|
-
AG-->>U:
|
|
103
|
-
|
|
104
|
-
U->>AG: Run /qfai-sdd-planning
|
|
105
|
-
AG->>Q: Read .qfai/assistant/skills/qfai-sdd-planning/SKILL.md
|
|
106
|
-
AG->>R: Create plan.md (How SSOT)
|
|
107
|
-
AG-->>U: Planning artifacts ready
|
|
98
|
+
U->>AG: Run /qfai-sdd
|
|
99
|
+
AG->>Q: Read .qfai/assistant/skills/qfai-sdd/SKILL.md
|
|
100
|
+
AG->>R: Create/refine spec pack (01..18) + contracts + 17_Plan.md
|
|
101
|
+
AG-->>U: SDD artifacts ready
|
|
108
102
|
|
|
109
103
|
U->>AG: Run /qfai-scenario-test
|
|
110
104
|
AG->>Q: Read .qfai/assistant/skills/qfai-scenario-test/SKILL.md
|
|
@@ -132,10 +126,11 @@ R-->>U: Traceability checks and report artifacts
|
|
|
132
126
|
Operational notes.
|
|
133
127
|
|
|
134
128
|
- Each custom skill must output in the user’s language (absolute requirement).
|
|
129
|
+
- Each custom skill must end with a completion message that enumerates all available next actions and clearly states what to do for each option.
|
|
135
130
|
- Except `qfai-discuss`, each skill must analyze the project context (architecture, tech stack, test framework, repo structure) before generating artifacts or code.
|
|
136
131
|
- Skills should delegate work to multiple role-based sub-agents (Planner, Architect, Contract Designer, QA, Code Reviewer, etc.) to emulate a real delivery flow.
|
|
137
|
-
- Change classification (Primary/Tags) is required in
|
|
138
|
-
- Verification planning is recorded in `
|
|
132
|
+
- Change classification (Primary/Tags) is required in `18_delta.md` and recommended in PRs. See `.qfai/assistant/instructions/change-classification.md`.
|
|
133
|
+
- Verification planning is recorded in `18_delta.md` (`Verification -> Plan`) and validated in CI (`VFY-*` rules).
|
|
139
134
|
|
|
140
135
|
## Configuration
|
|
141
136
|
|
|
@@ -183,6 +178,44 @@ QFAI uses a small, opinionated set of artifacts to reduce ambiguity and prevent
|
|
|
183
178
|
|
|
184
179
|
Traceability is validated across these artifacts, so code changes remain grounded in the specs and the tests prove compliance.
|
|
185
180
|
|
|
181
|
+
## SSOT boundaries
|
|
182
|
+
|
|
183
|
+
```mermaid
|
|
184
|
+
flowchart LR
|
|
185
|
+
S[.qfai/specs/**] --> L[16_Traceability-ledger.md]
|
|
186
|
+
C[.qfai/contracts/**] --> L
|
|
187
|
+
L --> V[qfai validate]
|
|
188
|
+
V --> R[.qfai/report/**]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
- Specs SSOT: `.qfai/specs/**` (`01..18`, especially `16_Traceability-ledger.md` and `18_delta.md`)
|
|
192
|
+
- Contracts SSOT: `.qfai/contracts/**`
|
|
193
|
+
- Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
|
|
194
|
+
|
|
195
|
+
## Minimal tutorial (v1.4.6)
|
|
196
|
+
|
|
197
|
+
1. `npx qfai init`
|
|
198
|
+
2. Run `/qfai-discuss` to structure scope and open questions.
|
|
199
|
+
3. Run `/qfai-require` to produce `REQUIRE-XXXX`.
|
|
200
|
+
4. Run `/qfai-sdd` to build `spec-XXXX/01..18`.
|
|
201
|
+
5. Run `npx qfai validate` then `npx qfai report`.
|
|
202
|
+
|
|
203
|
+
Release gate behavior:
|
|
204
|
+
|
|
205
|
+
- Merge gate: `qfai validate` must pass (`error=0`), and open OQ is warning.
|
|
206
|
+
- Release gate: set `release_candidate: true` in `03_Initiative.md`; open OQ then becomes error.
|
|
207
|
+
|
|
208
|
+
## FAQ
|
|
209
|
+
|
|
210
|
+
- Q: I referenced AC/TC directly from upper layers and got an error.
|
|
211
|
+
- A: Keep upper-to-lower references out of upper docs; use `16_Traceability-ledger.md` for cross-layer linkage.
|
|
212
|
+
- Q: Ledger validation fails with missing columns.
|
|
213
|
+
- A: Ensure required columns exist: `trace_id,obj_id,init_id,cap_id,flow_id,us_id,ac_id,ex_ids,tc_ids`.
|
|
214
|
+
- Q: `18_delta.md` fails validation.
|
|
215
|
+
- A: Include all required sections (`Change Summary`, `Rationale`, `Candidates Considered`, `Adopted`, `Rejected`, `Impact`, `Follow-ups`) and include both `DO NOT` and `Temptation` in `Rejected`.
|
|
216
|
+
- Q: release_candidate validation fails due open questions.
|
|
217
|
+
- A: In `15_Open-questions.md`, change `status: open` to `resolved` or `deferred` and keep evidence.
|
|
218
|
+
|
|
186
219
|
## Continuous integration (GitHub Actions)
|
|
187
220
|
|
|
188
221
|
(GitHub Actions)
|
|
@@ -237,9 +270,7 @@ Typical customizations.
|
|
|
237
270
|
│ │ └── SKILL.md
|
|
238
271
|
│ ├── qfai-scenario-test
|
|
239
272
|
│ │ └── SKILL.md
|
|
240
|
-
│ ├── qfai-sdd
|
|
241
|
-
│ │ └── SKILL.md
|
|
242
|
-
│ ├── qfai-sdd-planning
|
|
273
|
+
│ ├── qfai-sdd
|
|
243
274
|
│ │ └── SKILL.md
|
|
244
275
|
│ ├── qfai-spec
|
|
245
276
|
│ │ └── SKILL.md
|
|
@@ -300,6 +331,12 @@ Typical customizations.
|
|
|
300
331
|
│ │ │ ├── structure.md
|
|
301
332
|
│ │ │ └── tech.md
|
|
302
333
|
│ │ └── README.md
|
|
334
|
+
│ ├── discuss
|
|
335
|
+
│ │ ├── README.md
|
|
336
|
+
│ │ └── DISCUSS-0001
|
|
337
|
+
│ │ ├── 00_Summary.md
|
|
338
|
+
│ │ ├── ...
|
|
339
|
+
│ │ └── 07_Open-questions.md
|
|
303
340
|
│ ├── contracts
|
|
304
341
|
│ │ ├── api
|
|
305
342
|
│ │ │ └── README.md
|
|
@@ -312,7 +349,15 @@ Typical customizations.
|
|
|
312
349
|
│ │ └── README.md
|
|
313
350
|
│ ├── require
|
|
314
351
|
│ │ ├── README.md
|
|
315
|
-
│ │
|
|
352
|
+
│ │ ├── REQUIRE-0001
|
|
353
|
+
│ │ │ ├── 00_Summary.md
|
|
354
|
+
│ │ │ ├── ...
|
|
355
|
+
│ │ │ └── 07_Open-questions.md
|
|
356
|
+
│ │ ├── glossary.md # legacy compatibility
|
|
357
|
+
│ │ ├── actors.md # legacy compatibility
|
|
358
|
+
│ │ ├── business-flows.md # legacy compatibility
|
|
359
|
+
│ │ ├── require.md # legacy compatibility
|
|
360
|
+
│ │ └── open-questions.md # legacy compatibility
|
|
316
361
|
│ ├── specs
|
|
317
362
|
│ │ └── README.md
|
|
318
363
|
│ └── README.md
|
|
@@ -15,13 +15,12 @@ This folder is generated by `qfai init` and designed to be:
|
|
|
15
15
|
```mermaid
|
|
16
16
|
flowchart TD
|
|
17
17
|
A[/qfai-discuss/] --> B[/qfai-require/]
|
|
18
|
-
B --> C[/qfai-sdd
|
|
19
|
-
C --> D[/qfai-
|
|
20
|
-
D --> E[/qfai-
|
|
21
|
-
E --> F[/qfai-
|
|
22
|
-
F --> G[/qfai-tdd-
|
|
23
|
-
G --> H[/qfai-tdd-
|
|
24
|
-
H --> I[/qfai-tdd-refactor/]
|
|
18
|
+
B --> C[/qfai-sdd/]
|
|
19
|
+
C --> D[/qfai-prototyping/]
|
|
20
|
+
D --> E[/qfai-atdd/]
|
|
21
|
+
E --> F[/qfai-tdd-red/]
|
|
22
|
+
F --> G[/qfai-tdd-green/]
|
|
23
|
+
G --> H[/qfai-tdd-refactor/]
|
|
25
24
|
```
|
|
26
25
|
|
|
27
26
|
> Formatting must follow the templates and checklists documented in each directory README.
|
|
@@ -31,9 +30,8 @@ flowchart TD
|
|
|
31
30
|
```text
|
|
32
31
|
.qfai/
|
|
33
32
|
├── README.md
|
|
34
|
-
├──
|
|
35
|
-
│
|
|
36
|
-
│ └── discuss-0001-<topic>.md
|
|
33
|
+
├── discuss/
|
|
34
|
+
│ └── README.md
|
|
37
35
|
├── assistant/
|
|
38
36
|
│ ├── skills/ # canonical skills (SSOT)
|
|
39
37
|
│ ├── skills.local/ # project-specific overrides
|
|
@@ -41,40 +39,20 @@ flowchart TD
|
|
|
41
39
|
│ ├── steering/ # project steering inputs
|
|
42
40
|
│ └── instructions/ # workflow and guardrail docs
|
|
43
41
|
├── require/
|
|
44
|
-
│
|
|
45
|
-
│ ├── glossary.md
|
|
46
|
-
│ ├── actors.md
|
|
47
|
-
│ ├── business-flows.md
|
|
48
|
-
│ ├── require.md
|
|
49
|
-
│ └── open-questions.md
|
|
42
|
+
│ └── README.md
|
|
50
43
|
├── contracts/
|
|
51
44
|
│ ├── README.md
|
|
52
45
|
│ ├── api/
|
|
53
|
-
│ │
|
|
54
|
-
│ │ └── api-0001-sample.yaml
|
|
46
|
+
│ │ └── README.md
|
|
55
47
|
│ ├── db/
|
|
56
|
-
│ │
|
|
57
|
-
│ │ └── db-0001-sample.sql
|
|
48
|
+
│ │ └── README.md
|
|
58
49
|
│ └── ui/
|
|
59
|
-
│
|
|
60
|
-
│ └── ui-0001-sample.yaml
|
|
50
|
+
│ └── README.md
|
|
61
51
|
├── specs/
|
|
62
|
-
│
|
|
63
|
-
│ └── spec-0001/
|
|
64
|
-
│ ├── spec.md
|
|
65
|
-
│ ├── delta.md
|
|
66
|
-
│ ├── scenario.feature
|
|
67
|
-
│ ├── case-catalogue.md
|
|
68
|
-
│ ├── traceability-matrix.md
|
|
69
|
-
│ ├── plan.md
|
|
70
|
-
│ ├── 01_Spec.md
|
|
71
|
-
│ ├── ...
|
|
72
|
-
│ ├── 17_Plan.md
|
|
73
|
-
│ └── 18_delta.md
|
|
74
|
-
├── templates/
|
|
75
|
-
│ └── spec/ # compatibility templates (runtime SSOT files)
|
|
52
|
+
│ └── README.md
|
|
76
53
|
└── evidence/
|
|
77
54
|
├── README.md
|
|
55
|
+
├── .gitignore
|
|
78
56
|
└── <skill>-<run>.md
|
|
79
57
|
```
|
|
80
58
|
|
|
@@ -101,10 +79,16 @@ It is useful for local review but should not pollute version control.
|
|
|
101
79
|
- Prefer small stable identifiers (REQ/BR/AC/TC/EX/etc.) over long mixed paragraphs.
|
|
102
80
|
- If one line contains multiple independent constraints, split it.
|
|
103
81
|
|
|
104
|
-
### R4.
|
|
82
|
+
### R4. Spec Pack 01..18 is runtime SSOT
|
|
83
|
+
|
|
84
|
+
- Runtime validators and downstream skills consume `01_*` to `18_*`.
|
|
85
|
+
- Traceability links are written in `16_Traceability-ledger.md`.
|
|
86
|
+
- Derived outputs under `.qfai/report/**` are non-SSOT.
|
|
87
|
+
|
|
88
|
+
### R5. init is an empty scaffold
|
|
105
89
|
|
|
106
|
-
-
|
|
107
|
-
-
|
|
90
|
+
- `qfai init` creates README-centric directories for `discuss`, `require`, `contracts`, and `specs`.
|
|
91
|
+
- Sample artifacts are provided under skill templates (for example, `assistant/skills/qfai-spec/templates/contracts/`).
|
|
108
92
|
|
|
109
93
|
## Skills (SSOT)
|
|
110
94
|
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
- .qfai/assistant/steering/\*
|
|
12
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
13
13
|
- .qfai/specs/spec-\*/spec.md
|
|
14
|
-
- .qfai/require/
|
|
14
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred)
|
|
15
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
15
16
|
- Existing architecture docs (if any)
|
|
16
17
|
|
|
17
18
|
## Deliverables (MANDATORY)
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
- .qfai/assistant/steering/\*
|
|
12
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
13
13
|
- .qfai/specs/spec-\*/spec.md
|
|
14
|
-
- .qfai/require/
|
|
14
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred)
|
|
15
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
15
16
|
- Existing contracts under `.qfai/contracts/**`
|
|
16
17
|
|
|
17
18
|
## Deliverables (MANDATORY)
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
12
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
- .qfai/require/
|
|
13
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred)
|
|
14
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
14
15
|
- Evidence summaries under `.qfai/evidence/` (gitignored)
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
- .qfai/assistant/instructions/\*
|
|
11
11
|
- .qfai/assistant/steering/\*
|
|
12
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
13
|
-
- Existing discussion records under `.qfai/
|
|
14
|
-
- .qfai/require/
|
|
13
|
+
- Existing discussion records under `.qfai/discuss/`
|
|
14
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
15
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- Existing discussion records under `.qfai/
|
|
13
|
-
- .qfai/require/
|
|
12
|
+
- Existing discussion records under `.qfai/discuss/`
|
|
13
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
14
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
14
15
|
|
|
15
16
|
## Deliverables (MANDATORY)
|
|
16
17
|
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- .qfai/require/
|
|
12
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
13
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
13
14
|
- .qfai/specs/spec-\*/spec.md
|
|
14
15
|
- .qfai/specs/spec-\*/delta.md (draft)
|
|
15
16
|
- .qfai/contracts/\*\*
|
|
16
|
-
- Existing discussion records under `.qfai/
|
|
17
|
+
- Existing discussion records under `.qfai/discuss/`
|
|
17
18
|
|
|
18
19
|
## Deliverables (MANDATORY)
|
|
19
20
|
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- .qfai/require/
|
|
12
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
13
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
13
14
|
- .qfai/require/open-questions.md (if present)
|
|
14
15
|
- .qfai/specs/spec-\*/spec.md
|
|
15
16
|
- .qfai/specs/spec-\*/delta.md
|
|
16
17
|
- .qfai/contracts/\*\*
|
|
17
|
-
- Existing discussion records under `.qfai/
|
|
18
|
+
- Existing discussion records under `.qfai/discuss/`
|
|
18
19
|
|
|
19
20
|
## Deliverables (MANDATORY)
|
|
20
21
|
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
- .qfai/assistant/steering/test-layers.md (test-layer definitions + required coverage expectations)
|
|
13
13
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
14
14
|
- OQ candidate list from OQ Harvester
|
|
15
|
-
- .qfai/require/
|
|
15
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
16
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
16
17
|
- .qfai/require/open-questions.md (if present)
|
|
17
18
|
- .qfai/specs/spec-\*/spec.md
|
|
18
19
|
- .qfai/specs/spec-\*/delta.md
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
12
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
- .qfai/require/
|
|
13
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred)
|
|
14
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
14
15
|
- Existing constraints and gate commands
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- .qfai/require/
|
|
12
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred)
|
|
13
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
13
14
|
- .qfai/specs/spec-\*/spec.md
|
|
14
15
|
- Evidence summaries under `.qfai/evidence/` (gitignored)
|
|
15
16
|
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- .qfai/require/
|
|
13
|
-
-
|
|
12
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
13
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
14
|
+
- Discussion records under `.qfai/discuss/`
|
|
14
15
|
- .qfai/specs/spec-\*/spec.md (if available)
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
12
|
- User-provided idea/problem statement
|
|
13
|
-
- Existing discussion records under `.qfai/
|
|
13
|
+
- Existing discussion records under `.qfai/discuss/`
|
|
14
14
|
|
|
15
15
|
## Deliverables (MANDATORY)
|
|
16
16
|
|
|
@@ -15,7 +15,7 @@ This document is the **decision rule SSOT** for AI and humans when answering:
|
|
|
15
15
|
1. **Glossary** (`require/glossary.md`)
|
|
16
16
|
2. **Actors** (`require/actors.md`)
|
|
17
17
|
3. **Business flows** (`require/business-flows.md`)
|
|
18
|
-
4. **Requirements** (`require/require.md`)
|
|
18
|
+
4. **Requirements** (`require/REQUIRE-XXXX/*` preferred, `require/require.md` legacy compatibility)
|
|
19
19
|
5. **Spec packs** (`specs/spec-*/spec.md`, `delta.md`, `scenario.feature`, `case-catalogue.md`, `traceability-matrix.md`)
|
|
20
20
|
6. **ATDD / TDD** (tests + code)
|
|
21
21
|
|
|
@@ -57,7 +57,7 @@ Do not proceed without a declared Change Type.
|
|
|
57
57
|
|
|
58
58
|
### Stage 0 — Steering refresh contract (mandatory)
|
|
59
59
|
|
|
60
|
-
At the beginning of each stage (`qfai-discuss`, `qfai-require`, `qfai-sdd
|
|
60
|
+
At the beginning of each stage (`qfai-discuss`, `qfai-require`, `qfai-sdd`, `qfai-atdd`, `qfai-tdd-*`, `qfai-implement`, `qfai-verify`):
|
|
61
61
|
|
|
62
62
|
1. Check these steering files:
|
|
63
63
|
- `.qfai/assistant/steering/manifest.md`
|
|
@@ -153,7 +153,7 @@ Rules:
|
|
|
153
153
|
- Do NOT declare completion based on unit/component tests.
|
|
154
154
|
- `plan.md` is the primary How SSOT for execution phases.
|
|
155
155
|
- `implementation-brief.md` is deprecated and must not be used as How SSOT.
|
|
156
|
-
- If `plan.md` is missing, STOP and run `/qfai-sdd
|
|
156
|
+
- If `plan.md` is missing, STOP and run `/qfai-sdd` before proceeding.
|
|
157
157
|
- Acceptance tests must be runnable and Coverage Ledger must be 100% implemented (blocked/skipped require DR + approval).
|
|
158
158
|
- You MUST evaluate layer floors as volume signals (E2E=SC count, API=endpoints, Integration=max(endpoints×K, ΣCASE)).
|
|
159
159
|
- E2E=0 or Integration=0 is forbidden unless a DR + user approval + reviewer PASS explicitly allows it.
|
|
@@ -540,7 +540,7 @@ Read:
|
|
|
540
540
|
|
|
541
541
|
- STOP and do not proceed with test implementation.
|
|
542
542
|
- Inform the user that the spec pack must be split or fixed.
|
|
543
|
-
- Recommend running `/qfai-sdd
|
|
543
|
+
- Recommend running `/qfai-sdd` to adjust the spec packs.
|
|
544
544
|
|
|
545
545
|
**Rationale:** QFAI validate rules require unique SC tags per file, and large scenario counts should be split to keep traceability clear.
|
|
546
546
|
|
|
@@ -692,3 +692,22 @@ When you declare DONE, include:
|
|
|
692
692
|
- [ ] All mandatory checks were executed and recorded.
|
|
693
693
|
- [ ] No untracked gaps remain (or they are explicitly documented).
|
|
694
694
|
- [ ] Completion approved by a reviewer who did not implement the tests.
|
|
695
|
+
|
|
696
|
+
## Completion Checklist (MUST)
|
|
697
|
+
|
|
698
|
+
- [ ] This skill's Definition of Done is satisfied.
|
|
699
|
+
- [ ] Required artifacts were produced or updated (if applicable).
|
|
700
|
+
- [ ] Open questions were logged to the proper OQ file (if applicable).
|
|
701
|
+
- [ ] The completion message was presented to the user.
|
|
702
|
+
- [ ] Next actions were enumerated for all available options.
|
|
703
|
+
|
|
704
|
+
## Completion Message & Next Actions (MUST)
|
|
705
|
+
|
|
706
|
+
When this skill is complete, provide a final user-facing completion message and enumerate all actionable next steps.
|
|
707
|
+
|
|
708
|
+
- Proceed (recommended): `/qfai-tdd-red`.
|
|
709
|
+
Action: derive unit/component RED tests from acceptance scenarios.
|
|
710
|
+
- Acceptance tests need fixes: rerun `/qfai-atdd`.
|
|
711
|
+
Action: correct scenario coverage gaps and rerun test evidence.
|
|
712
|
+
- Implementation phase: `/qfai-tdd-green`.
|
|
713
|
+
Action: implement code to satisfy failing tests.
|
|
@@ -171,7 +171,7 @@ Before declaring completion, you MUST:
|
|
|
171
171
|
|
|
172
172
|
Analyze the repository and update `qfai.config.yaml` so traceability checks are actionable, with a documented minimum runnable path.
|
|
173
173
|
|
|
174
|
-
Note: /qfai-sdd
|
|
174
|
+
Note: /qfai-sdd includes a preflight step that bootstraps missing config/steering when run directly after init.
|
|
175
175
|
/qfai-configure remains the recommended way to tune `qfai.config.yaml` early with a clean, minimal diff.
|
|
176
176
|
|
|
177
177
|
## Success Criteria (Definition of Done)
|
|
@@ -452,3 +452,22 @@ When you declare DONE, include:
|
|
|
452
452
|
- [ ] All mandatory checks were executed and recorded.
|
|
453
453
|
- [ ] No untracked gaps remain (or they are explicitly documented).
|
|
454
454
|
- [ ] Completion approved by a reviewer who did not modify the config.
|
|
455
|
+
|
|
456
|
+
## Completion Checklist (MUST)
|
|
457
|
+
|
|
458
|
+
- [ ] This skill's Definition of Done is satisfied.
|
|
459
|
+
- [ ] Required artifacts were produced or updated (if applicable).
|
|
460
|
+
- [ ] Open questions were logged to the proper OQ file (if applicable).
|
|
461
|
+
- [ ] The completion message was presented to the user.
|
|
462
|
+
- [ ] Next actions were enumerated for all available options.
|
|
463
|
+
|
|
464
|
+
## Completion Message & Next Actions (MUST)
|
|
465
|
+
|
|
466
|
+
When this skill is complete, provide a final user-facing completion message and enumerate all actionable next steps.
|
|
467
|
+
|
|
468
|
+
- Proceed (recommended): `/qfai-require`.
|
|
469
|
+
Action: run it to formalize requirements from the configured project context.
|
|
470
|
+
- Requirements are still unclear: `/qfai-discuss`.
|
|
471
|
+
Action: collect missing scope, constraints, and assumptions first.
|
|
472
|
+
- Configuration needs refinement: rerun `/qfai-configure`.
|
|
473
|
+
Action: provide additional include/exclude evidence and update `qfai.config.yaml`.
|