qfai 1.0.4 → 1.0.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 +53 -65
- package/assets/init/.qfai/README.md +17 -77
- package/assets/init/.qfai/assistant/README.md +9 -0
- package/assets/init/.qfai/assistant/agents/README.md +34 -0
- package/assets/init/.qfai/assistant/agents/architect.md +73 -0
- package/assets/init/.qfai/assistant/agents/backend-engineer.md +73 -0
- package/assets/init/.qfai/assistant/agents/code-reviewer.md +73 -0
- package/assets/init/.qfai/assistant/agents/contract-designer.md +73 -0
- package/assets/init/.qfai/assistant/agents/devops-ci-engineer.md +73 -0
- package/assets/init/.qfai/assistant/agents/facilitator.md +74 -0
- package/assets/init/.qfai/assistant/agents/frontend-engineer.md +73 -0
- package/assets/init/.qfai/assistant/agents/interviewer.md +72 -0
- package/assets/init/.qfai/assistant/agents/planner.md +73 -0
- package/assets/init/.qfai/assistant/agents/qa-engineer.md +73 -0
- package/assets/init/.qfai/assistant/agents/requirements-analyst.md +73 -0
- package/assets/init/.qfai/assistant/agents/test-engineer.md +73 -0
- package/assets/init/.qfai/assistant/instructions/README.md +6 -0
- package/assets/init/.qfai/assistant/instructions/constitution.md +131 -0
- package/assets/init/.qfai/assistant/instructions/workflow.md +75 -0
- package/assets/init/.qfai/assistant/prompts/README.md +19 -0
- package/assets/init/.qfai/assistant/prompts/qfai-discuss.md +173 -0
- package/assets/init/.qfai/assistant/prompts/qfai-implement.md +239 -0
- package/assets/init/.qfai/assistant/prompts/qfai-pr.md +218 -0
- package/assets/init/.qfai/assistant/prompts/qfai-require.md +273 -0
- package/assets/init/.qfai/assistant/prompts/qfai-scenario-test.md +229 -0
- package/assets/init/.qfai/assistant/prompts/qfai-spec.md +287 -0
- package/assets/init/.qfai/assistant/prompts/qfai-unit-test.md +202 -0
- package/assets/init/.qfai/assistant/prompts/qfai-verify.md +231 -0
- package/assets/init/.qfai/assistant/prompts.local/README.md +6 -0
- package/assets/init/.qfai/assistant/steering/README.md +33 -0
- package/assets/init/.qfai/assistant/steering/product.md +32 -0
- package/assets/init/.qfai/assistant/steering/structure.md +34 -0
- package/assets/init/.qfai/assistant/steering/tech.md +37 -0
- package/assets/init/.qfai/contracts/README.md +7 -87
- package/assets/init/.qfai/contracts/api/README.md +8 -0
- package/assets/init/.qfai/contracts/db/README.md +8 -0
- package/assets/init/.qfai/contracts/ui/README.md +8 -0
- package/assets/init/.qfai/report/README.md +13 -0
- package/assets/init/.qfai/require/README.md +4 -26
- package/assets/init/.qfai/require/require.md +74 -0
- package/assets/init/.qfai/specs/README.md +6 -56
- package/assets/init/root/.github/workflows/qfai.yml +1 -1
- package/assets/init/root/qfai.config.yaml +3 -3
- package/dist/cli/index.cjs +306 -423
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +288 -405
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +29 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +29 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/assets/init/.qfai/contracts/api/api-0001-sample.yaml +0 -15
- package/assets/init/.qfai/contracts/db/db-0001-sample.sql +0 -7
- package/assets/init/.qfai/contracts/ui/assets/thema-001-facebook-like/assets.yaml +0 -6
- package/assets/init/.qfai/contracts/ui/assets/thema-001-facebook-like/palette.png +0 -0
- package/assets/init/.qfai/contracts/ui/assets/ui-0001-sample/assets.yaml +0 -6
- package/assets/init/.qfai/contracts/ui/assets/ui-0001-sample/snapshots/login__desktop__light__default.png +0 -0
- package/assets/init/.qfai/contracts/ui/thema-001-facebook-like.yml +0 -13
- package/assets/init/.qfai/contracts/ui/ui-0001-sample.yaml +0 -17
- package/assets/init/.qfai/out/README.md +0 -17
- package/assets/init/.qfai/promptpack/commands/implement.md +0 -8
- package/assets/init/.qfai/promptpack/commands/plan.md +0 -11
- package/assets/init/.qfai/promptpack/commands/release.md +0 -6
- package/assets/init/.qfai/promptpack/commands/review.md +0 -6
- package/assets/init/.qfai/promptpack/constitution.md +0 -15
- package/assets/init/.qfai/promptpack/roles/qa.md +0 -4
- package/assets/init/.qfai/promptpack/roles/spec.md +0 -4
- package/assets/init/.qfai/promptpack/roles/test.md +0 -4
- package/assets/init/.qfai/promptpack/steering/naming.md +0 -7
- package/assets/init/.qfai/promptpack/steering/traceability.md +0 -25
- package/assets/init/.qfai/prompts/README.md +0 -68
- package/assets/init/.qfai/prompts/analyze/README.md +0 -21
- package/assets/init/.qfai/prompts/analyze/scenario_test_consistency.md +0 -8
- package/assets/init/.qfai/prompts/analyze/scenario_to_test.md +0 -56
- package/assets/init/.qfai/prompts/analyze/spec_contract_consistency.md +0 -8
- package/assets/init/.qfai/prompts/analyze/spec_scenario_consistency.md +0 -8
- package/assets/init/.qfai/prompts/analyze/spec_to_contract.md +0 -54
- package/assets/init/.qfai/prompts/analyze/spec_to_scenario.md +0 -56
- package/assets/init/.qfai/prompts/makeBusinessFlow.md +0 -34
- package/assets/init/.qfai/prompts/makeOverview.md +0 -27
- package/assets/init/.qfai/prompts/qfai-generate-test-globs.md +0 -29
- package/assets/init/.qfai/prompts/qfai-maintain-contracts.md +0 -35
- package/assets/init/.qfai/prompts/qfai-maintain-traceability.md +0 -36
- package/assets/init/.qfai/prompts/require-to-spec.md +0 -40
- package/assets/init/.qfai/prompts.local/README.md +0 -31
- package/assets/init/.qfai/specs/spec-0001/delta.md +0 -25
- package/assets/init/.qfai/specs/spec-0001/scenario.feature +0 -11
- package/assets/init/.qfai/specs/spec-0001/spec.md +0 -40
package/package.json
CHANGED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
@@ -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,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,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,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,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`)
|