qfai 1.4.0 → 1.4.4
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 +66 -22
- package/assets/init/.qfai/README.md +27 -25
- 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 +2 -1
- package/assets/init/.qfai/assistant/agents/interviewer.md +2 -1
- package/assets/init/.qfai/assistant/agents/option-explorer.md +2 -1
- package/assets/init/.qfai/assistant/agents/oq-harvester.md +2 -1
- 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 +2 -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 +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-discuss/SKILL.md +114 -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 +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-require/SKILL.md +120 -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-sdd-refinement → qfai-sdd}/SKILL.md +112 -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 +9 -9
- package/assets/init/.qfai/assistant/skills/qfai-tdd-green/SKILL.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-tdd-red/SKILL.md +1 -1
- package/assets/init/.qfai/assistant/skills/qfai-tdd-refactor/SKILL.md +2 -2
- package/assets/init/.qfai/assistant/skills/qfai-unit-test/SKILL.md +1 -1
- package/assets/init/.qfai/contracts/README.md +3 -3
- package/assets/init/.qfai/contracts/api/README.md +2 -2
- package/assets/init/.qfai/contracts/api/api-0001-sample.yaml +1 -1
- package/assets/init/.qfai/contracts/db/README.md +2 -2
- package/assets/init/.qfai/contracts/db/db-0001-sample.sql +1 -1
- package/assets/init/.qfai/contracts/ui/README.md +2 -2
- package/assets/init/.qfai/contracts/ui/ui-0001-sample.yaml +1 -1
- package/assets/init/.qfai/discuss/DISCUSS-0001/00_Summary.md +38 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/01_Objective.md +16 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/02_Initiative.md +16 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/03_Capabilities.md +17 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/04_Business-flow.md +29 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/05_Policy.md +28 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/06_Stakeholders.md +13 -0
- package/assets/init/.qfai/discuss/DISCUSS-0001/07_Open-questions.md +18 -0
- package/assets/init/.qfai/discuss/README.md +34 -0
- package/assets/init/.qfai/discussions/README.md +5 -81
- package/assets/init/.qfai/require/README.md +33 -146
- package/assets/init/.qfai/require/REQUIRE-0001/00_Summary.md +37 -0
- package/assets/init/.qfai/require/REQUIRE-0001/01_Functional-requirements.md +16 -0
- package/assets/init/.qfai/require/REQUIRE-0001/02_Non-functional-requirements.md +15 -0
- package/assets/init/.qfai/require/REQUIRE-0001/03_Contracts-boundary.md +19 -0
- package/assets/init/.qfai/require/REQUIRE-0001/04_Data-and-glossary.md +16 -0
- package/assets/init/.qfai/require/REQUIRE-0001/05_Test-policy.md +18 -0
- package/assets/init/.qfai/require/REQUIRE-0001/06_Compliance-and-risk.md +18 -0
- package/assets/init/.qfai/require/REQUIRE-0001/07_Open-questions.md +18 -0
- package/assets/init/.qfai/specs/README.md +37 -119
- package/assets/init/.qfai/specs/spec-0001/01_Spec.md +1 -1
- package/assets/init/.qfai/specs/spec-0001/02_Objective.md +1 -0
- package/assets/init/.qfai/specs/spec-0001/03_Initiative.md +8 -0
- package/assets/init/.qfai/specs/spec-0001/05_Business-flow.feature +2 -1
- package/assets/init/.qfai/specs/spec-0001/07_Acceptance-criteria.md +5 -5
- package/assets/init/.qfai/specs/spec-0001/08_Business-rules.md +5 -5
- package/assets/init/.qfai/specs/spec-0001/09_Examples.feature +3 -3
- package/assets/init/.qfai/specs/spec-0001/10_Test-cases.md +5 -5
- package/assets/init/.qfai/specs/spec-0001/11_Contracts.md +5 -5
- package/assets/init/.qfai/specs/spec-0001/15_Open-questions.md +17 -8
- package/assets/init/.qfai/specs/spec-0001/16_Traceability-ledger.md +5 -5
- package/assets/init/.qfai/specs/spec-0001/17_Plan.md +8 -8
- package/assets/init/.qfai/specs/spec-0001/18_delta.md +27 -21
- 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 +2106 -4249
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +2147 -4290
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +3701 -5354
- 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 +3411 -5059
- 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/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
|
|
@@ -134,8 +128,8 @@ Operational notes.
|
|
|
134
128
|
- Each custom skill must output in the user’s language (absolute requirement).
|
|
135
129
|
- Except `qfai-discuss`, each skill must analyze the project context (architecture, tech stack, test framework, repo structure) before generating artifacts or code.
|
|
136
130
|
- 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 `
|
|
131
|
+
- Change classification (Primary/Tags) is required in `18_delta.md` and recommended in PRs. See `.qfai/assistant/instructions/change-classification.md`.
|
|
132
|
+
- Verification planning is recorded in `18_delta.md` (`Verification -> Plan`) and validated in CI (`VFY-*` rules).
|
|
139
133
|
|
|
140
134
|
## Configuration
|
|
141
135
|
|
|
@@ -183,6 +177,44 @@ QFAI uses a small, opinionated set of artifacts to reduce ambiguity and prevent
|
|
|
183
177
|
|
|
184
178
|
Traceability is validated across these artifacts, so code changes remain grounded in the specs and the tests prove compliance.
|
|
185
179
|
|
|
180
|
+
## SSOT boundaries
|
|
181
|
+
|
|
182
|
+
```mermaid
|
|
183
|
+
flowchart LR
|
|
184
|
+
S[.qfai/specs/**] --> L[16_Traceability-ledger.md]
|
|
185
|
+
C[.qfai/contracts/**] --> L
|
|
186
|
+
L --> V[qfai validate]
|
|
187
|
+
V --> R[.qfai/report/**]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- Specs SSOT: `.qfai/specs/**` (`01..18`, especially `16_Traceability-ledger.md` and `18_delta.md`)
|
|
191
|
+
- Contracts SSOT: `.qfai/contracts/**`
|
|
192
|
+
- Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
|
|
193
|
+
|
|
194
|
+
## Minimal tutorial (v1.4.4)
|
|
195
|
+
|
|
196
|
+
1. `npx qfai init`
|
|
197
|
+
2. Run `/qfai-discuss` to structure scope and open questions.
|
|
198
|
+
3. Run `/qfai-require` to produce `REQUIRE-XXXX`.
|
|
199
|
+
4. Run `/qfai-sdd` to build `spec-XXXX/01..18`.
|
|
200
|
+
5. Run `npx qfai validate` then `npx qfai report`.
|
|
201
|
+
|
|
202
|
+
Release gate behavior:
|
|
203
|
+
|
|
204
|
+
- Merge gate: `qfai validate` must pass (`error=0`), and open OQ is warning.
|
|
205
|
+
- Release gate: set `release_candidate: true` in `03_Initiative.md`; open OQ then becomes error.
|
|
206
|
+
|
|
207
|
+
## FAQ
|
|
208
|
+
|
|
209
|
+
- Q: I referenced AC/TC directly from upper layers and got an error.
|
|
210
|
+
- A: Keep upper-to-lower references out of upper docs; use `16_Traceability-ledger.md` for cross-layer linkage.
|
|
211
|
+
- Q: Ledger validation fails with missing columns.
|
|
212
|
+
- A: Ensure required columns exist: `trace_id,obj_id,init_id,cap_id,flow_id,us_id,ac_id,ex_ids,tc_ids`.
|
|
213
|
+
- Q: `18_delta.md` fails validation.
|
|
214
|
+
- A: Include all required sections (`Change Summary`, `Rationale`, `Candidates Considered`, `Adopted`, `Rejected`, `Impact`, `Follow-ups`) and include both `DO NOT` and `Temptation` in `Rejected`.
|
|
215
|
+
- Q: release_candidate validation fails due open questions.
|
|
216
|
+
- A: In `15_Open-questions.md`, change `status: open` to `resolved` or `deferred` and keep evidence.
|
|
217
|
+
|
|
186
218
|
## Continuous integration (GitHub Actions)
|
|
187
219
|
|
|
188
220
|
(GitHub Actions)
|
|
@@ -237,9 +269,7 @@ Typical customizations.
|
|
|
237
269
|
│ │ └── SKILL.md
|
|
238
270
|
│ ├── qfai-scenario-test
|
|
239
271
|
│ │ └── SKILL.md
|
|
240
|
-
│ ├── qfai-sdd
|
|
241
|
-
│ │ └── SKILL.md
|
|
242
|
-
│ ├── qfai-sdd-planning
|
|
272
|
+
│ ├── qfai-sdd
|
|
243
273
|
│ │ └── SKILL.md
|
|
244
274
|
│ ├── qfai-spec
|
|
245
275
|
│ │ └── SKILL.md
|
|
@@ -300,6 +330,12 @@ Typical customizations.
|
|
|
300
330
|
│ │ │ ├── structure.md
|
|
301
331
|
│ │ │ └── tech.md
|
|
302
332
|
│ │ └── README.md
|
|
333
|
+
│ ├── discuss
|
|
334
|
+
│ │ ├── README.md
|
|
335
|
+
│ │ └── DISCUSS-0001
|
|
336
|
+
│ │ ├── 00_Summary.md
|
|
337
|
+
│ │ ├── ...
|
|
338
|
+
│ │ └── 07_Open-questions.md
|
|
303
339
|
│ ├── contracts
|
|
304
340
|
│ │ ├── api
|
|
305
341
|
│ │ │ └── README.md
|
|
@@ -312,7 +348,15 @@ Typical customizations.
|
|
|
312
348
|
│ │ └── README.md
|
|
313
349
|
│ ├── require
|
|
314
350
|
│ │ ├── README.md
|
|
315
|
-
│ │
|
|
351
|
+
│ │ ├── REQUIRE-0001
|
|
352
|
+
│ │ │ ├── 00_Summary.md
|
|
353
|
+
│ │ │ ├── ...
|
|
354
|
+
│ │ │ └── 07_Open-questions.md
|
|
355
|
+
│ │ ├── glossary.md # legacy compatibility
|
|
356
|
+
│ │ ├── actors.md # legacy compatibility
|
|
357
|
+
│ │ ├── business-flows.md # legacy compatibility
|
|
358
|
+
│ │ ├── require.md # legacy compatibility
|
|
359
|
+
│ │ └── open-questions.md # legacy compatibility
|
|
316
360
|
│ ├── specs
|
|
317
361
|
│ │ └── README.md
|
|
318
362
|
│ └── 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,14 @@ flowchart TD
|
|
|
31
30
|
```text
|
|
32
31
|
.qfai/
|
|
33
32
|
├── README.md
|
|
34
|
-
├──
|
|
33
|
+
├── discuss/
|
|
35
34
|
│ ├── README.md
|
|
36
|
-
│ └──
|
|
35
|
+
│ └── DISCUSS-0001/
|
|
36
|
+
│ ├── 00_Summary.md
|
|
37
|
+
│ ├── ...
|
|
38
|
+
│ └── 07_Open-questions.md
|
|
39
|
+
├── discussions/ # legacy compatibility
|
|
40
|
+
│ └── README.md
|
|
37
41
|
├── assistant/
|
|
38
42
|
│ ├── skills/ # canonical skills (SSOT)
|
|
39
43
|
│ ├── skills.local/ # project-specific overrides
|
|
@@ -42,11 +46,15 @@ flowchart TD
|
|
|
42
46
|
│ └── instructions/ # workflow and guardrail docs
|
|
43
47
|
├── require/
|
|
44
48
|
│ ├── README.md
|
|
45
|
-
│ ├──
|
|
46
|
-
│ ├──
|
|
47
|
-
│ ├──
|
|
48
|
-
│
|
|
49
|
-
│
|
|
49
|
+
│ ├── REQUIRE-0001/
|
|
50
|
+
│ │ ├── 00_Summary.md
|
|
51
|
+
│ │ ├── ...
|
|
52
|
+
│ │ └── 07_Open-questions.md
|
|
53
|
+
│ ├── glossary.md # legacy compatibility
|
|
54
|
+
│ ├── actors.md # legacy compatibility
|
|
55
|
+
│ ├── business-flows.md # legacy compatibility
|
|
56
|
+
│ ├── require.md # legacy compatibility
|
|
57
|
+
│ └── open-questions.md # legacy compatibility
|
|
50
58
|
├── contracts/
|
|
51
59
|
│ ├── README.md
|
|
52
60
|
│ ├── api/
|
|
@@ -61,18 +69,11 @@ flowchart TD
|
|
|
61
69
|
├── specs/
|
|
62
70
|
│ ├── README.md
|
|
63
71
|
│ └── spec-0001/
|
|
64
|
-
│ ├── spec.md
|
|
65
|
-
│ ├── delta.md
|
|
66
|
-
│ ├── scenario.feature
|
|
67
|
-
│ ├── case-catalogue.md
|
|
68
|
-
│ ├── traceability-matrix.md
|
|
69
|
-
│ ├── plan.md
|
|
70
72
|
│ ├── 01_Spec.md
|
|
73
|
+
│ ├── 02_Objective.md
|
|
71
74
|
│ ├── ...
|
|
72
75
|
│ ├── 17_Plan.md
|
|
73
76
|
│ └── 18_delta.md
|
|
74
|
-
├── templates/
|
|
75
|
-
│ └── spec/ # compatibility templates (runtime SSOT files)
|
|
76
77
|
└── evidence/
|
|
77
78
|
├── README.md
|
|
78
79
|
└── <skill>-<run>.md
|
|
@@ -101,10 +102,11 @@ It is useful for local review but should not pollute version control.
|
|
|
101
102
|
- Prefer small stable identifiers (REQ/BR/AC/TC/EX/etc.) over long mixed paragraphs.
|
|
102
103
|
- If one line contains multiple independent constraints, split it.
|
|
103
104
|
|
|
104
|
-
### R4.
|
|
105
|
+
### R4. Spec Pack 01..18 is runtime SSOT
|
|
105
106
|
|
|
106
|
-
- Runtime validators and downstream skills consume `
|
|
107
|
-
-
|
|
107
|
+
- Runtime validators and downstream skills consume `01_*` to `18_*`.
|
|
108
|
+
- Traceability links are written in `16_Traceability-ledger.md`.
|
|
109
|
+
- Derived outputs under `.qfai/report/**` are non-SSOT.
|
|
108
110
|
|
|
109
111
|
## Skills (SSOT)
|
|
110
112
|
|
|
@@ -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)
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
- .qfai/assistant/steering/\*
|
|
12
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
13
13
|
- Existing discussion records under `.qfai/discussions/`
|
|
14
|
-
- .qfai/require/
|
|
14
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
15
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
11
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
12
|
- Existing discussion records under `.qfai/discussions/`
|
|
13
|
-
- .qfai/require/
|
|
13
|
+
- .qfai/require/REQUIRE-XXXX/\* (preferred if present)
|
|
14
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
14
15
|
|
|
15
16
|
## Deliverables (MANDATORY)
|
|
16
17
|
|
|
@@ -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 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/\*\*
|
|
@@ -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 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
|
|
@@ -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,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 if present)
|
|
13
|
+
- .qfai/require/require.md (legacy compatibility)
|
|
13
14
|
- Discussion records under `.qfai/discussions/`
|
|
14
15
|
- .qfai/specs/spec-\*/spec.md (if available)
|
|
15
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
|
|
|
@@ -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)
|