qfai 1.0.5 → 1.0.7
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 +274 -250
- package/assets/init/.qfai/README.md +4 -3
- package/assets/init/.qfai/assistant/agents/README.md +2 -0
- package/assets/init/.qfai/assistant/agents/contract-designer.md +1 -1
- package/assets/init/.qfai/assistant/instructions/README.md +5 -1
- package/assets/init/.qfai/assistant/instructions/agent-selection.md +28 -0
- package/assets/init/.qfai/assistant/instructions/communication.md +27 -0
- package/assets/init/.qfai/assistant/instructions/quality.md +27 -0
- package/assets/init/.qfai/assistant/instructions/thinking.md +29 -0
- package/assets/init/.qfai/assistant/prompts/README.md +1 -1
- package/assets/init/.qfai/assistant/prompts/qfai-configure.md +174 -0
- package/assets/init/.qfai/assistant/prompts/qfai-implement.md +0 -9
- package/assets/init/.qfai/assistant/prompts/qfai-pr.md +0 -9
- package/assets/init/.qfai/assistant/prompts/qfai-require.md +0 -9
- package/assets/init/.qfai/assistant/prompts/qfai-scenario-test.md +0 -9
- package/assets/init/.qfai/assistant/prompts/qfai-spec.md +14 -10
- package/assets/init/.qfai/assistant/prompts/qfai-unit-test.md +0 -9
- package/assets/init/.qfai/assistant/prompts/qfai-verify.md +0 -9
- package/assets/init/.qfai/assistant/prompts.local/README.md +2 -0
- package/assets/init/.qfai/assistant/steering/README.md +7 -0
- package/assets/init/.qfai/contracts/README.md +1 -1
- package/assets/init/.qfai/contracts/db/README.md +21 -4
- package/assets/init/.qfai/specs/README.md +2 -0
- package/assets/init/root/.claude/commands/qfai-configure.md +14 -0
- package/assets/init/root/.claude/commands/qfai-discuss.md +14 -0
- package/assets/init/root/.claude/commands/qfai-implement.md +14 -0
- package/assets/init/root/.claude/commands/qfai-require.md +14 -0
- package/assets/init/root/.claude/commands/qfai-scenario-test.md +14 -0
- package/assets/init/root/.claude/commands/qfai-spec.md +14 -0
- package/assets/init/root/.claude/commands/qfai-unit-test.md +14 -0
- package/assets/init/root/.claude/commands/qfai-verify.md +14 -0
- package/assets/init/root/.codex/README.md +16 -0
- package/assets/init/root/.codex/skills/qfai-configure/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-discuss/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-implement/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-require/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-scenario-test/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-spec/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-unit-test/SKILL.md +18 -0
- package/assets/init/root/.codex/skills/qfai-verify/SKILL.md +18 -0
- package/assets/init/root/.github/copilot-instructions.md +14 -0
- package/assets/init/root/.github/prompts/qfai-configure.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-discuss.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-implement.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-require.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-scenario-test.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-spec.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-unit-test.prompt.md +17 -0
- package/assets/init/root/.github/prompts/qfai-verify.prompt.md +17 -0
- package/dist/cli/index.cjs +10 -4
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +10 -4
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
- package/assets/init/root/tests/qfai-traceability.sample.test.ts +0 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qfai-require
|
|
3
|
+
description: QFAI: Create requirements artifacts
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This skill is a thin wrapper that forwards to the canonical QFAI prompt in this repository:
|
|
7
|
+
|
|
8
|
+
- .qfai/assistant/prompts/qfai-require.md
|
|
9
|
+
|
|
10
|
+
How to invoke (Codex CLI):
|
|
11
|
+
|
|
12
|
+
- Select the `qfai-require` skill, or reference it by name and provide your request.
|
|
13
|
+
|
|
14
|
+
Instructions:
|
|
15
|
+
|
|
16
|
+
1. Read the prompt above and follow it precisely.
|
|
17
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
18
|
+
3. Ensure all outputs match the user's language.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qfai-scenario-test
|
|
3
|
+
description: QFAI: Implement acceptance tests from scenarios
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This skill is a thin wrapper that forwards to the canonical QFAI prompt in this repository:
|
|
7
|
+
|
|
8
|
+
- .qfai/assistant/prompts/qfai-scenario-test.md
|
|
9
|
+
|
|
10
|
+
How to invoke (Codex CLI):
|
|
11
|
+
|
|
12
|
+
- Select the `qfai-scenario-test` skill, or reference it by name and provide your request.
|
|
13
|
+
|
|
14
|
+
Instructions:
|
|
15
|
+
|
|
16
|
+
1. Read the prompt above and follow it precisely.
|
|
17
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
18
|
+
3. Ensure all outputs match the user's language.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qfai-spec
|
|
3
|
+
description: QFAI: Create specs, contracts, and scenarios
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This skill is a thin wrapper that forwards to the canonical QFAI prompt in this repository:
|
|
7
|
+
|
|
8
|
+
- .qfai/assistant/prompts/qfai-spec.md
|
|
9
|
+
|
|
10
|
+
How to invoke (Codex CLI):
|
|
11
|
+
|
|
12
|
+
- Select the `qfai-spec` skill, or reference it by name and provide your request.
|
|
13
|
+
|
|
14
|
+
Instructions:
|
|
15
|
+
|
|
16
|
+
1. Read the prompt above and follow it precisely.
|
|
17
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
18
|
+
3. Ensure all outputs match the user's language.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qfai-unit-test
|
|
3
|
+
description: QFAI: Implement unit tests from specs/scenarios
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This skill is a thin wrapper that forwards to the canonical QFAI prompt in this repository:
|
|
7
|
+
|
|
8
|
+
- .qfai/assistant/prompts/qfai-unit-test.md
|
|
9
|
+
|
|
10
|
+
How to invoke (Codex CLI):
|
|
11
|
+
|
|
12
|
+
- Select the `qfai-unit-test` skill, or reference it by name and provide your request.
|
|
13
|
+
|
|
14
|
+
Instructions:
|
|
15
|
+
|
|
16
|
+
1. Read the prompt above and follow it precisely.
|
|
17
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
18
|
+
3. Ensure all outputs match the user's language.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qfai-verify
|
|
3
|
+
description: QFAI: Run quality gates and produce evidence
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
This skill is a thin wrapper that forwards to the canonical QFAI prompt in this repository:
|
|
7
|
+
|
|
8
|
+
- .qfai/assistant/prompts/qfai-verify.md
|
|
9
|
+
|
|
10
|
+
How to invoke (Codex CLI):
|
|
11
|
+
|
|
12
|
+
- Select the `qfai-verify` skill, or reference it by name and provide your request.
|
|
13
|
+
|
|
14
|
+
Instructions:
|
|
15
|
+
|
|
16
|
+
1. Read the prompt above and follow it precisely.
|
|
17
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
18
|
+
3. Ensure all outputs match the user's language.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# QFAI repository instructions (Copilot)
|
|
2
|
+
|
|
3
|
+
This repository uses QFAI (Quality-First AI) to improve the quality and consistency of AI-assisted development.
|
|
4
|
+
|
|
5
|
+
## Golden rules
|
|
6
|
+
|
|
7
|
+
- Always match the user’s language in your outputs.
|
|
8
|
+
- Treat `.qfai/` as the canonical source of truth for the QFAI workflow:
|
|
9
|
+
- Prompts: `.qfai/assistant/prompts/`
|
|
10
|
+
- Instructions: `.qfai/assistant/instructions/`
|
|
11
|
+
- Project steering: `.qfai/assistant/steering/`
|
|
12
|
+
- When asked to perform QFAI workflow tasks, prefer using the QFAI prompt wrappers in `.github/prompts/` (e.g., `/qfai-spec`) which forward to the canonical prompts.
|
|
13
|
+
- Do not invent repository structure, tools, or frameworks. Inspect the repo first and align with what is already used.
|
|
14
|
+
- Keep changes minimal and targeted. Update tests and docs when behavior changes.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Configure qfai.config.yaml based on the repository"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-configure.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Discuss an idea and clarify requirements"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-discuss.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Implement code changes with tests"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-implement.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Create requirements artifacts"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-require.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Implement acceptance tests from scenarios"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-scenario-test.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Create specs, contracts, and scenarios"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-spec.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Implement unit tests from specs/scenarios"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-unit-test.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
agent: "agent"
|
|
3
|
+
description: "QFAI: Run quality gates and produce evidence"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are operating in a repository that uses QFAI.
|
|
7
|
+
|
|
8
|
+
1. Open and follow the canonical QFAI prompt:
|
|
9
|
+
|
|
10
|
+
- .qfai/assistant/prompts/qfai-verify.md
|
|
11
|
+
|
|
12
|
+
2. Use the repository as the source of truth (tools, frameworks, directory structure).
|
|
13
|
+
3. Ask the user for missing inputs only when necessary.
|
|
14
|
+
4. Do not modify files not required by the canonical prompt.
|
|
15
|
+
5. All outputs must match the user's language.
|
|
16
|
+
|
|
17
|
+
User notes: ${input:notes:Optional}
|
package/dist/cli/index.cjs
CHANGED
|
@@ -1075,8 +1075,8 @@ var import_promises7 = require("fs/promises");
|
|
|
1075
1075
|
var import_node_path9 = __toESM(require("path"), 1);
|
|
1076
1076
|
var import_node_url2 = require("url");
|
|
1077
1077
|
async function resolveToolVersion() {
|
|
1078
|
-
if ("1.0.
|
|
1079
|
-
return "1.0.
|
|
1078
|
+
if ("1.0.7".length > 0) {
|
|
1079
|
+
return "1.0.7";
|
|
1080
1080
|
}
|
|
1081
1081
|
try {
|
|
1082
1082
|
const packagePath = resolvePackageJsonPath();
|
|
@@ -1658,16 +1658,22 @@ async function runInit(options) {
|
|
|
1658
1658
|
[...rootResult.copied, ...qfaiResult.copied, ...promptsResult.copied],
|
|
1659
1659
|
[...rootResult.skipped, ...qfaiResult.skipped, ...promptsResult.skipped],
|
|
1660
1660
|
options.dryRun,
|
|
1661
|
-
"init"
|
|
1661
|
+
"init",
|
|
1662
|
+
destRoot
|
|
1662
1663
|
);
|
|
1663
1664
|
}
|
|
1664
|
-
function report(copied, skipped, dryRun, label) {
|
|
1665
|
+
function report(copied, skipped, dryRun, label, baseDir) {
|
|
1665
1666
|
info(`qfai ${label}: ${dryRun ? "dry-run" : "done"}`);
|
|
1666
1667
|
if (copied.length > 0) {
|
|
1667
1668
|
info(` created: ${copied.length}`);
|
|
1668
1669
|
}
|
|
1669
1670
|
if (skipped.length > 0) {
|
|
1670
1671
|
info(` skipped: ${skipped.length}`);
|
|
1672
|
+
info(" skipped paths:");
|
|
1673
|
+
for (const skippedPath of skipped) {
|
|
1674
|
+
const relative = import_node_path13.default.relative(baseDir, skippedPath);
|
|
1675
|
+
info(` - ${relative}`);
|
|
1676
|
+
}
|
|
1671
1677
|
}
|
|
1672
1678
|
}
|
|
1673
1679
|
|