qfai 1.4.27 → 1.4.28
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 +3 -3
- package/assets/init/.qfai/assistant/agents/backend-engineer.md +4 -2
- package/assets/init/.qfai/assistant/agents/frontend-engineer.md +4 -2
- package/assets/init/.qfai/assistant/agents/orchestrator.md +4 -2
- package/assets/init/.qfai/assistant/agents/qa-engineer.md +6 -5
- package/assets/init/.qfai/assistant/agents/qa-reviewer.md +3 -2
- package/assets/init/.qfai/assistant/agents/test-engineer.md +7 -5
- package/assets/init/.qfai/assistant/agents/unit-test-scope-enforcer.md +5 -4
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +5 -3
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +6 -4
- package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +3 -2
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +5 -3
- package/dist/cli/index.cjs +9 -9
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +9 -9
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ npx qfai report
|
|
|
39
39
|
- `npx qfai doctor`
|
|
40
40
|
- Diagnoses configuration discovery, path resolution, glob scanning, and `validate.json` inputs before running validate/report; use `--fail-on` to enforce failures in CI.
|
|
41
41
|
|
|
42
|
-
## ATDD annotation hard gate (v1.4.
|
|
42
|
+
## ATDD annotation hard gate (v1.4.28)
|
|
43
43
|
|
|
44
44
|
`qfai validate` enforces spec-to-test traceability with directory-based rules.
|
|
45
45
|
|
|
@@ -220,7 +220,7 @@ flowchart LR
|
|
|
220
220
|
- Contracts SSOT: `.qfai/contracts/**`
|
|
221
221
|
- Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
|
|
222
222
|
|
|
223
|
-
## Minimal tutorial (v1.4.
|
|
223
|
+
## Minimal tutorial (v1.4.28)
|
|
224
224
|
|
|
225
225
|
1. `npx qfai init`
|
|
226
226
|
2. Run `/qfai-discuss` to structure scope and open questions.
|
|
@@ -247,7 +247,7 @@ Release gate behavior:
|
|
|
247
247
|
|
|
248
248
|
## Continuous integration
|
|
249
249
|
|
|
250
|
-
QFAI v1.4.
|
|
250
|
+
QFAI v1.4.28 generates integration wrappers under `.agents/**`, `.claude/**`,
|
|
251
251
|
`.github/**`, and `.codex/**`.
|
|
252
252
|
It does not generate GitHub Actions workflows.
|
|
253
253
|
Configure CI in your own platform and run:
|
|
@@ -8,17 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
|
+
- .qfai/assistant/steering/test-layers.md (US/TC/CON-API hard obligations)
|
|
11
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
13
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
-
|
|
14
|
+
- Optional legacy input: `.qfai/specs/spec-*/scenario.feature`
|
|
14
15
|
- .qfai/contracts/api/\*\*
|
|
15
16
|
- .qfai/contracts/db/\*\*
|
|
16
17
|
|
|
17
18
|
## Deliverables (MANDATORY)
|
|
18
19
|
|
|
19
20
|
- Decision Records referenced (DR-IDs) + rejected check (or RE-OPEN request)
|
|
20
|
-
- Implementation mapping (contract/
|
|
21
|
+
- Implementation mapping (contract/spec obligations -> file/function)
|
|
21
22
|
- Backend code changes (minimal, traceable)
|
|
23
|
+
- Validation gate evidence (`qfai validate --fail-on error`) for touched scope
|
|
22
24
|
- Execution proof (commands + key outputs)
|
|
23
25
|
- Evidence summary for `.qfai/evidence/` (gitignored; do not commit)
|
|
24
26
|
|
|
@@ -8,16 +8,18 @@
|
|
|
8
8
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
|
+
- .qfai/assistant/steering/test-layers.md (US/TC/CON-API hard obligations)
|
|
11
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
13
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
-
|
|
14
|
+
- Optional legacy input: `.qfai/specs/spec-*/scenario.feature`
|
|
14
15
|
- .qfai/contracts/ui/\*\*
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
18
19
|
- Decision Records referenced (DR-IDs) + rejected check (or RE-OPEN request)
|
|
19
|
-
- Implementation mapping (contract/
|
|
20
|
+
- Implementation mapping (contract/spec obligations -> file/component)
|
|
20
21
|
- Frontend code changes (minimal, traceable)
|
|
22
|
+
- Validation gate evidence (`qfai validate --fail-on error`) for touched scope
|
|
21
23
|
- Execution proof (commands + key outputs)
|
|
22
24
|
- Evidence summary for `.qfai/evidence/` (gitignored; do not commit)
|
|
23
25
|
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
- .qfai/assistant/instructions/\*
|
|
11
11
|
- .qfai/assistant/steering/\*
|
|
12
|
+
- .qfai/assistant/steering/test-layers.md (SSOT for hard coverage obligations)
|
|
12
13
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
13
|
-
- Prompt-specific artifacts (
|
|
14
|
+
- Prompt-specific artifacts (traceability, validation evidence, optional legacy scenario/ledger artifacts)
|
|
14
15
|
|
|
15
16
|
## Deliverables (MANDATORY)
|
|
16
17
|
|
|
@@ -23,7 +24,8 @@
|
|
|
23
24
|
## Stop conditions (Blockers)
|
|
24
25
|
|
|
25
26
|
- Subagent delegation missing when required
|
|
26
|
-
-
|
|
27
|
+
- Validation gate evidence missing/failing (`qfai validate --fail-on error`)
|
|
28
|
+
- Required hard obligations in `test-layers.md` are unmet
|
|
27
29
|
- Reviewer sign-off missing
|
|
28
30
|
- Rejected option would be reintroduced without RE-OPEN DR
|
|
29
31
|
|
|
@@ -8,15 +8,16 @@
|
|
|
8
8
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
|
+
- .qfai/assistant/steering/test-layers.md (US/TC/CON-API hard obligations)
|
|
11
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
13
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
-
|
|
14
|
-
-
|
|
14
|
+
- Test outputs and coverage tooling outputs
|
|
15
|
+
- Optional legacy artifacts: `.qfai/specs/spec-*/scenario.feature`, coverage ledgers
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
18
19
|
- Decision Records referenced (DR-IDs) + rejected check (or RE-OPEN request)
|
|
19
|
-
- Traceability audit (
|
|
20
|
+
- Traceability audit (`US/TC/CON-API` -> tests + runtime/coverage evidence)
|
|
20
21
|
- Gap list with explicit rationale
|
|
21
22
|
- Noise control notes (aggregation policy)
|
|
22
23
|
- Evidence summary for `.qfai/evidence/` (gitignored; do not commit)
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
- Rejected option would be reintroduced without RE-OPEN DR
|
|
27
28
|
- Evidence is missing or incomplete
|
|
28
29
|
- "Done" claimed without runtime evidence
|
|
29
|
-
-
|
|
30
|
+
- Validation gate evidence missing/failing (`qfai validate --fail-on error`) or required `US/TC/CON-API` obligations are unmet
|
|
30
31
|
|
|
31
32
|
## Sign-off checklist (Check Last)
|
|
32
33
|
|
|
@@ -39,7 +40,7 @@
|
|
|
39
40
|
|
|
40
41
|
- Decision Records (DR-IDs) / rejected check
|
|
41
42
|
- Findings
|
|
42
|
-
- Traceability audit
|
|
43
|
+
- Traceability audit (`US/TC/CON-API` -> tests)
|
|
43
44
|
- Gap list
|
|
44
45
|
- Evidence summary
|
|
45
46
|
- Open Questions / Risks
|
|
@@ -12,9 +12,10 @@
|
|
|
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
|
- QA evidence summary under `.qfai/evidence/` (gitignored)
|
|
15
|
-
-
|
|
15
|
+
- `qfai validate --fail-on error` evidence (`.qfai/report/validate.json` / logs)
|
|
16
|
+
- Traceability reports and coverage tooling outputs (legacy ledgers optional when present)
|
|
16
17
|
- .qfai/specs/spec-\*/spec.md
|
|
17
|
-
-
|
|
18
|
+
- Optional legacy input: `.qfai/specs/spec-*/scenario.feature`
|
|
18
19
|
|
|
19
20
|
## Cross-cutting review: Drift Protocol (MANDATORY)
|
|
20
21
|
|
|
@@ -8,23 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
|
+
- .qfai/assistant/steering/test-layers.md (US/TC/CON-API hard obligations)
|
|
11
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
|
-
- .qfai/specs/spec-\*/scenario.feature
|
|
13
13
|
- .qfai/specs/spec-\*/spec.md
|
|
14
|
-
- Existing test files and coverage
|
|
14
|
+
- Existing test files and coverage tooling outputs
|
|
15
|
+
- Optional legacy artifacts: `.qfai/specs/spec-*/scenario.feature`, coverage ledgers
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
18
19
|
- Decision Records referenced (DR-IDs) + rejected check (or RE-OPEN request)
|
|
19
20
|
- Automation plan per layer (unit/component/integration/api/e2e)
|
|
20
|
-
- Coverage
|
|
21
|
+
- Coverage obligations mapped to `US/TC/CON-API` with evidence from tests/coverage tooling
|
|
22
|
+
- Validation gate evidence (`qfai validate --fail-on error`) with `error=0`
|
|
21
23
|
- Execution proof (commands + key outputs)
|
|
22
24
|
- Evidence summary for `.qfai/evidence/` (gitignored; do not commit)
|
|
23
25
|
|
|
24
26
|
## Stop conditions (Blockers)
|
|
25
27
|
|
|
26
28
|
- Rejected option would be reintroduced without RE-OPEN DR
|
|
27
|
-
-
|
|
29
|
+
- `US/TC/CON-API` obligations cannot be mapped to test layers
|
|
28
30
|
- Test stack is absent and cannot be bootstrapped via policy
|
|
29
31
|
- Evidence is missing or incomplete
|
|
30
32
|
- Scope ambiguity prevents a safe decision
|
|
@@ -42,7 +44,7 @@
|
|
|
42
44
|
- Findings
|
|
43
45
|
- Decisions
|
|
44
46
|
- Proposed tests (files/sections)
|
|
45
|
-
- Coverage
|
|
47
|
+
- Coverage/obligation summary (`US/TC/CON-API`, tool coverage evidence)
|
|
46
48
|
- Evidence summary
|
|
47
49
|
- Open Questions / Risks
|
|
48
50
|
- Confidence (High/Medium/Low + reason)
|
|
@@ -8,15 +8,16 @@
|
|
|
8
8
|
|
|
9
9
|
- .qfai/assistant/instructions/\*
|
|
10
10
|
- .qfai/assistant/steering/\*
|
|
11
|
+
- .qfai/assistant/steering/test-layers.md (scope and hard obligations)
|
|
11
12
|
- .qfai/specs/spec-\*/delta.md (Decision Records; check rejected)
|
|
12
13
|
- .qfai/specs/spec-\*/spec.md
|
|
13
|
-
-
|
|
14
|
-
- Current unit/component test
|
|
14
|
+
- Optional legacy input: `.qfai/specs/spec-*/scenario.feature`
|
|
15
|
+
- Current unit/component test outputs or coverage reports (legacy ledgers optional)
|
|
15
16
|
|
|
16
17
|
## Deliverables (MANDATORY)
|
|
17
18
|
|
|
18
19
|
- Decision Records referenced (DR-IDs) + rejected check (or RE-OPEN request)
|
|
19
|
-
- Scope
|
|
20
|
+
- Scope matrix with explicit inclusions/exclusions
|
|
20
21
|
- Review of test scope vs requirements/contracts
|
|
21
22
|
- Evidence summary for `.qfai/evidence/` (gitignored; do not commit)
|
|
22
23
|
|
|
@@ -38,7 +39,7 @@
|
|
|
38
39
|
|
|
39
40
|
- Decision Records (DR-IDs) / rejected check
|
|
40
41
|
- Findings
|
|
41
|
-
- Scope
|
|
42
|
+
- Scope matrix
|
|
42
43
|
- Exclusions rationale
|
|
43
44
|
- Evidence summary
|
|
44
45
|
- Open Questions / Risks
|
|
@@ -38,7 +38,7 @@ When unsure, read inputs in this order:
|
|
|
38
38
|
- P1: `.qfai/assistant/instructions/*`
|
|
39
39
|
- P2: `.qfai/assistant/steering/*`
|
|
40
40
|
- P3: `.qfai/specs/<spec-id>/delta.md` (Decision Records; if no spec yet, state "not applicable")
|
|
41
|
-
- P4: other artifacts (spec.md, scenario.feature
|
|
41
|
+
- P4: other artifacts (spec.md, contracts, evidence, optional legacy `scenario.feature` / coverage ledgers)
|
|
42
42
|
|
|
43
43
|
## Sub-agent Delegation (MANDATORY)
|
|
44
44
|
|
|
@@ -85,7 +85,8 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
|
|
|
85
85
|
- Final completion gate MUST be delegated to an independent Reviewer sub-agent.
|
|
86
86
|
- Reviewer checks (minimum):
|
|
87
87
|
- Required roles were delegated (no orchestrator self-authoring).
|
|
88
|
-
- DoD satisfied (
|
|
88
|
+
- DoD satisfied (validate gate, test-layer hard gate, evidence, DR-IDs).
|
|
89
|
+
- Validate gate evidence exists: `qfai validate --fail-on error` completed with `error=0`.
|
|
89
90
|
- **Drift Protocol enforced**:
|
|
90
91
|
- No upstream artifact edits were made without an explicit user-approved Change Request.
|
|
91
92
|
- If upstream changes exist, the correct owner skill was re-run after approval; downstream did not patch upstream directly.
|
|
@@ -105,7 +106,8 @@ Inputs (refs):
|
|
|
105
106
|
Constraints:
|
|
106
107
|
- must: enforce Drift Protocol (no upstream edits without user approval + CR)
|
|
107
108
|
- must: verify plan/test-layer adherence (`steering/test-layers.md` + plan)
|
|
108
|
-
- must: check
|
|
109
|
+
- must: check `qfai validate --fail-on error` passes with evidence (`error=0`)
|
|
110
|
+
- must: enforce `.qfai/assistant/steering/test-layers.md` hard gates
|
|
109
111
|
- must_not: accept test-volume ratios/floors as a hard gate
|
|
110
112
|
- must_not: accept upstream edits made directly by downstream phase
|
|
111
113
|
Output format:
|
|
@@ -45,7 +45,7 @@ When unsure, read inputs in this order:
|
|
|
45
45
|
- P1: `.qfai/assistant/instructions/*`
|
|
46
46
|
- P2: `.qfai/assistant/steering/*`
|
|
47
47
|
- P3: `.qfai/specs/<spec-id>/delta.md` (Decision Records; if no spec yet, state "not applicable")
|
|
48
|
-
- P4: other artifacts (spec.md, scenario.feature
|
|
48
|
+
- P4: other artifacts (spec.md, contracts, evidence, optional legacy `scenario.feature` / coverage ledgers)
|
|
49
49
|
|
|
50
50
|
## Sub-agent Delegation (MANDATORY)
|
|
51
51
|
|
|
@@ -92,7 +92,8 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
|
|
|
92
92
|
- Final completion gate MUST be delegated to an independent Reviewer sub-agent.
|
|
93
93
|
- Reviewer checks (minimum):
|
|
94
94
|
- Required roles were delegated (no orchestrator self-authoring).
|
|
95
|
-
- DoD satisfied (
|
|
95
|
+
- DoD satisfied (validate gate, test-layer hard gate, evidence, DR-IDs).
|
|
96
|
+
- Validate gate evidence exists: `qfai validate --fail-on error` completed with `error=0`.
|
|
96
97
|
- **Drift Protocol enforced**:
|
|
97
98
|
- No upstream artifact edits were made without an explicit user-approved Change Request.
|
|
98
99
|
- If upstream changes exist, the correct owner skill was re-run after approval; downstream did not patch upstream directly.
|
|
@@ -112,7 +113,8 @@ Inputs (refs):
|
|
|
112
113
|
Constraints:
|
|
113
114
|
- must: enforce Drift Protocol (no upstream edits without user approval + CR)
|
|
114
115
|
- must: verify plan/test-layer adherence (`steering/test-layers.md` + plan)
|
|
115
|
-
- must: check
|
|
116
|
+
- must: check `qfai validate --fail-on error` passes with evidence (`error=0`)
|
|
117
|
+
- must: enforce `.qfai/assistant/steering/test-layers.md` hard gates
|
|
116
118
|
- must_not: accept test-volume ratios/floors as a hard gate
|
|
117
119
|
- must_not: accept upstream edits made directly by downstream phase
|
|
118
120
|
Output format:
|
|
@@ -222,7 +224,7 @@ Build a minimal runnable vertical slice from contracts so the app boots and user
|
|
|
222
224
|
- `.qfai/contracts/api/*.yaml` (OpenAPI)
|
|
223
225
|
- `.qfai/contracts/db/*.sql` (schema constraints)
|
|
224
226
|
- `.qfai/specs/<spec-id>/spec.md` + `delta.md` (scope + decisions)
|
|
225
|
-
- `.qfai/specs/<spec-id>/scenario.feature` (for “what users do
|
|
227
|
+
- `.qfai/specs/<spec-id>/scenario.feature` (optional legacy input for “what users do”; do NOT implement tests here)
|
|
226
228
|
|
|
227
229
|
## Output boundaries
|
|
228
230
|
|
|
@@ -97,7 +97,7 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
|
|
|
97
97
|
- Final completion gate MUST be delegated to an independent Reviewer sub-agent.
|
|
98
98
|
- Reviewer checks (minimum):
|
|
99
99
|
- Required roles were delegated (no orchestrator self-authoring).
|
|
100
|
-
- DoD satisfied (
|
|
100
|
+
- DoD satisfied (validate gate, test-layer hard gate, evidence, DR-IDs).
|
|
101
101
|
- Validate gate evidence exists and is fresh:
|
|
102
102
|
- `qfai validate --fail-on error --format github` completed with `error=0`.
|
|
103
103
|
- `.qfai/report/validate.log` and `.qfai/report/specs-coverage/spec-*.md` are present.
|
|
@@ -129,7 +129,8 @@ Inputs (refs):
|
|
|
129
129
|
Constraints:
|
|
130
130
|
- must: enforce Drift Protocol (no upstream edits without user approval + CR)
|
|
131
131
|
- must: verify plan/test-layer adherence (`steering/test-layers.md` + plan)
|
|
132
|
-
- must: check
|
|
132
|
+
- must: check `qfai validate --fail-on error` passes with evidence (`error=0`)
|
|
133
|
+
- must: enforce `.qfai/assistant/steering/test-layers.md` hard gates
|
|
133
134
|
- must_not: accept test-volume ratios/floors as a hard gate
|
|
134
135
|
- must_not: accept upstream edits made directly by downstream phase
|
|
135
136
|
Output format:
|
|
@@ -38,7 +38,7 @@ When unsure, read inputs in this order:
|
|
|
38
38
|
- P1: `.qfai/assistant/instructions/*`
|
|
39
39
|
- P2: `.qfai/assistant/steering/*`
|
|
40
40
|
- P3: `.qfai/specs/<spec-id>/delta.md` (Decision Records; if no spec yet, state "not applicable")
|
|
41
|
-
- P4: other artifacts (spec.md, scenario.feature
|
|
41
|
+
- P4: other artifacts (spec.md, contracts, evidence, optional legacy `scenario.feature` / coverage ledgers)
|
|
42
42
|
|
|
43
43
|
## Sub-agent Delegation (MANDATORY)
|
|
44
44
|
|
|
@@ -85,7 +85,8 @@ Every major artifact in this stage MUST include a `## Work Orders Summary` secti
|
|
|
85
85
|
- Final completion gate MUST be delegated to an independent Reviewer sub-agent.
|
|
86
86
|
- Reviewer checks (minimum):
|
|
87
87
|
- Required roles were delegated (no orchestrator self-authoring).
|
|
88
|
-
- DoD satisfied (
|
|
88
|
+
- DoD satisfied (validate gate, test-layer hard gate, evidence, DR-IDs).
|
|
89
|
+
- Validate gate evidence exists: `qfai validate --fail-on error` completed with `error=0`.
|
|
89
90
|
- **Drift Protocol enforced**:
|
|
90
91
|
- No upstream artifact edits were made without an explicit user-approved Change Request.
|
|
91
92
|
- If upstream changes exist, the correct owner skill was re-run after approval; downstream did not patch upstream directly.
|
|
@@ -105,7 +106,8 @@ Inputs (refs):
|
|
|
105
106
|
Constraints:
|
|
106
107
|
- must: enforce Drift Protocol (no upstream edits without user approval + CR)
|
|
107
108
|
- must: verify plan/test-layer adherence (`steering/test-layers.md` + plan)
|
|
108
|
-
- must: check
|
|
109
|
+
- must: check `qfai validate --fail-on error` passes with evidence (`error=0`)
|
|
110
|
+
- must: enforce `.qfai/assistant/steering/test-layers.md` hard gates
|
|
109
111
|
- must_not: accept test-volume ratios/floors as a hard gate
|
|
110
112
|
- must_not: accept upstream edits made directly by downstream phase
|
|
111
113
|
Output format:
|
package/dist/cli/index.cjs
CHANGED
|
@@ -1589,8 +1589,8 @@ var import_promises7 = require("fs/promises");
|
|
|
1589
1589
|
var import_node_path8 = __toESM(require("path"), 1);
|
|
1590
1590
|
var import_node_url2 = require("url");
|
|
1591
1591
|
async function resolveToolVersion() {
|
|
1592
|
-
if ("1.4.
|
|
1593
|
-
return "1.4.
|
|
1592
|
+
if ("1.4.28".length > 0) {
|
|
1593
|
+
return "1.4.28";
|
|
1594
1594
|
}
|
|
1595
1595
|
try {
|
|
1596
1596
|
const packagePath = resolvePackageJsonPath();
|
|
@@ -8549,7 +8549,7 @@ async function validateDiscussPack(root) {
|
|
|
8549
8549
|
issues.push(
|
|
8550
8550
|
issue(
|
|
8551
8551
|
"QFAI-DISCUSS-028",
|
|
8552
|
-
`legacy discuss pack \u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.
|
|
8552
|
+
`legacy discuss pack \u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.28 \u306F warning\uFF09: ${legacyPacks.join(", ")}`,
|
|
8553
8553
|
"warning",
|
|
8554
8554
|
discussRoot,
|
|
8555
8555
|
"discussPack.legacy",
|
|
@@ -10670,7 +10670,7 @@ async function validateRequirePackReadiness(root, config) {
|
|
|
10670
10670
|
issues.push(
|
|
10671
10671
|
issue(
|
|
10672
10672
|
"QFAI-RPACK-006",
|
|
10673
|
-
`legacy require-pack \u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.
|
|
10673
|
+
`legacy require-pack \u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.28 \u306F warning\uFF09: ${readiness.legacyPackNames.join(", ")}`,
|
|
10674
10674
|
"warning",
|
|
10675
10675
|
requireRoot,
|
|
10676
10676
|
"requirePack.legacy",
|
|
@@ -10775,7 +10775,7 @@ async function validateRepositoryHygiene(root, config) {
|
|
|
10775
10775
|
issues.push(
|
|
10776
10776
|
issue(
|
|
10777
10777
|
"QFAI-HYG-001",
|
|
10778
|
-
`legacy \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.
|
|
10778
|
+
`legacy \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.28 \u306F warning\uFF09: .qfai/${rule.legacy}/`,
|
|
10779
10779
|
"warning",
|
|
10780
10780
|
legacyPath,
|
|
10781
10781
|
"hygiene.legacyDirectory",
|
|
@@ -10790,7 +10790,7 @@ async function validateRepositoryHygiene(root, config) {
|
|
|
10790
10790
|
issues.push(
|
|
10791
10791
|
issue(
|
|
10792
10792
|
"QFAI-HYG-002",
|
|
10793
|
-
`specs \u914D\u4E0B\u306B\u30C6\u30F3\u30D7\u30EC\u6DF7\u5165\u7591\u3044\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.
|
|
10793
|
+
`specs \u914D\u4E0B\u306B\u30C6\u30F3\u30D7\u30EC\u6DF7\u5165\u7591\u3044\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\uFF08v1.4.28 \u306F warning\uFF09: ${suspiciousPaths.join(", ")}`,
|
|
10794
10794
|
"warning",
|
|
10795
10795
|
specsRoot,
|
|
10796
10796
|
"hygiene.templateContamination",
|
|
@@ -13210,13 +13210,13 @@ var ISSUE_EXPECTED_BY_CODE = {
|
|
|
13210
13210
|
"QFAI-RPACK-003": "The latest require-pack files contain minimum substantive content.",
|
|
13211
13211
|
"QFAI-RPACK-004": "No blocking OQ remains in 08_OQ.md (Disposition=open with Gate discuss|require|sdd).",
|
|
13212
13212
|
"QFAI-RPACK-005": "require-* naming must be timestamp format only (dangerous names are forbidden).",
|
|
13213
|
-
"QFAI-RPACK-006": "Legacy require-* serial packs are migration warnings in v1.4.
|
|
13213
|
+
"QFAI-RPACK-006": "Legacy require-* serial packs are migration warnings in v1.4.28.",
|
|
13214
13214
|
"QFAI-DISCUSS-023": "Discuss directory naming uses discuss-YYYYMMDDhhmmssSSS for new outputs.",
|
|
13215
13215
|
"QFAI-DISCUSS-024": "Latest discuss pack contains required files (01_Context.md..09_delta.md).",
|
|
13216
13216
|
"QFAI-DISCUSS-025": "No open OQ remains in latest discuss 05_OQ-Register.md.",
|
|
13217
13217
|
"QFAI-DISCUSS-026": "Deferred rows include complete metadata in 07_Deferred.md.",
|
|
13218
13218
|
"QFAI-DISCUSS-027": "Every deferred OQ in 05_OQ-Register.md is listed in 07_Deferred.md.",
|
|
13219
|
-
"QFAI-DISCUSS-028": "Legacy discuss serial packs are migration warnings in v1.4.
|
|
13219
|
+
"QFAI-DISCUSS-028": "Legacy discuss serial packs are migration warnings in v1.4.28.",
|
|
13220
13220
|
"QFAI-COV-201": "Every AC must be referenced by at least one TC (`AC-Refs`).",
|
|
13221
13221
|
"QFAI-COV-202": "Every BR must be referenced by at least one EX (`BR-Ref`).",
|
|
13222
13222
|
"QFAI-COV-203": "Every EX must be referenced by at least one TC (`EX-Ref`).",
|
|
@@ -13241,7 +13241,7 @@ var ISSUE_EXPECTED_BY_CODE = {
|
|
|
13241
13241
|
"QFAI-REVIEW-004": "Each review pack contains `summary.json`.",
|
|
13242
13242
|
"QFAI-REVIEW-005": "Each review pack contains one or more reviewer files (`Rxx_*.md`).",
|
|
13243
13243
|
"QFAI-REVIEW-006": "Each review summary JSON is parseable.",
|
|
13244
|
-
"QFAI-REVIEW-007": "Each review summary satisfies the v1.4.
|
|
13244
|
+
"QFAI-REVIEW-007": "Each review summary satisfies the v1.4.28 minimum schema.",
|
|
13245
13245
|
"QFAI-CONTRACT-030": "Contract index references must match declared contract IDs in .qfai/contracts/**."
|
|
13246
13246
|
};
|
|
13247
13247
|
function resolveIssueTarget(issue2) {
|