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 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.4)
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:
@@ -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.4".length > 0) {
1487
- return "1.5.4";
1486
+ if ("1.5.5".length > 0) {
1487
+ return "1.5.5";
1488
1488
  }
1489
1489
  try {
1490
1490
  const packagePath = resolvePackageJsonPath();
@@ -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.4".length > 0) {
1464
- return "1.5.4";
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.4".length > 0) {
3974
- return "1.5.4";
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.4".length > 0) {
3893
- return "1.5.4";
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.4",
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"