qfai 1.5.4 → 1.5.5
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 +5 -1
- package/assets/init/.qfai/assistant/skills/qfai-atdd/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-configure/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-discussion/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-prototyping/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-sdd/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-tdd-green/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-tdd-red/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-tdd-refactor/SKILL.md +11 -0
- package/assets/init/.qfai/assistant/skills/qfai-verify/SKILL.md +11 -0
- package/dist/cli/index.cjs +2 -2
- package/dist/cli/index.mjs +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -17,6 +17,10 @@ The agent reads the repository, produces the required artifacts, and iterates un
|
|
|
17
17
|
|
|
18
18
|
## Quick start
|
|
19
19
|
|
|
20
|
+
> **Windows users:** `qfai init` creates symlinks internally.
|
|
21
|
+
> You must enable **Developer Mode** (Settings → System → For developers → Developer Mode: ON)
|
|
22
|
+
> before running `npx qfai init`, otherwise symlink creation will fail due to insufficient privileges.
|
|
23
|
+
|
|
20
24
|
```bash
|
|
21
25
|
# 1) Initialize QFAI assets in your repository
|
|
22
26
|
npx qfai init
|
|
@@ -246,7 +250,7 @@ flowchart LR
|
|
|
246
250
|
- Contracts SSOT: `.qfai/contracts/**`
|
|
247
251
|
- Report outputs (`.qfai/report/**`) are derived artifacts and not SSOT.
|
|
248
252
|
|
|
249
|
-
## Minimal tutorial (v1.5.
|
|
253
|
+
## Minimal tutorial (v1.5.5)
|
|
250
254
|
|
|
251
255
|
1. `npx qfai init`
|
|
252
256
|
2. Run `/qfai-discussion` to structure scope, open questions, and produce a discussion pack under `.qfai/discussion/discussion-<ts>/`.
|
|
@@ -31,6 +31,17 @@ QFAI Skill Body (SSOT)
|
|
|
31
31
|
|
|
32
32
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
33
33
|
|
|
34
|
+
## User Questions (AskUserQuestion Protocol)
|
|
35
|
+
|
|
36
|
+
- When a question to the user is needed (e.g., test scope decisions, runtime environment confirmation),
|
|
37
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
38
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
39
|
+
the agent MUST prefer structured choices over free-text input.
|
|
40
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
41
|
+
with explicit numbered choices.
|
|
42
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
43
|
+
The reason for unavailability MUST be stated.
|
|
44
|
+
|
|
34
45
|
## FORMAT SSOT (Mandatory)
|
|
35
46
|
|
|
36
47
|
- Before writing or editing any `.qfai/**` artifact, read and follow the relevant directory README template and sample.
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., configuration decisions, glob pattern confirmation),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## FORMAT SSOT (Mandatory)
|
|
22
33
|
|
|
23
34
|
- **Before writing or editing any `.qfai/**` artifact\*\*, read and follow the relevant directory README template and sample:
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., Simulation mode approval, scope confirmation),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## FORMAT SSOT (Mandatory)
|
|
22
33
|
|
|
23
34
|
- Before writing artifacts, read and follow:
|
|
@@ -29,6 +29,17 @@ QFAI Skill Body (SSOT)
|
|
|
29
29
|
|
|
30
30
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
31
31
|
|
|
32
|
+
## User Questions (AskUserQuestion Protocol)
|
|
33
|
+
|
|
34
|
+
- When a question to the user is needed (e.g., implementation scope decisions, runtime environment confirmation),
|
|
35
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
36
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
37
|
+
the agent MUST prefer structured choices over free-text input.
|
|
38
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
39
|
+
with explicit numbered choices.
|
|
40
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
41
|
+
The reason for unavailability MUST be stated.
|
|
42
|
+
|
|
32
43
|
Run prototyping as an **all-spec stage**. Scope is fixed to **ALL specs** resolved from `.qfai/specs/spec-*`.
|
|
33
44
|
|
|
34
45
|
This stage is complete only when all specs pass the minimum runtime contract:
|
|
@@ -28,6 +28,17 @@ QFAI Skill Body (SSOT)
|
|
|
28
28
|
|
|
29
29
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
30
30
|
|
|
31
|
+
## User Questions (AskUserQuestion Protocol)
|
|
32
|
+
|
|
33
|
+
- When a question to the user is needed (e.g., OQ resolution, NFR priority decisions),
|
|
34
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
35
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
36
|
+
the agent MUST prefer structured choices over free-text input.
|
|
37
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
38
|
+
with explicit numbered choices.
|
|
39
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
40
|
+
The reason for unavailability MUST be stated.
|
|
41
|
+
|
|
31
42
|
## FORMAT SSOT (Mandatory)
|
|
32
43
|
|
|
33
44
|
- Before writing or editing any `.qfai/**` artifact, read and follow:
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., Simulation mode approval),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## Deprecation Notice (MUST)
|
|
22
33
|
|
|
23
34
|
- This command is deprecated.
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., Simulation mode approval),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## Deprecation Notice (MUST)
|
|
22
33
|
|
|
23
34
|
- This command is deprecated.
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., Simulation mode approval),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## Deprecation Notice (MUST)
|
|
22
33
|
|
|
23
34
|
- This command is deprecated.
|
|
@@ -18,6 +18,17 @@ QFAI Skill Body (SSOT)
|
|
|
18
18
|
|
|
19
19
|
[DRIFT-PROTOCOL:MANDATORY]
|
|
20
20
|
|
|
21
|
+
## User Questions (AskUserQuestion Protocol)
|
|
22
|
+
|
|
23
|
+
- When a question to the user is needed (e.g., gate failure triage, fix approach confirmation),
|
|
24
|
+
the agent MUST use AskUserQuestion if the tool is available.
|
|
25
|
+
- When AskUserQuestion supports structured choices (radio/multi-select),
|
|
26
|
+
the agent MUST prefer structured choices over free-text input.
|
|
27
|
+
- If AskUserQuestion is technically unavailable, present the same question as a normal message
|
|
28
|
+
with explicit numbered choices.
|
|
29
|
+
The agent SHOULD preserve structured choice semantics (enumerated options, selection constraints).
|
|
30
|
+
The reason for unavailability MUST be stated.
|
|
31
|
+
|
|
21
32
|
## FORMAT SSOT (Mandatory)
|
|
22
33
|
|
|
23
34
|
- **Before writing or editing any `.qfai/**` artifact\*\*, read and follow the relevant directory README template and sample:
|
package/dist/cli/index.cjs
CHANGED
|
@@ -1483,8 +1483,8 @@ var import_promises7 = require("fs/promises");
|
|
|
1483
1483
|
var import_node_path8 = __toESM(require("path"), 1);
|
|
1484
1484
|
var import_node_url2 = require("url");
|
|
1485
1485
|
async function resolveToolVersion() {
|
|
1486
|
-
if ("1.5.
|
|
1487
|
-
return "1.5.
|
|
1486
|
+
if ("1.5.5".length > 0) {
|
|
1487
|
+
return "1.5.5";
|
|
1488
1488
|
}
|
|
1489
1489
|
try {
|
|
1490
1490
|
const packagePath = resolvePackageJsonPath();
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1460,8 +1460,8 @@ import { readFile as readFile5 } from "fs/promises";
|
|
|
1460
1460
|
import path8 from "path";
|
|
1461
1461
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
1462
1462
|
async function resolveToolVersion() {
|
|
1463
|
-
if ("1.5.
|
|
1464
|
-
return "1.5.
|
|
1463
|
+
if ("1.5.5".length > 0) {
|
|
1464
|
+
return "1.5.5";
|
|
1465
1465
|
}
|
|
1466
1466
|
try {
|
|
1467
1467
|
const packagePath = resolvePackageJsonPath();
|
package/dist/index.cjs
CHANGED
|
@@ -3970,8 +3970,8 @@ var import_promises14 = require("fs/promises");
|
|
|
3970
3970
|
var import_node_path14 = __toESM(require("path"), 1);
|
|
3971
3971
|
var import_node_url = require("url");
|
|
3972
3972
|
async function resolveToolVersion() {
|
|
3973
|
-
if ("1.5.
|
|
3974
|
-
return "1.5.
|
|
3973
|
+
if ("1.5.5".length > 0) {
|
|
3974
|
+
return "1.5.5";
|
|
3975
3975
|
}
|
|
3976
3976
|
try {
|
|
3977
3977
|
const packagePath = resolvePackageJsonPath();
|
package/dist/index.mjs
CHANGED
|
@@ -3889,8 +3889,8 @@ import { readFile as readFile11 } from "fs/promises";
|
|
|
3889
3889
|
import path14 from "path";
|
|
3890
3890
|
import { fileURLToPath } from "url";
|
|
3891
3891
|
async function resolveToolVersion() {
|
|
3892
|
-
if ("1.5.
|
|
3893
|
-
return "1.5.
|
|
3892
|
+
if ("1.5.5".length > 0) {
|
|
3893
|
+
return "1.5.5";
|
|
3894
3894
|
}
|
|
3895
3895
|
try {
|
|
3896
3896
|
const packagePath = resolvePackageJsonPath();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qfai",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.5",
|
|
4
4
|
"description": "Quality-first AI-driven development toolkit (SDD × ATDD × TDD).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/jsdom": "^21.1.7",
|
|
52
52
|
"@types/node": "^18.19.41",
|
|
53
|
+
"qfai": "^1.5.4",
|
|
53
54
|
"tsup": "^8.3.5",
|
|
54
55
|
"typescript": "^5.6.3",
|
|
55
56
|
"vitest": "^2.1.8"
|