qfai 1.0.6 → 1.1.0

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 (51) hide show
  1. package/README.md +327 -245
  2. package/assets/init/.qfai/README.md +2 -1
  3. package/assets/init/.qfai/assistant/README.md +1 -1
  4. package/assets/init/.qfai/assistant/prompts/README.md +1 -1
  5. package/assets/init/.qfai/assistant/prompts/qfai-configure.md +197 -0
  6. package/assets/init/.qfai/assistant/prompts/qfai-verify.md +1 -1
  7. package/assets/init/.qfai/assistant/steering/README.md +6 -0
  8. package/assets/init/.qfai/assistant/steering/manifest.md +43 -0
  9. package/assets/init/.qfai/contracts/db/README.md +10 -3
  10. package/assets/init/.qfai/samples/guardrails/delta_with_guardrails.md +19 -0
  11. package/assets/init/.qfai/specs/README.md +4 -0
  12. package/assets/init/root/.claude/commands/qfai-configure.md +14 -0
  13. package/assets/init/root/.claude/commands/qfai-discuss.md +14 -0
  14. package/assets/init/root/.claude/commands/qfai-implement.md +14 -0
  15. package/assets/init/root/.claude/commands/qfai-require.md +14 -0
  16. package/assets/init/root/.claude/commands/qfai-scenario-test.md +14 -0
  17. package/assets/init/root/.claude/commands/qfai-spec.md +14 -0
  18. package/assets/init/root/.claude/commands/qfai-unit-test.md +14 -0
  19. package/assets/init/root/.claude/commands/qfai-verify.md +14 -0
  20. package/assets/init/root/.codex/README.md +16 -0
  21. package/assets/init/root/.codex/skills/qfai-configure/SKILL.md +18 -0
  22. package/assets/init/root/.codex/skills/qfai-discuss/SKILL.md +18 -0
  23. package/assets/init/root/.codex/skills/qfai-implement/SKILL.md +18 -0
  24. package/assets/init/root/.codex/skills/qfai-require/SKILL.md +18 -0
  25. package/assets/init/root/.codex/skills/qfai-scenario-test/SKILL.md +18 -0
  26. package/assets/init/root/.codex/skills/qfai-spec/SKILL.md +18 -0
  27. package/assets/init/root/.codex/skills/qfai-unit-test/SKILL.md +18 -0
  28. package/assets/init/root/.codex/skills/qfai-verify/SKILL.md +18 -0
  29. package/assets/init/root/.github/copilot-instructions.md +14 -0
  30. package/assets/init/root/.github/prompts/qfai-configure.prompt.md +17 -0
  31. package/assets/init/root/.github/prompts/qfai-discuss.prompt.md +17 -0
  32. package/assets/init/root/.github/prompts/qfai-implement.prompt.md +17 -0
  33. package/assets/init/root/.github/prompts/qfai-require.prompt.md +17 -0
  34. package/assets/init/root/.github/prompts/qfai-scenario-test.prompt.md +17 -0
  35. package/assets/init/root/.github/prompts/qfai-spec.prompt.md +17 -0
  36. package/assets/init/root/.github/prompts/qfai-unit-test.prompt.md +17 -0
  37. package/assets/init/root/.github/prompts/qfai-verify.prompt.md +17 -0
  38. package/assets/init/root/.github/workflows/qfai.yml +0 -2
  39. package/assets/init/root/qfai.config.yaml +1 -8
  40. package/dist/cli/index.cjs +880 -196
  41. package/dist/cli/index.cjs.map +1 -1
  42. package/dist/cli/index.mjs +866 -182
  43. package/dist/cli/index.mjs.map +1 -1
  44. package/dist/index.cjs +731 -221
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +91 -1
  47. package/dist/index.d.ts +91 -1
  48. package/dist/index.mjs +719 -216
  49. package/dist/index.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/assets/init/.qfai/assistant/prompts/qfai-pr.md +0 -209
@@ -0,0 +1,197 @@
1
+ <!--
2
+ QFAI Prompt Body (SSOT)
3
+ - This file is intended to be referenced by tool-specific custom prompt definitions (e.g., Copilot .prompt.md, Claude Code slash commands).
4
+ - Keep tool-specific wrappers thin: "Read this file and follow it."
5
+ -->
6
+
7
+ ---
8
+
9
+ id: qfai-configure
10
+ title: QFAI Configure (Tune qfai.config.yaml)
11
+ description: "Analyze the repository and tune qfai.config.yaml (testFileGlobs, exclude globs, optional specSections)."
12
+ argument-hint: "[--auto]"
13
+ allowed-tools: [Read, Glob, Write, TodoWrite, Task]
14
+ roles: [DevOpsCIEngineer, QAEngineer, CodeReviewer, Planner]
15
+ mode: evidence-focused
16
+
17
+ ---
18
+
19
+ # /qfai-configure - Configure QFAI for this repository
20
+
21
+ ## Purpose
22
+
23
+ Analyze the repository and update `qfai.config.yaml` so QFAI traceability checks (especially SC->Test) are actionable without manual tuning, and optionally tune required spec sections if requested.
24
+
25
+ ## Success Criteria (Definition of Done)
26
+
27
+ - `qfai.config.yaml` is updated with a **minimal diff** focused on traceability globs.
28
+ - `validation.traceability.testFileGlobs` reflects the real test layout.
29
+ - `validation.traceability.testFileExcludeGlobs` is added only when needed.
30
+ - If strict spec sections are explicitly requested, `validation.require.specSections` is updated with a minimal, evidence-based list.
31
+ - A validation checklist with evidence (sample matched files) is produced.
32
+ - Steering files (`product.md`, `tech.md`, `structure.md`, `manifest.md`) are filled or refreshed with evidence, or marked `TBD` when evidence is missing.
33
+
34
+ ## Non-Negotiable Principles (QFAI Articles)
35
+
36
+ These principles are inspired by "constitution / articles" patterns used by other agent frameworks, but tailored to QFAI.
37
+
38
+ 1. **SDD First (Specification is the source of truth)**
39
+ If there is a conflict between code and spec, treat the spec as authoritative and either (a) fix code or (b) raise an explicit Open Question to change the spec.
40
+
41
+ 2. **Traceability is mandatory**
42
+ Every meaningful change must be traceable: **Require -> Spec -> Scenario -> Tests -> Code -> Verification evidence**.
43
+
44
+ 3. **Evidence over confidence**
45
+ Prefer observable proof (logs, commands, file diffs, test results). If you cannot verify, say so and record it.
46
+
47
+ 4. **Minimize scope, but never hide gaps**
48
+ Keep changes minimal, but do not "paper over" missing decisions. If something blocks correctness, stop and ask.
49
+
50
+ 5. **Quality gates are the decision mechanism**
51
+ Use tests/lint/typecheck/build/pack verification (whatever the repo defines) as the primary guardrail. Fix until PASS.
52
+
53
+ 6. **Make it runnable**
54
+ Outputs must be executable in terminal/CI. Provide copy-paste commands.
55
+
56
+ 7. **User time is expensive**
57
+ Ask only the questions that are truly blocking. Everything else: make reasonable assumptions and label them clearly.
58
+
59
+ ## Absolute Rule - Output Language
60
+
61
+ **All outputs MUST be written in the user's working language for this session.**
62
+
63
+ - If the user writes in Japanese, output Japanese.
64
+ - If the user writes in English, output English.
65
+ - If the user mixes languages, prefer the dominant language unless explicitly instructed otherwise.
66
+ This rule overrides all other stylistic preferences.
67
+
68
+ ## Multi-Role Orchestration (Subagents)
69
+
70
+ This workflow assumes the environment _may_ support subagents (e.g., Claude Code "Task" tool) or may not.
71
+
72
+ ### If subagents are supported
73
+
74
+ Delegate to multiple roles and then merge the results. Use a "real-world workflow" order:
75
+
76
+ - Facilitator -> Interviewer -> Requirements Analyst -> Planner -> Architect -> (Contract Designer) -> Test Engineer -> QA Engineer -> Code Reviewer -> DevOps/CI Engineer
77
+
78
+ **Pseudo-invocation pattern** (adjust to your tool):
79
+
80
+ ```text
81
+ Task(
82
+ subagent_type="planner",
83
+ description="Analyze repo and propose testFileGlobs",
84
+ prompt="Context: ...\nGoal: Tune qfai.config.yaml\nConstraints: minimal diff\nReturn: globs + evidence"
85
+ )
86
+ ```
87
+
88
+ ### If subagents are NOT supported
89
+
90
+ Simulate roles by running the same sequence yourself:
91
+
92
+ - Write a short "role output" section per role, then consolidate into the final deliverable(s).
93
+
94
+ ## Constraints
95
+
96
+ - Only update `qfai.config.yaml` and `.qfai/assistant/steering/*` unless explicitly asked.
97
+ - Do **not** modify tests or source code.
98
+ - Avoid overly broad globs (e.g., `**/*`).
99
+ - Exclude generated/output directories (`node_modules`, `.git`, `.qfai`, `dist`, `build`, `coverage`, `.next`, `out`, etc.).
100
+ - Keep `validation.require.specSections` unchanged unless the user explicitly requests strict required headings.
101
+
102
+ ## Step 0 - Load Context (always)
103
+
104
+ 1. Read relevant **project steering** (if present):
105
+ - `.qfai/assistant/steering/structure.md`
106
+ - `.qfai/assistant/steering/tech.md`
107
+ - `.qfai/assistant/steering/product.md`
108
+ - any additional files under `.qfai/assistant/steering/`
109
+
110
+ 2. Read **project constitution / instructions** (if present):
111
+ - `.qfai/assistant/instructions/constitution.md`
112
+ - `.qfai/assistant/instructions/workflow.md` (or equivalent)
113
+
114
+ 3. Inspect repo conventions:
115
+ - package manager (pnpm/npm/yarn), test runner, lint/typecheck scripts, CI definitions
116
+ - existing test patterns (unit/integration/e2e)
117
+
118
+ 4. Inspect steering templates and placeholders:
119
+ - `.qfai/assistant/steering/product.md`
120
+ - `.qfai/assistant/steering/tech.md`
121
+ - `.qfai/assistant/steering/structure.md`
122
+ - `.qfai/assistant/steering/manifest.md`
123
+
124
+ ## Step 0 - Project Analysis (mandatory)
125
+
126
+ Before editing config, **thoroughly analyze the current project**:
127
+
128
+ - background and goals
129
+ - directory structure and conventions
130
+ - chosen technologies and versions (runtime, package manager, test runner)
131
+ - test locations (unit/integration/e2e)
132
+ - existing test naming rules (`*.test.*`, `*.spec.*`, `*_test.*`, etc.)
133
+
134
+ If analysis cannot be performed (missing access), clearly state what could not be verified and proceed with minimal-risk assumptions.
135
+
136
+ ## Step 1 - Identify test frameworks and locations
137
+
138
+ 1. Inspect `package.json` and config files (e.g., `vitest.config.*`, `jest.config.*`, `playwright.config.*`, `pytest.ini`, `go.mod`).
139
+ 2. Enumerate directories that contain tests (e.g., `tests/`, `src/`, `e2e/`, `integration/`).
140
+ 3. Note naming rules and extensions that indicate test files.
141
+ 4. If strict spec sections are requested, sample existing `spec.md` files and list H2 headings used.
142
+
143
+ ## Step 2 - Propose glob patterns
144
+
145
+ Provide 3-10 **include globs** that cover all known test locations:
146
+
147
+ - Prefer explicit patterns (e.g., `src/**/*.test.ts`, `tests/**/*.spec.ts`).
148
+ - Include src-colocated tests if they exist.
149
+
150
+ Provide **exclude globs** only when necessary (beyond the default exclusions).
151
+
152
+ ## Step 3 - Update steering (evidence-first)
153
+
154
+ Fill steering templates with repo evidence.
155
+
156
+ - Keep existing content when already accurate.
157
+ - When evidence is missing, write `TBD` and record what is missing.
158
+ - Do not invent facts.
159
+
160
+ ## Step 4 - Update `qfai.config.yaml` (minimal diff)
161
+
162
+ Edit:
163
+
164
+ - `validation.traceability.testFileGlobs`
165
+ - `validation.traceability.testFileExcludeGlobs` (only if needed)
166
+ - `validation.require.specSections` (only if explicitly requested)
167
+
168
+ Keep all other config keys unchanged.
169
+
170
+ ## Step 5 - Evidence sampling
171
+
172
+ Sample 5-15 actual test files that match the proposed globs.
173
+
174
+ - If zero matches exist, stop and ask for clarification.
175
+ - If some directories are ambiguous, list them as Open Questions.
176
+
177
+ ## Checkpoints
178
+
179
+ - [ ] Repository analysis completed (frameworks, test layout, naming rules).
180
+ - [ ] Steering files updated with evidence or `TBD`.
181
+ - [ ] Proposed include/exclude globs with rationale.
182
+ - [ ] `qfai.config.yaml` updated (minimal diff).
183
+ - [ ] Optional: specSections tuned when requested (or kept empty).
184
+ - [ ] Evidence: sample matched files listed.
185
+
186
+ ## Output
187
+
188
+ Provide:
189
+
190
+ 1. Updated `qfai.config.yaml` (diff or full file, as appropriate).
191
+ 2. Updated steering files (diff or summary).
192
+ 3. A short summary of changes and rationale.
193
+ 4. Validation checklist with sampled files.
194
+ 5. If specSections updated, list the chosen headings and evidence source.
195
+ 6. Open questions (blocking vs non-blocking).
196
+
197
+ Suggest next step: `/qfai-require` (or `/qfai-discuss` if requirements are not ready).
@@ -219,4 +219,4 @@ Output this format:
219
219
  ## Output
220
220
 
221
221
  - Evidence summary
222
- - Next action suggestion: /qfai-pr (optional) or proceed to PR creation
222
+ - Next action suggestion: proceed to PR creation (use your platform workflow)
@@ -7,9 +7,15 @@ These are intentionally short and practical:
7
7
  - `product.md` : what we are building and why
8
8
  - `tech.md` : stack, versions, constraints
9
9
  - `structure.md` : repo structure, key directories, how to run gates
10
+ - `manifest.md` : product-level decision spine and governance rubric
10
11
 
11
12
  QFAI prompts are expected to read these before producing deliverables.
12
13
 
14
+ Rule:
15
+
16
+ - Keep steering flat (no subdirectories).
17
+ - Markdown only.
18
+
13
19
  ## AI-managed policy (recommended)
14
20
 
15
21
  These steering files are intended to be **filled and refreshed by the AI** (via QFAI custom prompts).
@@ -0,0 +1,43 @@
1
+ # Manifest (Decision Spine)
2
+
3
+ ## Product / Mission
4
+
5
+ - Summary:
6
+ - Value:
7
+ - Evidence:
8
+
9
+ ## Drive / Lens / Axioms
10
+
11
+ - Axioms / principles:
12
+ - Decision lens (what we optimize for):
13
+ - Evidence:
14
+
15
+ ## Compatibility vs Change (Rubric)
16
+
17
+ - Compatibility:
18
+ - Change:
19
+ - Examples:
20
+ - Evidence:
21
+
22
+ ## Ownership / Governance
23
+
24
+ - Owner:
25
+ - Review / approval:
26
+ - Update cadence:
27
+ - Evidence:
28
+
29
+ ## Evidence
30
+
31
+ - Rule (e.g., link to repo evidence for every claim):
32
+ - Evidence:
33
+
34
+ ## Non-goals / Not-now (Optional)
35
+
36
+ -
37
+ - Evidence:
38
+
39
+ ## References (Optional)
40
+
41
+ - product.md
42
+ - tech.md
43
+ - structure.md
@@ -20,6 +20,13 @@ Include the contract ID in the SQL header comments so QFAI can discover/index it
20
20
 
21
21
  - Keep DB contracts minimal and spec-driven (only what scenarios/tests need).
22
22
  - This directory is for the **contract/schema snapshot**, not migrations history.
23
- - If your project uses an ORM schema (Prisma, etc.), decide one:
24
- - (Recommended for v1.0.6) Keep a minimal `.sql` contract snapshot here, and link to the real schema in the spec.
25
- - (Future) Add support for other schema formats via config (out of scope for v1.0.6).
23
+
24
+ If your project uses an ORM schema (Prisma, etc.), decide one:
25
+
26
+ ### Recommended
27
+
28
+ - Keep a minimal `.sql` contract snapshot here, and link to the real schema in the spec.
29
+
30
+ ### Out of scope
31
+
32
+ - Add support for other schema formats via config.
@@ -0,0 +1,19 @@
1
+ # SPEC-0001: Delta (Decision Guardrails Sample)
2
+
3
+ ## Decision Guardrails
4
+
5
+ - ID: DG-0001
6
+ Type: non-goal
7
+ Guardrail: Do not introduce per-language parsing rules into validators.
8
+ Rationale: Multi-language output is a core contract.
9
+ Reconsider: never
10
+ Related: SPEC-0001
11
+ Keywords: parsing, validators, multi-language
12
+
13
+ - ID: DG-0002
14
+ Type: not-now
15
+ Guardrail: Do not add automatic template upgrades for existing repositories.
16
+ Rationale: Update safety needs a dedicated upgrade design.
17
+ Reconsider: after upgrade design is approved
18
+ Related: V11-OQ-007
19
+ Keywords: upgrade, templates
@@ -8,4 +8,8 @@ A **spec pack** lives under `specs/spec-XXXX/` and contains:
8
8
 
9
9
  Create/update spec packs with `/qfai-spec`.
10
10
 
11
+ Decision Guardrails can be stored under `delta.md` as `## Decision Guardrails`. See `.qfai/samples/guardrails/delta_with_guardrails.md` for an opt-in example.
12
+
13
+ Manifest is maintained under `.qfai/assistant/steering/manifest.md` (product-level decision spine). Do not duplicate a manifest under specs.
14
+
11
15
  Note: After `qfai init`, this folder contains only this README. Spec packs (`spec-XXXX/`) are created by running `/qfai-spec`.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Configure qfai.config.yaml based on the repository"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-configure.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Discuss an idea and clarify requirements"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-discuss.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Implement code changes with tests"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-implement.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Create requirements artifacts"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-require.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Implement acceptance tests from scenarios"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-scenario-test.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Create specs, contracts, and scenarios"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-spec.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Implement unit tests from specs/scenarios"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-unit-test.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: "QFAI: Run quality gates and produce evidence"
3
+ argument-hint: "[optional notes]"
4
+ ---
5
+
6
+ Follow the canonical QFAI prompt exactly:
7
+ @.qfai/assistant/prompts/qfai-verify.md
8
+
9
+ Follow the DoD/Checkpoints in the prompt.
10
+ Use the repository as the source of truth.
11
+
12
+ Additional user notes: $ARGUMENTS
13
+
14
+ Critical: output must match the user's language.
@@ -0,0 +1,16 @@
1
+ # QFAI Codex skills
2
+
3
+ This directory provides thin Codex skill wrappers for QFAI prompts.
4
+
5
+ ## Canonical prompts
6
+
7
+ The source of truth is always the prompt body under:
8
+
9
+ - .qfai/assistant/prompts/
10
+
11
+ If there is any mismatch, the canonical `.qfai` prompt wins.
12
+
13
+ ## Usage
14
+
15
+ In Codex CLI, select a skill by name (e.g., `qfai-configure`) and provide your request.
16
+ All outputs must match the user's language.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: qfai-configure
3
+ description: QFAI: Configure qfai.config.yaml based on the repository
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-configure.md
9
+
10
+ How to invoke (Codex CLI):
11
+
12
+ - Select the `qfai-configure` 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-discuss
3
+ description: QFAI: Discuss an idea and clarify requirements
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-discuss.md
9
+
10
+ How to invoke (Codex CLI):
11
+
12
+ - Select the `qfai-discuss` 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-implement
3
+ description: QFAI: Implement code changes with tests
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-implement.md
9
+
10
+ How to invoke (Codex CLI):
11
+
12
+ - Select the `qfai-implement` 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-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}