qfai 1.5.3 → 1.5.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.
Files changed (30) hide show
  1. package/README.md +4 -2
  2. package/assets/init/.qfai/assistant/instructions/requirements-decomposition.md +14 -14
  3. package/assets/init/.qfai/assistant/instructions/workflow.md +1 -1
  4. package/assets/init/.qfai/assistant/manifest/spec_required_files.json +2 -1
  5. package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +21 -10
  6. package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +19 -12
  7. package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +7 -12
  8. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/Rxx_reviewer.md +3 -3
  9. package/assets/init/.qfai/assistant/skills/qfai-discussion/templates/review/summary.json +1 -1
  10. package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +19 -10
  11. package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +18 -10
  12. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/report/preflight_summary.md +1 -1
  13. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/_policies/05_Contracts.md +26 -8
  14. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/01_Spec.md +7 -7
  15. package/assets/init/.qfai/assistant/skills/qfai-sdd/templates/specs/spec/02_User-stories.md +1 -1
  16. package/assets/init/.qfai/assistant/skills/qfai-tdd-green/SKILL.md +7 -9
  17. package/assets/init/.qfai/assistant/skills/qfai-tdd-red/SKILL.md +7 -9
  18. package/assets/init/.qfai/assistant/skills/qfai-tdd-refactor/SKILL.md +7 -9
  19. package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +22 -14
  20. package/assets/init/.qfai/review/.gitignore +2 -0
  21. package/assets/init/.qfai/review/README.md +4 -4
  22. package/assets/init/.qfai/specs/README.md +1 -1
  23. package/dist/cli/index.cjs +229 -304
  24. package/dist/cli/index.cjs.map +1 -1
  25. package/dist/cli/index.mjs +230 -305
  26. package/dist/cli/index.mjs.map +1 -1
  27. package/dist/index.cjs +2 -2
  28. package/dist/index.mjs +2 -2
  29. package/package.json +1 -1
  30. package/assets/init/.qfai/specs/_policies/.gitkeep +0 -1
package/README.md CHANGED
@@ -246,7 +246,7 @@ flowchart LR
246
246
  - Contracts SSOT: `.qfai/contracts/**`
247
247
  - Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
248
248
 
249
- ## Minimal tutorial (v1.5.3)
249
+ ## Minimal tutorial (v1.5.4)
250
250
 
251
251
  1. `npx qfai init`
252
252
  2. Run `/qfai-discussion` to structure scope, open questions, and produce a discussion pack under `.qfai/discussion/discussion-<ts>/`.
@@ -278,7 +278,8 @@ It does not generate GitHub Actions workflows.
278
278
  Configure CI in your own platform and run:
279
279
 
280
280
  ```bash
281
- pnpm ci:local
281
+ pnpm ci:gate
282
+ pnpm check-types:future
282
283
  # or, minimum gate only:
283
284
  npx qfai validate --fail-on error
284
285
  ```
@@ -286,6 +287,7 @@ npx qfai validate --fail-on error
286
287
  Recommended baseline.
287
288
 
288
289
  - Keep CI on default/full validation (`qfai validate --fail-on error`); do not use `--phase refinement` in CI.
290
+ - Keep `pnpm check-types:future` as a separate mandatory gate so future TS compatibility runs once without duplicating `pnpm ci:gate`.
289
291
  - Add a report step (`npx qfai report`) when you need a human-readable artifact.
290
292
  - Tune traceability globs in `qfai.config.yaml` to match your test layout.
291
293
 
@@ -12,11 +12,11 @@ This document is the decision rule SSOT for AI and humans when answering:
12
12
 
13
13
  ## Canonical order (top -> down)
14
14
 
15
- 1. **Source registry** (`require/require-*/01_Sources.md`)
16
- 2. **Requirement index** (`require/require-*/03_REQ.md`)
17
- 3. **Input gaps / Open Questions** (`require/require-*/08_OQ.md`)
18
- 4. **Policy layer** (`specs/_policies/01..04`)
19
- 5. **Capability slices** (`specs/spec-*/01..05` minimum)
15
+ 1. **Source registry** (`.qfai/require/require-*/01_Sources.md`)
16
+ 2. **Requirement index** (`.qfai/require/require-*/03_REQ.md`)
17
+ 3. **Input gaps / Open Questions** (`.qfai/require/require-*/08_OQ.md`)
18
+ 4. **Policy layer** (`.qfai/specs/_policies/01..04`)
19
+ 5. **Capability slices** (`.qfai/specs/spec-*/01..05` minimum)
20
20
  6. **ATDD / TDD** (tests + code)
21
21
 
22
22
  ## Decision rules
@@ -28,9 +28,9 @@ This document is the decision rule SSOT for AI and humans when answering:
28
28
 
29
29
  ### Rule 2 - Preserve layered ownership
30
30
 
31
- - `require/` stores only source/index/gap inputs.
32
- - `specs/` is the SSOT for detailed behavior and design decisions.
33
- - Do not duplicate detailed spec text in `require/`.
31
+ - `.qfai/require/` stores only source/index/gap inputs.
32
+ - `.qfai/specs/` is the SSOT for detailed behavior and design decisions.
33
+ - Do not duplicate detailed spec text in `.qfai/require/`.
34
34
 
35
35
  ### Rule 3 - Keep ambiguity explicit
36
36
 
@@ -39,9 +39,9 @@ This document is the decision rule SSOT for AI and humans when answering:
39
39
 
40
40
  ## How to decompose (mechanical procedure)
41
41
 
42
- 1. Register source documents and assumptions in `require-*/01_Sources.md`.
43
- 2. Extract concise requirement index entries in `require-*/03_REQ.md`.
44
- 3. Capture missing information in `require-*/08_OQ.md`.
42
+ 1. Register source documents and assumptions in `.qfai/require/require-*/01_Sources.md`.
43
+ 2. Extract concise requirement index entries in `.qfai/require/require-*/03_REQ.md`.
44
+ 3. Capture missing information in `.qfai/require/require-*/08_OQ.md`.
45
45
  4. Build `_policies` layer (`Objective`, `Initiative`, `Capabilities`, `Business Flow`).
46
46
  5. Split by capability (`1 CAP = 1 spec-XXXX`) and produce slice files.
47
47
  6. Derive acceptance tests and implementation from the finalized slices.
@@ -49,11 +49,11 @@ This document is the decision rule SSOT for AI and humans when answering:
49
49
  ## Example
50
50
 
51
51
  - Requirement index entry: `REQ-0003` linked to `SRC-0002`
52
- - Capability mapping: `CAP-0003` in `_policies/03_Capabilities.md`
53
- - Spec slice: `spec-0003/01_Spec.md` through `06_Test-Cases.md`
52
+ - Capability mapping: `CAP-0003` in `.qfai/specs/_policies/03_Capabilities.md`
53
+ - Spec slice: `.qfai/specs/spec-0003/01_Spec.md` through `06_Test-Cases.md`
54
54
 
55
55
  ## Non-goals
56
56
 
57
57
  - Managing release status flags in specs.
58
- - Keeping full requirement prose in `require/`.
58
+ - Keeping full requirement prose in `.qfai/require/`.
59
59
  - Treating diagrams as mandatory at require stage.
@@ -2,7 +2,7 @@
2
2
 
3
3
  QFAI standardizes work into a fixed pipeline:
4
4
 
5
- **SDD ATDD TDD Verification**
5
+ ## SDD -> ATDD -> TDD -> Verification
6
6
 
7
7
  This file defines the canonical stages and delegation expectations.
8
8
 
@@ -8,7 +8,8 @@
8
8
  "06_Test-Cases.md",
9
9
  "07_Decisions.md",
10
10
  "08_Open-questions.md",
11
- "09_delta.md"
11
+ "09_delta.md",
12
+ "10_Plan.md"
12
13
  ],
13
14
  "shared_dir": [
14
15
  "01_Objective.md",
@@ -1,22 +1,33 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-atdd
10
3
  title: QFAI ATDD (Executable acceptance tests)
11
4
  description: "Implement automated acceptance tests (E2E/API/Integration) aligned with US/TC/CON-API obligations from specs and contracts."
12
5
  argument-hint: "<spec-id> [--auto]"
13
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
14
- roles: [Orchestrator, TestVolumeEstimator, ATDDE2EImplementer, ATDDAPIImplementer, ATDDIntegrationImplementer, QAEngineer, TestEngineer, BackendEngineer, FrontendEngineer, Reviewer, RuntimeGatekeeper, DevOpsCIEngineer, CodeReviewer]
7
+ roles:
8
+ - Orchestrator
9
+ - TestVolumeEstimator
10
+ - ATDDE2EImplementer
11
+ - ATDDAPIImplementer
12
+ - ATDDIntegrationImplementer
13
+ - QAEngineer
14
+ - TestEngineer
15
+ - BackendEngineer
16
+ - FrontendEngineer
17
+ - Reviewer
18
+ - RuntimeGatekeeper
19
+ - DevOpsCIEngineer
20
+ - CodeReviewer
15
21
  mode: execution-focused
16
-
17
22
  ---
18
23
 
19
- # /qfai-atdd — Implement Automated Acceptance Tests (ATDD)
24
+ <!--
25
+ QFAI Skill Body (SSOT)
26
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
27
+ - Keep wrappers thin and route users to this skill body.
28
+ -->
29
+
30
+ ## /qfai-atdd — Implement Automated Acceptance Tests (ATDD)
20
31
 
21
32
  [DRIFT-PROTOCOL:MANDATORY]
22
33
 
@@ -1,11 +1,4 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-configure
10
3
  title: QFAI Configure (Tune qfai.config.yaml)
11
4
  description: "Analyze the repository and tune qfai.config.yaml (testFileGlobs, exclude globs, optional specSections)."
@@ -13,10 +6,15 @@ argument-hint: "[--auto]"
13
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task]
14
7
  roles: [DevOpsCIEngineer, QAEngineer, CodeReviewer, Planner]
15
8
  mode: evidence-focused
16
-
17
9
  ---
18
10
 
19
- # /qfai-configure - Configure QFAI for this repository
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-configure - Configure QFAI for this repository
20
18
 
21
19
  [DRIFT-PROTOCOL:MANDATORY]
22
20
 
@@ -148,7 +146,9 @@ Rules:
148
146
  ## Delta Rejected Guard (Mandatory)
149
147
 
150
148
  - Do NOT reintroduce options marked as rejected in 09_delta.md.
151
- - If a rejected option must be reconsidered, create a **[RE-OPEN]** Decision Record in 09_delta.md that references the prior DR-ID, states what changed + new criteria, and includes explicit approval (user or instructions/steering).
149
+ - If a rejected option must be reconsidered, create a **[RE-OPEN]** Decision
150
+ Record in 09_delta.md that references the prior DR-ID, states what changed +
151
+ new criteria, and includes explicit approval (user or instructions/steering).
152
152
 
153
153
  ## CRITICAL CONSTRAINTS (Read First)
154
154
 
@@ -166,8 +166,15 @@ Before declaring completion, you MUST:
166
166
 
167
167
  - OQ / undefined resolution: detect undefined or ambiguous items; resolve them or explicitly defer them with documented rationale and (when required by this prompt) user approval.
168
168
  - Deliverable completeness: verify every expected artifact listed in this prompt (and required README templates) exists and is fully populated; no missing required sections.
169
- - OQ / placeholder scan: scan all generated artifacts (including evidence) for placeholders such as "TBD", "TODO", "TBA", "TBC", "XXX", "???", "OQ", "OPEN QUESTION", "UNDEFINED", "PLACEHOLDER", and localized equivalents in the user's language. Resolve or explicitly defer; do not leave silent placeholders.
170
- - Smoke check (if applicable): when the prompt produces runnable code/tests/configs, execute the smallest command that proves basic run/start/operate and record evidence. If not applicable, state "not applicable" with a short rationale.
169
+ - OQ / placeholder scan: scan all generated artifacts (including evidence) for
170
+ placeholders such as "TBD", "TODO", "TBA", "TBC", "XXX", "???", "OQ",
171
+ "OPEN QUESTION", "UNDEFINED", "PLACEHOLDER", and localized equivalents in
172
+ the user's language. Resolve or explicitly defer; do not leave silent
173
+ placeholders.
174
+ - Smoke check (if applicable): when the prompt produces runnable code, tests,
175
+ or configs, execute the smallest command that proves basic run/start/operate
176
+ and record evidence. If not applicable, state "not applicable" with a short
177
+ rationale.
171
178
 
172
179
  ## Goal
173
180
 
@@ -1,12 +1,4 @@
1
- ````skill
2
- <!--
3
- QFAI Skill Body (SSOT)
4
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
5
- - Keep wrappers thin and route users to this skill body.
6
- -->
7
-
8
1
  ---
9
-
10
2
  name: qfai-discussion
11
3
  title: QFAI Discussion (Unified Discuss + Require)
12
4
  description: "Run structured discussion that merges discuss and require into a single 15-file discussion pack with OQ-driven exit."
@@ -14,10 +6,15 @@ argument-hint: "<idea-or-problem> [--auto]"
14
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
15
7
  roles: [Researcher, Facilitator, Interviewer, RequirementsAnalyst, QAEngineer, Planner]
16
8
  mode: interactive-by-default
17
-
18
9
  ---
19
10
 
20
- # /qfai-discussion - Unified Discuss + Require
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-discussion - Unified Discuss + Require
21
18
 
22
19
  [DRIFT-PROTOCOL:MANDATORY]
23
20
 
@@ -333,5 +330,3 @@ You MUST end the user-facing output with a handoff sentence to `/qfai-sdd` in th
333
330
  Action: continue discussion loops until OQ states are explicit and complete.
334
331
  - Need additional risk analysis before SDD:
335
332
  Action: update `03_Story-Workshop.md` and `11_OQ-Register.md` with additional findings.
336
-
337
- ````
@@ -1,9 +1,9 @@
1
1
  # Reviewer Result
2
2
 
3
- - reviewer_id: `<qa-lead>`
4
- - reviewer_role: `<Quality Lead>`
3
+ - reviewer_id: `Rxx`
4
+ - reviewer_role: `qa-lead`
5
5
  - verdict: `PASS` <!-- PASS | FAIL | N/A -->
6
- - reviewed_at: `<YYYY-MM-DDThh:mm:ssZ>`
6
+ - reviewed_at: `YYYY-MM-DDThh:mm:ssZ`
7
7
 
8
8
  ## Checked
9
9
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0",
3
- "created_at": "2026-03-03T12:00:00+09:00",
3
+ "created_at": "YYYY-MM-DDThh:mm:ssZ",
4
4
  "target": {
5
5
  "kind": "discussion",
6
6
  "path": ".qfai/discussion/discussion-YYYYMMDDhhmmssSSS"
@@ -1,22 +1,31 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-prototyping
10
3
  title: QFAI Prototyping (All-spec runnable skeleton gate)
11
4
  description: "Implement a minimum runnable skeleton for ALL specs and block DONE until evidence + validate gate pass."
12
5
  argument-hint: "[--auto]"
13
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
14
- roles: [FullStackEngineer, BackendEngineer, FrontendEngineer, DBEngineer, DevOpsCIEngineer, QAEngineer, RuntimeGatekeeper, UIUXReviewer, CodeReviewer]
7
+ roles:
8
+ [
9
+ FullStackEngineer,
10
+ BackendEngineer,
11
+ FrontendEngineer,
12
+ DBEngineer,
13
+ DevOpsCIEngineer,
14
+ QAEngineer,
15
+ RuntimeGatekeeper,
16
+ UIUXReviewer,
17
+ CodeReviewer,
18
+ ]
15
19
  mode: execution-focused
16
-
17
20
  ---
18
21
 
19
- # /qfai-prototyping
22
+ <!--
23
+ QFAI Skill Body (SSOT)
24
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
25
+ - Keep wrappers thin and route users to this skill body.
26
+ -->
27
+
28
+ ## /qfai-prototyping
20
29
 
21
30
  [DRIFT-PROTOCOL:MANDATORY]
22
31
 
@@ -1,22 +1,30 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-sdd
10
3
  title: QFAI SDD Unified (Outline/Slice/Plan/Delta)
11
4
  description: "Create and update layered SDD artifacts (\_policies + spec-XXXX) in one workflow."
12
5
  argument-hint: "[<spec-id-or-name>] [--auto]"
13
6
  allowed-tools: [Read, Glob, Write, TodoWrite, Task, Bash]
14
- roles: [Planner, Architect, RequirementsAnalyst, SpecWriter, TraceabilityBuilder, TestStrategist, QAEngineer, CodeReviewer]
7
+ roles:
8
+ [
9
+ Planner,
10
+ Architect,
11
+ RequirementsAnalyst,
12
+ SpecWriter,
13
+ TraceabilityBuilder,
14
+ TestStrategist,
15
+ QAEngineer,
16
+ CodeReviewer,
17
+ ]
15
18
  mode: approval-gated
16
-
17
19
  ---
18
20
 
19
- # /qfai-sdd - Unified SDD Workflow
21
+ <!--
22
+ QFAI Skill Body (SSOT)
23
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
24
+ - Keep wrappers thin and route users to this skill body.
25
+ -->
26
+
27
+ ## /qfai-sdd - Unified SDD Workflow
20
28
 
21
29
  [DRIFT-PROTOCOL:MANDATORY]
22
30
 
@@ -16,4 +16,4 @@
16
16
 
17
17
  ## Next Commands
18
18
 
19
- - /qfai-discussion
19
+ - /qfai-sdd
@@ -9,29 +9,47 @@
9
9
 
10
10
  ### DB Contracts
11
11
 
12
- | Short ID | Entity | Declared ID | File | Purpose |
13
- | -------- | ------------ | ----------- | --------------------------------------- | ----------------- |
12
+ 0 items
13
+
14
+ <!-- Example row (remove this comment block and add real rows when contracts exist):
14
15
  | DB-001 | order_drafts | CON-DB-0001 | `.qfai/contracts/db/db-0001-<slug>.sql` | draft persistence |
16
+ -->
17
+
18
+ | Short ID | Entity | Declared ID | File | Purpose |
19
+ | -------- | ------ | ----------- | ---- | ------- |
15
20
 
16
21
  ### API Contracts
17
22
 
18
- | Short ID | Router | Declared ID | File | Purpose |
19
- | -------- | ----------- | ------------ | ------------------------------------------ | ------------ |
23
+ 0 items
24
+
25
+ <!-- Example row:
20
26
  | API-001 | /api/orders | CON-API-0001 | `.qfai/contracts/api/api-0001-<slug>.yaml` | create draft |
27
+ -->
28
+
29
+ | Short ID | Router | Declared ID | File | Purpose |
30
+ | -------- | ------ | ----------- | ---- | ------- |
21
31
 
22
32
  ### UI Contracts
23
33
 
24
- | Short ID | Screen | Declared ID | File | Purpose |
25
- | -------- | ------------ | ----------- | ---------------------------------------- | ---------------- |
34
+ 0 items
35
+
36
+ <!-- Example row:
26
37
  | UI-001 | order-create | CON-UI-0001 | `.qfai/contracts/ui/ui-0001-<slug>.yaml` | draft input form |
38
+ -->
39
+
40
+ | Short ID | Screen | Declared ID | File | Purpose |
41
+ | -------- | ------ | ----------- | ---- | ------- |
27
42
 
28
43
  ## Mapping Rules
29
44
 
45
+ - If no contracts are needed, keep each table and state `0 items` explicitly.
46
+ - `<slug>` must be kebab-case from entity/router/screen.
47
+
48
+ <!-- Example mappings (add when contracts exist):
30
49
  - `DB-001` maps to `CON-DB-0001`, file `db-0001-<slug>.sql`.
31
50
  - `API-001` maps to `CON-API-0001`, file `api-0001-<slug>.yaml`.
32
51
  - `UI-001` maps to `CON-UI-0001`, file `ui-0001-<slug>.yaml`.
33
- - `<slug>` must be kebab-case from entity/router/screen.
34
- - If no contracts are needed, keep each table and state `0 items` explicitly.
52
+ -->
35
53
 
36
54
  ## Diagram (Mermaid required for ER/relationship)
37
55
 
@@ -1,11 +1,11 @@
1
1
  # 01 Spec
2
2
 
3
- - Spec: spec-0001
4
- - Parent: CAP-0001
3
+ - Spec: spec-XXXX
4
+ - Parent: CAP-XXXX
5
5
 
6
6
  ## Consumer View
7
7
 
8
- - Primary SSOT for execution: `spec-0001/01_Spec.md`
8
+ - Primary SSOT for execution: `spec-XXXX/01_Spec.md`
9
9
  - Default read set: this file + relevant contracts only
10
10
  - `_policies` is read-only escalation context and must not be read by default
11
11
 
@@ -47,7 +47,7 @@
47
47
 
48
48
  ### Escalation Targets (Read-only, decision basis)
49
49
 
50
- - specs/\_policies/01_Objective.md
51
- - specs/\_policies/02_Initiative.md
52
- - specs/\_policies/07_Constraints.md
53
- - specs/\_policies/08_Decisions.md
50
+ - \_policies/01_Objective.md
51
+ - \_policies/02_Initiative.md
52
+ - \_policies/07_Constraints.md
53
+ - \_policies/08_Decisions.md
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## US-0001: <title>
8
8
 
9
- - Parent: CAP-0001
9
+ - Parent: CAP-XXXX
10
10
  - Goal: <goal>
11
11
  - Non-goals: <non-goal>
12
12
  - Notes: <notes>
@@ -1,11 +1,4 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-tdd-green
10
3
  title: QFAI TDD Green (Deprecated Wrapper)
11
4
  description: "Deprecated wrapper. Legacy red/green/refactor chain is no longer a completion gate."
@@ -13,10 +6,15 @@ argument-hint: "[optional notes]"
13
6
  allowed-tools: [Read]
14
7
  roles: [Reviewer]
15
8
  mode: approval-gated
16
-
17
9
  ---
18
10
 
19
- # /qfai-tdd-green - Deprecated Wrapper
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-tdd-green - Deprecated Wrapper
20
18
 
21
19
  [DRIFT-PROTOCOL:MANDATORY]
22
20
 
@@ -1,11 +1,4 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-tdd-red
10
3
  title: QFAI TDD Red (Deprecated Wrapper)
11
4
  description: "Deprecated wrapper. Legacy red/green/refactor chain is no longer a completion gate."
@@ -13,10 +6,15 @@ argument-hint: "[optional notes]"
13
6
  allowed-tools: [Read]
14
7
  roles: [Reviewer]
15
8
  mode: approval-gated
16
-
17
9
  ---
18
10
 
19
- # /qfai-tdd-red - Deprecated Wrapper
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-tdd-red - Deprecated Wrapper
20
18
 
21
19
  [DRIFT-PROTOCOL:MANDATORY]
22
20
 
@@ -1,11 +1,4 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-tdd-refactor
10
3
  title: QFAI TDD Refactor (Deprecated Wrapper)
11
4
  description: "Deprecated wrapper. Legacy red/green/refactor chain is no longer a completion gate."
@@ -13,10 +6,15 @@ argument-hint: "[optional notes]"
13
6
  allowed-tools: [Read]
14
7
  roles: [Reviewer]
15
8
  mode: approval-gated
16
-
17
9
  ---
18
10
 
19
- # /qfai-tdd-refactor - Deprecated Wrapper
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-tdd-refactor - Deprecated Wrapper
20
18
 
21
19
  [DRIFT-PROTOCOL:MANDATORY]
22
20
 
@@ -1,11 +1,4 @@
1
- <!--
2
- QFAI Skill Body (SSOT)
3
- - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
4
- - Keep wrappers thin and route users to this skill body.
5
- -->
6
-
7
1
  ---
8
-
9
2
  name: qfai-verify
10
3
  title: QFAI Verify (Quality Gates + Evidence)
11
4
  description: "Run and document quality gates (repo + qfai validate/report), fix until PASS."
@@ -13,10 +6,15 @@ argument-hint: "[--auto]"
13
6
  allowed-tools: [Read, Glob, Bash, Write, TodoWrite, Task]
14
7
  roles: [DevOpsCIEngineer, QAEngineer, CodeReviewer, Planner]
15
8
  mode: evidence-focused
16
-
17
9
  ---
18
10
 
19
- # /qfai-verify — Quality Gates and Evidence
11
+ <!--
12
+ QFAI Skill Body (SSOT)
13
+ - This file is intended to be referenced by tool-specific wrappers (e.g., GitHub/Claude/Codex skills).
14
+ - Keep wrappers thin and route users to this skill body.
15
+ -->
16
+
17
+ ## /qfai-verify — Quality Gates and Evidence
20
18
 
21
19
  [DRIFT-PROTOCOL:MANDATORY]
22
20
 
@@ -148,7 +146,9 @@ Rules:
148
146
  ## Delta Rejected Guard (Mandatory)
149
147
 
150
148
  - Do NOT reintroduce options marked as rejected in 09_delta.md.
151
- - If a rejected option must be reconsidered, create a **[RE-OPEN]** Decision Record in 09_delta.md that references the prior DR-ID, states what changed + new criteria, and includes explicit approval (user or instructions/steering).
149
+ - If a rejected option must be reconsidered, create a **[RE-OPEN]** Decision
150
+ Record in 09_delta.md that references the prior DR-ID, states what changed +
151
+ new criteria, and includes explicit approval (user or instructions/steering).
152
152
 
153
153
  ## CRITICAL CONSTRAINTS (Read First)
154
154
 
@@ -168,8 +168,15 @@ Before declaring completion, you MUST:
168
168
 
169
169
  - OQ / undefined resolution: detect undefined or ambiguous items; resolve them or explicitly defer them with documented rationale and (when required by this prompt) user approval.
170
170
  - Deliverable completeness: verify every expected artifact listed in this prompt (and required README templates) exists and is fully populated; no missing required sections.
171
- - OQ / placeholder scan: scan all generated artifacts (including evidence) for placeholders such as "TBD", "TODO", "TBA", "TBC", "XXX", "???", "OQ", "OPEN QUESTION", "UNDEFINED", "PLACEHOLDER", and localized equivalents in the user's language. Resolve or explicitly defer; do not leave silent placeholders.
172
- - Smoke check (if applicable): when the prompt produces runnable code/tests/configs, execute the smallest command that proves basic run/start/operate and record evidence. If not applicable, state "not applicable" with a short rationale.
171
+ - OQ / placeholder scan: scan all generated artifacts (including evidence) for
172
+ placeholders such as "TBD", "TODO", "TBA", "TBC", "XXX", "???", "OQ",
173
+ "OPEN QUESTION", "UNDEFINED", "PLACEHOLDER", and localized equivalents in
174
+ the user's language. Resolve or explicitly defer; do not leave silent
175
+ placeholders.
176
+ - Smoke check (if applicable): when the prompt produces runnable code, tests,
177
+ or configs, execute the smallest command that proves basic run/start/operate
178
+ and record evidence. If not applicable, state "not applicable" with a short
179
+ rationale.
173
180
 
174
181
  ## Goal
175
182
 
@@ -331,13 +338,14 @@ QFAI expects `assistant/steering/` to contain **project‑specific facts** so al
331
338
  - `.qfai/assistant/steering/tech.md`
332
339
  - `.qfai/assistant/steering/structure.md`
333
340
 
334
- 2. If they are missing, mostly empty, or still have placeholders (e.g., `- ` only), **populate them by analyzing the current repository**:
341
+ 1. If they are missing, mostly empty, or still have placeholders (e.g., a lone `-`
342
+ only), **populate them by analyzing the current repository**:
335
343
 
336
344
  - derive “what/why/users/success/non-goals” from README/docs/issues (product.md)
337
345
  - derive runtime/tooling versions + constraints from package.json, CI config, lockfiles (tech.md)
338
346
  - derive repo layout + key directories + gate commands from the file tree and scripts (structure.md)
339
347
 
340
- 3. Do **not** invent facts. If something cannot be verified, write it as:
348
+ 1. Do **not** invent facts. If something cannot be verified, write it as:
341
349
 
342
350
  - `TBD` + what evidence is missing, or
343
351
  - an Open Question (if it blocks correctness)
@@ -1,3 +1,5 @@
1
1
  *
2
2
  !.gitignore
3
3
  !README.md
4
+ !review-*/
5
+ !review-*/**
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- `review/` stores review artifacts as append-only `review-<timestamp>` packs.
5
+ `.qfai/review/` stores review artifacts as append-only `review-<timestamp>` packs.
6
6
 
7
7
  Each review pack must include:
8
8
 
@@ -17,7 +17,7 @@ Roster SSOT:
17
17
  ## Path format
18
18
 
19
19
  ```text
20
- review/
20
+ .qfai/review/
21
21
  ├── .gitignore
22
22
  └── review-YYYYMMDDhhmmssSSS/
23
23
  ├── review_request.md
@@ -32,8 +32,8 @@ review/
32
32
  {
33
33
  "version": "1.0",
34
34
  "created_at": "2026-02-18T12:34:56+09:00",
35
- "target": { "kind": "spec|require|discuss", "path": "..." },
36
- "roster": [{ "reviewer": "name-or-id", "status": "PASS|FAIL|NA", "feedback_count": 0 }],
35
+ "target": { "kind": "spec|require|discussion", "path": "..." },
36
+ "roster": [{ "reviewer": "name-or-id", "status": "PASS|FAIL|N/A", "feedback_count": 0 }],
37
37
  "overall_status": "PASS|FAIL"
38
38
  }
39
39
  ```