qfai 1.0.4 → 1.0.6

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 (94) hide show
  1. package/README.md +58 -67
  2. package/assets/init/.qfai/README.md +17 -76
  3. package/assets/init/.qfai/assistant/README.md +9 -0
  4. package/assets/init/.qfai/assistant/agents/README.md +36 -0
  5. package/assets/init/.qfai/assistant/agents/architect.md +73 -0
  6. package/assets/init/.qfai/assistant/agents/backend-engineer.md +73 -0
  7. package/assets/init/.qfai/assistant/agents/code-reviewer.md +73 -0
  8. package/assets/init/.qfai/assistant/agents/contract-designer.md +73 -0
  9. package/assets/init/.qfai/assistant/agents/devops-ci-engineer.md +73 -0
  10. package/assets/init/.qfai/assistant/agents/facilitator.md +74 -0
  11. package/assets/init/.qfai/assistant/agents/frontend-engineer.md +73 -0
  12. package/assets/init/.qfai/assistant/agents/interviewer.md +72 -0
  13. package/assets/init/.qfai/assistant/agents/planner.md +73 -0
  14. package/assets/init/.qfai/assistant/agents/qa-engineer.md +73 -0
  15. package/assets/init/.qfai/assistant/agents/requirements-analyst.md +73 -0
  16. package/assets/init/.qfai/assistant/agents/test-engineer.md +73 -0
  17. package/assets/init/.qfai/assistant/instructions/README.md +10 -0
  18. package/assets/init/.qfai/assistant/instructions/agent-selection.md +28 -0
  19. package/assets/init/.qfai/assistant/instructions/communication.md +27 -0
  20. package/assets/init/.qfai/assistant/instructions/constitution.md +131 -0
  21. package/assets/init/.qfai/assistant/instructions/quality.md +27 -0
  22. package/assets/init/.qfai/assistant/instructions/thinking.md +29 -0
  23. package/assets/init/.qfai/assistant/instructions/workflow.md +75 -0
  24. package/assets/init/.qfai/assistant/prompts/README.md +19 -0
  25. package/assets/init/.qfai/assistant/prompts/qfai-discuss.md +173 -0
  26. package/assets/init/.qfai/assistant/prompts/qfai-implement.md +230 -0
  27. package/assets/init/.qfai/assistant/prompts/qfai-pr.md +209 -0
  28. package/assets/init/.qfai/assistant/prompts/qfai-require.md +264 -0
  29. package/assets/init/.qfai/assistant/prompts/qfai-scenario-test.md +220 -0
  30. package/assets/init/.qfai/assistant/prompts/qfai-spec.md +291 -0
  31. package/assets/init/.qfai/assistant/prompts/qfai-unit-test.md +193 -0
  32. package/assets/init/.qfai/assistant/prompts/qfai-verify.md +222 -0
  33. package/assets/init/.qfai/assistant/prompts.local/README.md +8 -0
  34. package/assets/init/.qfai/assistant/steering/README.md +40 -0
  35. package/assets/init/.qfai/assistant/steering/product.md +32 -0
  36. package/assets/init/.qfai/assistant/steering/structure.md +34 -0
  37. package/assets/init/.qfai/assistant/steering/tech.md +37 -0
  38. package/assets/init/.qfai/contracts/README.md +7 -87
  39. package/assets/init/.qfai/contracts/api/README.md +8 -0
  40. package/assets/init/.qfai/contracts/db/README.md +25 -0
  41. package/assets/init/.qfai/contracts/ui/README.md +8 -0
  42. package/assets/init/.qfai/report/README.md +13 -0
  43. package/assets/init/.qfai/require/README.md +4 -26
  44. package/assets/init/.qfai/require/require.md +74 -0
  45. package/assets/init/.qfai/specs/README.md +7 -55
  46. package/assets/init/root/.github/workflows/qfai.yml +1 -1
  47. package/assets/init/root/qfai.config.yaml +3 -3
  48. package/dist/cli/index.cjs +306 -423
  49. package/dist/cli/index.cjs.map +1 -1
  50. package/dist/cli/index.mjs +288 -405
  51. package/dist/cli/index.mjs.map +1 -1
  52. package/dist/index.cjs +29 -14
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.mjs +29 -14
  55. package/dist/index.mjs.map +1 -1
  56. package/package.json +1 -1
  57. package/assets/init/.qfai/contracts/api/api-0001-sample.yaml +0 -15
  58. package/assets/init/.qfai/contracts/db/db-0001-sample.sql +0 -7
  59. package/assets/init/.qfai/contracts/ui/assets/thema-001-facebook-like/assets.yaml +0 -6
  60. package/assets/init/.qfai/contracts/ui/assets/thema-001-facebook-like/palette.png +0 -0
  61. package/assets/init/.qfai/contracts/ui/assets/ui-0001-sample/assets.yaml +0 -6
  62. package/assets/init/.qfai/contracts/ui/assets/ui-0001-sample/snapshots/login__desktop__light__default.png +0 -0
  63. package/assets/init/.qfai/contracts/ui/thema-001-facebook-like.yml +0 -13
  64. package/assets/init/.qfai/contracts/ui/ui-0001-sample.yaml +0 -17
  65. package/assets/init/.qfai/out/README.md +0 -17
  66. package/assets/init/.qfai/promptpack/commands/implement.md +0 -8
  67. package/assets/init/.qfai/promptpack/commands/plan.md +0 -11
  68. package/assets/init/.qfai/promptpack/commands/release.md +0 -6
  69. package/assets/init/.qfai/promptpack/commands/review.md +0 -6
  70. package/assets/init/.qfai/promptpack/constitution.md +0 -15
  71. package/assets/init/.qfai/promptpack/roles/qa.md +0 -4
  72. package/assets/init/.qfai/promptpack/roles/spec.md +0 -4
  73. package/assets/init/.qfai/promptpack/roles/test.md +0 -4
  74. package/assets/init/.qfai/promptpack/steering/naming.md +0 -7
  75. package/assets/init/.qfai/promptpack/steering/traceability.md +0 -25
  76. package/assets/init/.qfai/prompts/README.md +0 -68
  77. package/assets/init/.qfai/prompts/analyze/README.md +0 -21
  78. package/assets/init/.qfai/prompts/analyze/scenario_test_consistency.md +0 -8
  79. package/assets/init/.qfai/prompts/analyze/scenario_to_test.md +0 -56
  80. package/assets/init/.qfai/prompts/analyze/spec_contract_consistency.md +0 -8
  81. package/assets/init/.qfai/prompts/analyze/spec_scenario_consistency.md +0 -8
  82. package/assets/init/.qfai/prompts/analyze/spec_to_contract.md +0 -54
  83. package/assets/init/.qfai/prompts/analyze/spec_to_scenario.md +0 -56
  84. package/assets/init/.qfai/prompts/makeBusinessFlow.md +0 -34
  85. package/assets/init/.qfai/prompts/makeOverview.md +0 -27
  86. package/assets/init/.qfai/prompts/qfai-generate-test-globs.md +0 -29
  87. package/assets/init/.qfai/prompts/qfai-maintain-contracts.md +0 -35
  88. package/assets/init/.qfai/prompts/qfai-maintain-traceability.md +0 -36
  89. package/assets/init/.qfai/prompts/require-to-spec.md +0 -40
  90. package/assets/init/.qfai/prompts.local/README.md +0 -31
  91. package/assets/init/.qfai/specs/spec-0001/delta.md +0 -25
  92. package/assets/init/.qfai/specs/spec-0001/scenario.feature +0 -11
  93. package/assets/init/.qfai/specs/spec-0001/spec.md +0 -40
  94. package/assets/init/root/tests/qfai-traceability.sample.test.ts +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qfai",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Quality-first AI-driven development toolkit (SDD × ATDD × TDD).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,15 +0,0 @@
1
- # QFAI-CONTRACT-ID: API-0001
2
- # OpenAPI contract sample (API-0001)
3
- # - 必須: QFAI-CONTRACT-ID (1ファイル1ID)
4
- # - 必須: openapi, info, paths
5
- openapi: 3.0.0
6
- info:
7
- title: QFAI Sample API
8
- version: 0.1.0
9
- paths:
10
- /health:
11
- get:
12
- operationId: healthCheck
13
- responses:
14
- "200":
15
- description: OK
@@ -1,7 +0,0 @@
1
- -- QFAI-CONTRACT-ID: DB-0001
2
- -- DB-0001 (DB contract sample)
3
- -- 破壊的 SQL (削除/破棄系) は警告対象
4
- CREATE TABLE sample_table (
5
- id INTEGER PRIMARY KEY,
6
- name VARCHAR(255) NOT NULL
7
- );
@@ -1,6 +0,0 @@
1
- packId: THEMA-001
2
- type: thema
3
- items:
4
- - id: THEMA-001.palette.default
5
- kind: snapshot
6
- path: palette.png
@@ -1,6 +0,0 @@
1
- packId: UI-0001
2
- type: ui
3
- items:
4
- - id: UI-0001.desktop.light.default
5
- kind: snapshot
6
- path: snapshots/login__desktop__light__default.png
@@ -1,13 +0,0 @@
1
- # QFAI-CONTRACT-ID: THEMA-001
2
- id: THEMA-001
3
- name: facebook-like
4
- tokens:
5
- color:
6
- background: "#FFFFFF"
7
- textPrimary: "#111111"
8
- accent: "#1877F2"
9
- components:
10
- Button:
11
- primary:
12
- backgroundToken: "color.accent"
13
- textToken: "color.background"
@@ -1,17 +0,0 @@
1
- # QFAI-CONTRACT-ID: UI-0001
2
- # UI contract sample (UI-0001)
3
- # - 必須: QFAI-CONTRACT-ID (1ファイル1ID)
4
- # - 任意: id, name, refs
5
- id: UI-0001
6
- name: Order Registration
7
- refs:
8
- - BR-0001
9
- themaRef: THEMA-001
10
- themeOverrides:
11
- Button:
12
- primary:
13
- backgroundToken: "color.accent"
14
- assets:
15
- pack: assets/ui-0001-sample
16
- use:
17
- - UI-0001.desktop.light.default
@@ -1,17 +0,0 @@
1
- # Output (.qfai/out)
2
-
3
- `qfai validate` と `qfai report` の出力先です。
4
-
5
- ## 生成されるファイル
6
-
7
- - `validate.json` : 検証結果(JSON)
8
- - `report.md` / `report.json` : レポート
9
-
10
- ## 運用メモ
11
-
12
- - 原則として **コミットしない** ことを推奨します
13
- - `.gitignore` への追記例:
14
-
15
- ```
16
- .qfai/out/
17
- ```
@@ -1,8 +0,0 @@
1
- # Implement
2
-
3
- - 既存の型/ユーティリティ/パターンを優先して再利用する
4
- - 入力検証と失敗パスを先に書く
5
- - 早期 return でネストを浅くする
6
- - ログ/エラーメッセージは具体的かつ最小限にする
7
- - 契約追加/変更時は `prompts/qfai-maintain-contracts.md` を使う
8
- - 参照切れがある場合は `prompts/qfai-maintain-traceability.md` を使う
@@ -1,11 +0,0 @@
1
- # Plan
2
-
3
- 目的と完了条件を先に明確化し、以下を最小構成で整理する。
4
-
5
- - ゴール/完了条件
6
- - スコープ(やる/やらない)
7
- - 手順(小さく分割)
8
- - テスト方針
9
- - リスクと確認点
10
- - testFileGlobs が未整備なら `prompts/qfai-generate-test-globs.md` を使う
11
- - 受入観点が曖昧なら QA 観点で整理する
@@ -1,6 +0,0 @@
1
- # Release
2
-
3
- - CHANGELOG と version を更新する
4
- - `pnpm format:check && pnpm lint && pnpm check-types` を実行する
5
- - `pnpm -C packages/qfai test` と `pnpm verify:pack` を実行する
6
- - タグ付与は main の HEAD に対して行う
@@ -1,6 +0,0 @@
1
- # Review
2
-
3
- - Spec/Scenario/Contracts と実装の整合
4
- - delta.md に変更内容/受入観点が記録されているか
5
- - 影響範囲とテスト結果の妥当性
6
- - セキュリティ/運用上の懸念がないか
@@ -1,15 +0,0 @@
1
- # PromptPack Constitution
2
-
3
- PromptPack はプロジェクト内の SSOT(Single Source of Truth)として扱う。
4
-
5
- ## 基本原則
6
-
7
- - spec/scenario/delta/BR/SC を最優先で読む
8
- - 変更は delta.md に記録し、受入観点と影響範囲を明示する
9
- - validate を通すことを必須とする(通らないなら仕様/運用が破綻している)
10
- - 不確実性(仮説/未確定/TODO)は残し方針を統一する
11
-
12
- ## 運用
13
-
14
- - PromptPack は人が手動で参照する前提とする
15
- - 自動配置は v0.9 の emit/adapter まで行わない
@@ -1,4 +0,0 @@
1
- # Role: QA
2
-
3
- - 例外/境界値/運用時の挙動を中心に確認する
4
- - 仕様とテストが一致しているかを検証する
@@ -1,4 +0,0 @@
1
- # Role: Spec
2
-
3
- - 仕様書と成果物の整合を優先する
4
- - ID/参照/命名規約の逸脱を検出する
@@ -1,4 +0,0 @@
1
- # Role: Test
2
-
3
- - 振る舞い変更は再現テストを先に追加する
4
- - 近傍の適切な層でカバーする
@@ -1,7 +0,0 @@
1
- # Naming
2
-
3
- 命名規約は `docs/rules/naming.md` を正とする。
4
-
5
- - ID は `PREFIX-0001` 形式(4桁ゼロ埋め)
6
- - 参照はファイル名ではなく ID を用いる
7
- - 同一 ID の重複定義は禁止
@@ -1,25 +0,0 @@
1
- # Traceability
2
-
3
- 参照は下流→上流のみを許可する(下流参照禁止の対象はテスト/実装)。
4
-
5
- ## 用語(CI と Hard Gate)
6
-
7
- - 「CIで検出する」: validate が issue を出す(info/warning/error を含む)
8
- - 「Hard Gate」: `--fail-on error` で CI を止める領域
9
-
10
- - Spec は QFAI-CONTRACT-REF で契約IDを宣言する(none可、宣言行は必須)
11
- - Scenario は @SPEC-xxxx / @SC-xxxx / @BR-xxxx を持つ
12
- - Scenario は `# QFAI-CONTRACT-REF` で契約参照を宣言する(none 可、宣言行は必須)
13
- - テスト/コードは QFAI:SC-xxxx で SC を参照する
14
- - Spec はテスト/実装(src/tests)を参照しない
15
-
16
- ## CIで検出する範囲
17
-
18
- - BR→SC のトレーサビリティ
19
- - Spec→Contract の参照(QFAI-CONTRACT-REF/ID形式)
20
- - SC→Test の参照(QFAI:SC-xxxx/ID形式)
21
- - 参照IDの形式などの整合
22
-
23
- ## CIで検出しないため運用で担保する範囲
24
-
25
- - Spec→下流参照禁止(検出する場合でも warning に留め、Hard Gate 化しない)
@@ -1,68 +0,0 @@
1
- # Prompts (手動利用)
2
-
3
- このディレクトリのプロンプトは **手動で使う資産**です。現時点では自動読取は行いません(将来のバージョンで CLI 連携を検討します)。
4
-
5
- 重要: `.qfai/prompts/**` は **QFAI 標準資産**です。QFAI のアップデートや `qfai init` の再実行により **上書きされ得ます**。
6
- 利用者が直接編集することは **非推奨・非サポート(ほぼ禁止)**です。変更したい場合は `.qfai/prompts.local/**` に同一相対パスで置いて overlay してください。
7
-
8
- ## 目的
9
-
10
- - Spec から overview / Business Flow を生成するための素材
11
- - トレーサビリティ/契約の運用支援(CIで止めない領域)
12
- - 意味矛盾(解釈/前提/用語/受入条件の齟齬)のレビュー補助(analyze)
13
- - 将来の CLI 連携に備えた配布物(現時点では手動利用のみ)
14
-
15
- ## Overlay(prompts.local)
16
-
17
- カスタムしたい場合は、次の優先順位で参照する運用とします。
18
-
19
- 1. `.qfai/prompts.local/<relativePath>`
20
- 2. `.qfai/prompts/<relativePath>`
21
-
22
- ## プロンプト一覧
23
-
24
- - `makeOverview.md`: Spec 一覧(overview)生成
25
- - `makeBusinessFlow.md`: 業務フロー(BF)整理
26
- - `require-to-spec.md`: 既存要件から Spec Pack を起こす
27
- - `qfai-generate-test-globs.md`: テストファイル glob の生成支援(`qfai.config.yaml` 更新)
28
- - `qfai-maintain-traceability.md`: 参照切れの修復(Spec/Scenario/Test)
29
- - `qfai-maintain-contracts.md`: 契約 ID と参照の整合
30
- - `analyze/README.md`: analyze の目的/入力/出力フォーマット
31
- - `analyze/spec_to_scenario.md`: Spec ↔ Scenario の意味整合
32
- - `analyze/spec_to_contract.md`: Spec ↔ Contract の対応漏れ/参照不整合
33
- - `analyze/scenario_to_test.md`: Scenario ↔ Test の網羅/抜け/誤差
34
-
35
- ## 使い分け表
36
-
37
- | Prompt | 目的 | 必須入力 | 出力の期待形式 | よくある失敗 |
38
- | ------------------------------- | ---------------- | --------------------------------------------- | ------------------------------ | ------------------- |
39
- | `qfai-maintain-traceability.md` | 参照切れの修復 | spec/delta/scenario + validate/report + tests | 修正方針 + diff + 再実行手順 | ID形式崩し/SSOT無視 |
40
- | `qfai-maintain-contracts.md` | 契約と参照の整合 | contracts + spec + report | 採番案 + 参照更新案 + diff | ID変更の無断実施 |
41
- | `qfai-generate-test-globs.md` | テストglob生成 | package.json/設定/テスト配置 | glob案 + 更新案 + サンプル確認 | glob過剰/不足 |
42
- | `makeOverview.md` | Spec一覧生成 | spec.md | 一覧テーブル/サマリ | spec未読 |
43
- | `makeBusinessFlow.md` | 業務フロー整理 | spec.md/要件 | フロー手順/根拠 | 要件の飛ばし |
44
- | `require-to-spec.md` | 要件からSpec作成 | require資料 | Spec Pack草案 | ID採番の逸脱 |
45
-
46
- ## 使い方(例)
47
-
48
- 1. 目的のプロンプトを開く(例: `makeOverview.md`)
49
- 2. そのまま AI エージェントに貼り付ける
50
- 3. 指示された出力先に生成結果を保存する
51
-
52
- ### エージェント別の手動導線(例)
53
-
54
- - Copilot: `.github/copilot-instructions.md` に要旨を転記
55
- - Claude: `CLAUDE.md` に要旨を転記
56
- - Codex: `AGENTS.md` に要旨を転記
57
-
58
- ※ いずれも **自動生成はしません**。必要に応じて人手で同期してください。
59
-
60
- ## 出力先の例
61
-
62
- - Overview: `docs/specs/overview.md`
63
- - Business Flow: `docs/flows/bf-0001-<slug>.md`
64
-
65
- ## CI との関係
66
-
67
- - プロンプト自体は CI の検査対象ではありません
68
- - 生成物をレビューし、Spec/Scenario/Contracts と整合しているかを確認してください
@@ -1,21 +0,0 @@
1
- # analyze(手動利用)
2
-
3
- このディレクトリは QFAI の `validate` が扱わない **意味レベル** の矛盾/抜け/リスクを、レビューのために洗い出すための **手動プロンプト集**です。
4
-
5
- 重要:
6
-
7
- - analyze は **Hard Gate ではありません**(CI を落とさない想定)
8
- - 出力は **候補**です。根拠(引用)を必ず確認し、最終判断はレビューで行ってください
9
- - `validate` が扱う **構造矛盾(参照/フォーマット/トレーサビリティ)** は対象外です
10
-
11
- ## 推奨入力(最小セット)
12
-
13
- - Project Context / Spec / Scenario / Test / Contract のうち、今回関係する箇所を **抜粋**で用意する
14
- - `validate` / `report` の結果(必要なら要約)
15
- - 変更差分(PR diff / 変更ファイル一覧)
16
-
17
- ## プロンプト一覧(v0.9.x)
18
-
19
- - `spec_to_scenario.md`: Spec ↔ Scenario の意味整合
20
- - `spec_to_contract.md`: Spec ↔ Contract の参照整合(紐付け漏れ/根拠薄弱)
21
- - `scenario_to_test.md`: Scenario ↔ Test の網羅性/ズレ
@@ -1,8 +0,0 @@
1
- # Deprecated
2
-
3
- このプロンプトは v0.9.1 で命名/雛形を整理しました。
4
-
5
- - 代替: `.qfai/prompts/analyze/scenario_to_test.md`
6
- - 理由: v0.9.1 の `qfai analyze --list` / `--prompt` が標準3本(spec_to_scenario/spec_to_contract/scenario_to_test)に揃えているため
7
-
8
- 以降は新しいプロンプトを利用してください。
@@ -1,56 +0,0 @@
1
- # analyze: Scenario ↔ Test 網羅性/ズレチェック
2
-
3
- ## 目的
4
-
5
- - Scenario(受入条件)が Test で担保されているかを確認する
6
- - Test が Scenario の意図を誤解していないかを確認する
7
-
8
- ## 入力の前提(貼り付けて埋める)
9
-
10
- 入力が多すぎる場合は「抜粋にする」「代表ケースだけに絞る」を優先してください。
11
-
12
- ### Project Context(任意)
13
-
14
- - 対象機能:
15
- - 前提/制約:
16
- - 対象外(Non-goals):
17
-
18
- ### Scenario Excerpts
19
-
20
- - ...
21
-
22
- ### Test Excerpts
23
-
24
- - ...
25
-
26
- ### Spec Excerpts(任意)
27
-
28
- - ...
29
-
30
- ### Contract / Trace Links(任意)
31
-
32
- - (Scenario ID)→(Test名/ファイル など)
33
- - ...
34
-
35
- ### Open Concerns(任意)
36
-
37
- - ...
38
-
39
- ## チェック観点
40
-
41
- - シナリオの各条件がテストに対応しているか(対応表を作る)
42
- - 例外系・境界条件がテストされているか
43
- - テスト名/説明がシナリオ用語と一致しているか
44
- - テストが多すぎる/少なすぎることによるリスク
45
-
46
- ## 期待する出力形式
47
-
48
- - 対応表(Scenario項目 → Test名/箇所)
49
- - 漏れ(未テスト)とズレ(誤解)のリスト
50
- - 優先度(高/中/低)を付ける
51
-
52
- ## 次アクション
53
-
54
- - Test追加/修正案:
55
- - Scenario追加/修正案:
56
- - 追加で確認すべき質問:
@@ -1,8 +0,0 @@
1
- # Deprecated
2
-
3
- このプロンプトは v0.9.1 で命名/雛形を整理しました。
4
-
5
- - 代替: `.qfai/prompts/analyze/spec_to_contract.md`
6
- - 理由: v0.9.1 の `qfai analyze --list` / `--prompt` が標準3本(spec_to_scenario/spec_to_contract/scenario_to_test)に揃えているため
7
-
8
- 以降は新しいプロンプトを利用してください。
@@ -1,8 +0,0 @@
1
- # Deprecated
2
-
3
- このプロンプトは v0.9.1 で命名/雛形を整理しました。
4
-
5
- - 代替: `.qfai/prompts/analyze/spec_to_scenario.md`
6
- - 理由: v0.9.1 の `qfai analyze --list` / `--prompt` が標準3本(spec_to_scenario/spec_to_contract/scenario_to_test)に揃えているため
7
-
8
- 以降は新しいプロンプトを利用してください。
@@ -1,54 +0,0 @@
1
- # analyze: Spec ↔ Contract トレーサビリティチェック
2
-
3
- ## 目的
4
-
5
- - Spec と Contract(参照関係)が噛み合っているかを確認する
6
- - 紐付け漏れ・参照の根拠薄弱を抽出する
7
-
8
- ## 入力の前提(貼り付けて埋める)
9
-
10
- 入力が多すぎる場合は「抜粋にする」「代表ケースだけに絞る」を優先してください。
11
-
12
- ### Project Context
13
-
14
- - 対象機能:
15
- - 前提/制約:
16
- - 対象外(Non-goals):
17
-
18
- ### Spec Excerpts
19
-
20
- - ...
21
-
22
- ### Contract / Trace Links
23
-
24
- - (Spec ID)→(Scenario ID / Test ID など)
25
- - ...
26
-
27
- ### Scenario Excerpts(任意)
28
-
29
- - ...
30
-
31
- ### Test Excerpts(任意)
32
-
33
- - ...
34
-
35
- ### Open Concerns(任意)
36
-
37
- - ...
38
-
39
- ## チェック観点
40
-
41
- - Spec に対してリンクが存在しない箇所(紐付け漏れ)
42
- - Contract で参照しているが、Spec 側に根拠が見当たらない箇所
43
- - 参照の向きが不自然な箇所(誤ったID、転記ミスの疑い)
44
-
45
- ## 期待する出力形式
46
-
47
- - 「紐付け漏れ」「根拠薄弱」「参照ミス疑い」に分類
48
- - それぞれに修正案(Contract修正 / Spec補強 / Scenario追加)を付ける
49
-
50
- ## 次アクション
51
-
52
- - Contract修正案:
53
- - Spec補強案:
54
- - 追加で確認すべき質問:
@@ -1,56 +0,0 @@
1
- # analyze: Spec ↔ Scenario 整合性チェック
2
-
3
- ## 目的
4
-
5
- - Spec(仕様)の主張が Scenario(受入シナリオ)に反映されているかを確認する
6
- - Scenario が Spec を逸脱していないかを確認する
7
-
8
- ## 入力の前提(貼り付けて埋める)
9
-
10
- 入力が多すぎる場合は「抜粋にする」「代表ケースだけに絞る」を優先してください。
11
-
12
- ### Project Context
13
-
14
- - 対象機能:
15
- - 前提/制約:
16
- - 対象外(Non-goals):
17
-
18
- ### Spec Excerpts
19
-
20
- - ...
21
-
22
- ### Scenario Excerpts
23
-
24
- - ...
25
-
26
- ### Test Excerpts(任意)
27
-
28
- - ...
29
-
30
- ### Contract / Trace Links(任意)
31
-
32
- - (Spec ID)→(Scenario ID / Test ID など)
33
- - ...
34
-
35
- ### Open Concerns(任意)
36
-
37
- - ...
38
-
39
- ## チェック観点
40
-
41
- - 用語定義の不一致(同じ言葉で別の意味)
42
- - 例外条件/境界条件の不足
43
- - 受入条件(Given/When/Then 等)が仕様の制約を満たすか
44
- - 仕様にあるのにシナリオがない項目(漏れ)
45
- - シナリオにあるのに仕様に根拠がない項目(逸脱)
46
-
47
- ## 期待する出力形式
48
-
49
- - 矛盾 / 不明点 / 漏れ をそれぞれ箇条書き
50
- - それぞれに「根拠(Spec/Scenario抜粋の引用)」と「提案(修正案)」を付ける
51
-
52
- ## 次アクション
53
-
54
- - Spec修正案:
55
- - Scenario追加/修正案:
56
- - 追加で確認すべき質問:
@@ -1,34 +0,0 @@
1
- # makeBusinessFlow
2
-
3
- あなたは業務フロー(Business Flow: BF)を“推測せず”に整理するアシスタントです。
4
- Spec群を読み、Specに明示されている情報のみを根拠として、代表的な業務フロー候補と、ステップ→Specの対応表を作成してください。
5
-
6
- ## Inputs
7
-
8
- - 対象: `.qfai/specs/spec-*/spec.md` 形式のファイル(Spec Pack の `spec.md`。必要に応じて `scenario.feature` / `delta.md` も補助参照)
9
-
10
- ## Output (Option)
11
-
12
- - docs/flows/overview.md(BF一覧)
13
- - docs/flows/bf-0001-<slug>.md 等(個別BF)
14
-
15
- ## Hard Rules
16
-
17
- - Specに書かれていない業務フローを“創作”しない。
18
- - 根拠が薄い場合は候補として列挙し `TBD` を付ける。
19
- - BFの各ステップは必ず SPEC-ID に紐づける。
20
- - BR/SC/UI/API/DB の参照は Spec に書かれているもののみ。
21
-
22
- ## BF Document Format (per BF)
23
-
24
- - BF-ID / Title
25
- - Scope(開始条件/終了条件)
26
- - Actors(登場人物)
27
- - Steps(番号付き): step → SPEC-ID → 一行説明
28
- - Related BR / SC
29
- - Open Questions(TBD列挙)
30
-
31
- ## Safety
32
-
33
- - 既存ファイルがある場合は、`<!-- qfai:generated:start -->` と `<!-- qfai:generated:end -->` の範囲だけ更新。
34
- - それ以外の手書き領域は絶対に変更しない。
@@ -1,27 +0,0 @@
1
- # makeOverview
2
-
3
- あなたはドキュメント生成アシスタントです。リポジトリ内の Spec を走査し、Spec一覧(overview)を生成してください。
4
-
5
- ## Inputs
6
-
7
- - 対象: `.qfai/specs/spec-*/spec.md` 形式のファイル(Spec Pack の `spec.md`。必要に応じて `scenario.feature` / `delta.md` も補助参照)
8
-
9
- ## Output
10
-
11
- - docs/specs/overview.md を更新
12
- - 更新は必ず次の範囲のみ:
13
- - <!-- qfai:generated:start -->
14
- - <!-- qfai:generated:end -->
15
-
16
- ## Rules
17
-
18
- - Spec本文に書かれていないことは推測しない(不明は `TBD` と書く)。
19
- - SpecのIDとタイトルは、本文先頭の `# SPEC-xxxx ...` を正とし、ファイル名は補助。
20
- - 各Specについて最低限以下を表にする:
21
- - SPEC-ID / Title / Outcome(1行) / Status / SC / UI / API / DB / Tags
22
- - 参照が欠けている場合(例: SCが未記載)は “欠落一覧” に列挙する。
23
-
24
- ## Format
25
-
26
- - Markdown table
27
- - 生成日時(JST)と、参照したSpecファイル一覧を末尾に付記する。
@@ -1,29 +0,0 @@
1
- # QFAI: テストファイル glob 生成(プロジェクト分析→qfai.config.yaml 更新)
2
-
3
- あなたはリポジトリを解析し、QFAI の SC→Test 判定に使用する「テストファイル glob」を作成します。
4
-
5
- ## 目的
6
-
7
- - SC→Test の根拠は **テストファイル内の `QFAI:SC-xxxx`** アノテーションです。
8
- - その抽出対象(テストファイル集合)を、プロジェクト実態に合わせて **過不足なく**指定してください。
9
-
10
- ## 手順
11
-
12
- 1. どのテストフレームワーク/ランナーが使われているかを特定してください。
13
- - 例: `package.json` の dependencies/devDependencies、設定ファイル(`vitest.config.*`, `jest.config.*`, `playwright.config.*` 等)、CI 設定など
14
- 2. テストファイルが存在するディレクトリと命名規則を列挙してください。
15
- - `tests/` 配下だけでなく、**`src/` 同居**(`*.test.*`)も考慮すること
16
- - e2e / integration / unit が分かれている場合はそれも考慮すること
17
- 3. 「テストファイル glob(含める)」を 3-10 個程度で提案してください。
18
- - 過剰に広い `**/*` は禁止(性能・誤検知の観点)
19
- 4. 「除外 glob」を提案してください(既定除外に加えて必要なら)。
20
- 5. `qfai.config.yaml` を更新してください。
21
- - `validation.traceability.testFileGlobs` に glob 配列を設定
22
- - 必要なら `validation.traceability.testFileExcludeGlobs` も設定
23
- 6. 更新後、実在するテストファイルを 5-15 件サンプリングし、各ファイルが提案 glob にマッチすることを示してください。
24
- 7. 最後に、提案 glob を 1 行ずつコメント付きでまとめてください(採用理由を短く)。
25
-
26
- ## 制約
27
-
28
- - `.qfai/` 配下、`node_modules/`、ビルド成果物(`dist/`, `build/` 等)は対象外
29
- - 変更は **glob 設定に限定**(テストやソースの内容改変はしない)
@@ -1,35 +0,0 @@
1
- # QFAI: 契約保守(Contract ID と Spec 参照の整合)
2
-
3
- あなたは契約ファイルの追加/変更に合わせて、ID と参照の整合を保ちます。
4
-
5
- ## 目的
6
-
7
- - `QFAI-CONTRACT-ID` と `QFAI-CONTRACT-REF` の整合を保つ
8
- - orphan contract を発生させずに運用できるようにする
9
-
10
- ## 必須入力
11
-
12
- - `.qfai/contracts/**`(追加/変更した契約)
13
- - 関連する `spec.md`(候補は report の Spec→契約一覧)
14
- - `.qfai/out/report.md` / `.qfai/out/validate.json`(あれば)
15
-
16
- ## 手順
17
-
18
- 1. 追加/変更した契約の種別(UI/API/DB)と命名規約を確認する。
19
- 2. `QFAI-CONTRACT-ID` の採番案を作り、ファイル名と一致させる。
20
- 3. 参照すべき Spec を特定し、`QFAI-CONTRACT-REF` へ追記案を作る。
21
- 4. orphan contract が出る場合は、Spec 追加/更新の方針を提示する。
22
- 5. 変更後の validate / report 手順を示す。
23
-
24
- ## 禁止事項
25
-
26
- - 既存の Contract ID を無断で変更しない
27
- - ID 形式(`UI|API|DB-0001`)を崩さない
28
- - orphanContractsPolicy の変更を無断で行わない
29
-
30
- ## 出力フォーマット
31
-
32
- - 追加/変更する Contract ID と根拠
33
- - 参照を追加する Spec 一覧と編集案
34
- - 提案 diff(またはパッチ単位)
35
- - 再実行コマンド(`qfai validate` / `qfai report`)