qfai 1.0.2 → 1.0.4
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 +13 -12
- package/assets/init/.qfai/README.md +2 -7
- package/assets/init/.qfai/contracts/README.md +20 -0
- package/assets/init/.qfai/contracts/ui/assets/thema-001-facebook-like/assets.yaml +6 -0
- 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 +6 -0
- 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 +13 -0
- package/assets/init/.qfai/contracts/ui/ui-0001-sample.yaml +9 -0
- package/assets/init/.qfai/promptpack/commands/plan.md +1 -1
- package/assets/init/.qfai/promptpack/commands/review.md +1 -2
- package/assets/init/.qfai/promptpack/constitution.md +1 -1
- package/assets/init/.qfai/prompts/README.md +1 -3
- package/assets/init/.qfai/prompts/qfai-maintain-traceability.md +3 -3
- package/assets/init/.qfai/prompts/require-to-spec.md +1 -2
- package/assets/init/.qfai/specs/README.md +3 -4
- package/assets/init/.qfai/specs/spec-0001/delta.md +0 -5
- package/assets/init/.qfai/specs/spec-0001/scenario.feature +1 -1
- package/assets/init/.qfai/specs/spec-0001/spec.md +1 -1
- package/assets/init/root/qfai.config.yaml +0 -1
- package/dist/cli/index.cjs +596 -162
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +598 -164
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +549 -114
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.mjs +551 -116
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/assets/init/.qfai/promptpack/modes/change.md +0 -5
- package/assets/init/.qfai/promptpack/modes/compatibility.md +0 -6
- package/assets/init/.qfai/promptpack/steering/compatibility-vs-change.md +0 -42
- package/assets/init/.qfai/prompts/qfai-classify-change.md +0 -33
- package/assets/init/.qfai/rules/conventions.md +0 -27
- package/assets/init/.qfai/rules/pnpm.md +0 -29
- package/assets/init/.qfai/samples/analyze/analysis.md +0 -38
- package/assets/init/.qfai/samples/analyze/input_bundle.md +0 -54
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ npx qfai report
|
|
|
56
56
|
|
|
57
57
|
## できること
|
|
58
58
|
|
|
59
|
-
- `npx qfai init` によるテンプレート生成(specs/contracts に加え、`.qfai/require/README.md`、`.qfai/
|
|
59
|
+
- `npx qfai init` によるテンプレート生成(specs/contracts に加え、`.qfai/require/README.md`、`.qfai/prompts/**`、`.qfai/prompts.local/README.md`、`.qfai/prompts/analyze/**`、`.qfai/promptpack/` を含む)
|
|
60
60
|
- `npx qfai validate` による `.qfai/` 内ドキュメントの整合性・トレーサビリティ検査
|
|
61
61
|
- `npx qfai validate` による SC→Test 参照の検証(`validation.traceability.testFileGlobs` に一致するテストファイルから `QFAI:SC-xxxx` を抽出)
|
|
62
62
|
- `npx qfai doctor` による設定/探索/パス/glob/validate.json の事前診断
|
|
@@ -87,7 +87,7 @@ QFAI が提供するプロンプト資産は次の 2 つに分離します。
|
|
|
87
87
|
"summary": {
|
|
88
88
|
"specs": 1,
|
|
89
89
|
"scenarios": 1,
|
|
90
|
-
"contracts": { "api": 0, "ui": 1, "db": 0 },
|
|
90
|
+
"contracts": { "api": 0, "ui": 1, "db": 0, "thema": 0 },
|
|
91
91
|
"counts": { "info": 0, "warning": 0, "error": 0 }
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -137,8 +137,7 @@ doctor の JSON 例:
|
|
|
137
137
|
2. `npx qfai analyze --prompt spec_to_scenario` のようにプロンプトを出力し、AI に貼り付ける
|
|
138
138
|
3. 推奨入力(Spec/Scenario/Test/Contract の抜粋 + validate/report 要約 + 差分)を揃えて検討する
|
|
139
139
|
|
|
140
|
-
|
|
141
|
-
成果物を残す場合は `.qfai/samples/analyze/analysis.md`(テンプレ)を使う運用を推奨します。
|
|
140
|
+
入力の用意に迷う場合は、PR テンプレの「検証/証跡」に validate/report の結果を貼る運用を推奨します。
|
|
142
141
|
|
|
143
142
|
### カスタマイズ(Overlay)
|
|
144
143
|
|
|
@@ -157,6 +156,8 @@ analyze も `.qfai/prompts.local/**` の overlay 運用に従います。
|
|
|
157
156
|
Spec では `QFAI-CONTRACT-REF:` 行で参照する契約IDを宣言します(`none` 可)。Spec の先頭 H1 に `SPEC-xxxx` が必須です。
|
|
158
157
|
Scenario では `# QFAI-CONTRACT-REF:` のコメント行で契約参照を宣言します(`none` 可)。
|
|
159
158
|
契約ファイルは `QFAI-CONTRACT-ID: <ID>` を **1ファイル1ID** で宣言します。
|
|
159
|
+
契約IDは UI/API/DB/THEMA(THEMA は 3 桁)です。UI 契約は `themaRef` / `themeOverrides` / `assets` を追加できます。
|
|
160
|
+
`assets.pack` は `ui/` 配下の相対パス、`assets.use` は `assets.yaml` の `items[].id` を参照します。
|
|
160
161
|
`validate.json` / `report` の file path は root 相対で出力します(absolute は出力しません)。
|
|
161
162
|
|
|
162
163
|
## Monorepo / サブディレクトリ
|
|
@@ -240,13 +241,9 @@ qfai.config.yaml
|
|
|
240
241
|
spec.md
|
|
241
242
|
delta.md
|
|
242
243
|
scenario.feature
|
|
243
|
-
rules/
|
|
244
|
-
conventions.md
|
|
245
|
-
pnpm.md
|
|
246
244
|
promptpack/
|
|
247
245
|
constitution.md
|
|
248
246
|
steering/
|
|
249
|
-
compatibility-vs-change.md
|
|
250
247
|
traceability.md
|
|
251
248
|
naming.md
|
|
252
249
|
commands/
|
|
@@ -258,9 +255,6 @@ qfai.config.yaml
|
|
|
258
255
|
qa.md
|
|
259
256
|
spec.md
|
|
260
257
|
test.md
|
|
261
|
-
modes/
|
|
262
|
-
compatibility.md
|
|
263
|
-
change.md
|
|
264
258
|
prompts/
|
|
265
259
|
README.md
|
|
266
260
|
makeOverview.md
|
|
@@ -269,7 +263,6 @@ qfai.config.yaml
|
|
|
269
263
|
qfai-generate-test-globs.md
|
|
270
264
|
qfai-maintain-traceability.md
|
|
271
265
|
qfai-maintain-contracts.md
|
|
272
|
-
qfai-classify-change.md
|
|
273
266
|
prompts.local/
|
|
274
267
|
README.md
|
|
275
268
|
contracts/
|
|
@@ -278,6 +271,14 @@ qfai.config.yaml
|
|
|
278
271
|
api-0001-sample.yaml
|
|
279
272
|
ui/
|
|
280
273
|
ui-0001-sample.yaml
|
|
274
|
+
thema-001-facebook-like.yml
|
|
275
|
+
assets/
|
|
276
|
+
ui-0001-sample/
|
|
277
|
+
assets.yaml
|
|
278
|
+
snapshots/login__desktop__light__default.png
|
|
279
|
+
thema-001-facebook-like/
|
|
280
|
+
assets.yaml
|
|
281
|
+
palette.png
|
|
281
282
|
db/
|
|
282
283
|
db-0001-sample.sql
|
|
283
284
|
out/
|
|
@@ -24,20 +24,18 @@ npx qfai report
|
|
|
24
24
|
- `specs/` : Spec Pack(spec.md / delta.md / scenario.feature)
|
|
25
25
|
- `contracts/` : UI / API / DB 契約を置く場所
|
|
26
26
|
- `require/` : 既存要件の集約(validate 対象外)
|
|
27
|
-
- `rules/` : 規約・運用ルール
|
|
28
27
|
- `prompts/` : QFAI 標準のプロンプト資産(自動読取はしない。更新や再 init で上書きされ得る)
|
|
29
|
-
- `samples/` : analyze 等の手動運用で使う成果物テンプレ(create-only)
|
|
30
28
|
- `prompts.local/` : 利用者カスタムのプロンプト資産(存在する場合は overlay でこちらを優先して読む運用)
|
|
31
29
|
- `promptpack/` : PromptPack(SSOT、運用ルール/観点の正本)
|
|
32
30
|
- `out/` : `validate` / `report` の出力先(gitignore 推奨)
|
|
33
31
|
|
|
34
32
|
詳細は各 README を参照してください。
|
|
35
33
|
|
|
34
|
+
- analyze の入力束に迷う場合は、PR テンプレの「検証/証跡」に validate/report の結果を貼る運用を推奨します。
|
|
35
|
+
|
|
36
36
|
- `specs/README.md`
|
|
37
37
|
- `contracts/README.md`
|
|
38
38
|
- `require/README.md`
|
|
39
|
-
- `rules/conventions.md`
|
|
40
|
-
- `rules/pnpm.md`
|
|
41
39
|
- `prompts/README.md`
|
|
42
40
|
- `prompts/analyze/README.md`
|
|
43
41
|
- `prompts.local/README.md`
|
|
@@ -45,9 +43,6 @@ npx qfai report
|
|
|
45
43
|
- `prompts/qfai-generate-test-globs.md`
|
|
46
44
|
- `prompts/qfai-maintain-traceability.md`
|
|
47
45
|
- `prompts/qfai-maintain-contracts.md`
|
|
48
|
-
- `prompts/qfai-classify-change.md`
|
|
49
|
-
- `samples/analyze/analysis.md`
|
|
50
|
-
- `samples/analyze/input_bundle.md`
|
|
51
46
|
- `prompts/analyze/spec_to_scenario.md`
|
|
52
47
|
- `prompts/analyze/spec_to_contract.md`
|
|
53
48
|
- `prompts/analyze/scenario_to_test.md`
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
## 置くべきファイル
|
|
6
6
|
|
|
7
7
|
- UI: `ui/ui-0001-<slug>.yaml` または `.yml`
|
|
8
|
+
- THEMA: `ui/thema-001-<slug>.yml`(3桁)
|
|
8
9
|
- API: `api/api-0001-<slug>.yaml` / `.yml` / `.json`(OpenAPI)
|
|
9
10
|
- DB: `db/db-0001-<slug>.sql`(ID は `DB-xxxx`)
|
|
11
|
+
- assets: `ui/assets/<contract-id>/assets.yaml`(参照整合のみ検証)
|
|
10
12
|
|
|
11
13
|
## 契約ID宣言(必須)
|
|
12
14
|
|
|
@@ -23,6 +25,24 @@ id: UI-0001
|
|
|
23
25
|
name: 受注登録画面
|
|
24
26
|
refs:
|
|
25
27
|
- BR-0001
|
|
28
|
+
themaRef: THEMA-001
|
|
29
|
+
assets:
|
|
30
|
+
pack: assets/ui-0001-sample
|
|
31
|
+
use:
|
|
32
|
+
- UI-0001.desktop.light.default
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 最小例(THEMA)
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
# QFAI-CONTRACT-ID: THEMA-001
|
|
39
|
+
id: THEMA-001
|
|
40
|
+
name: facebook-like
|
|
41
|
+
tokens:
|
|
42
|
+
color:
|
|
43
|
+
background: "#FFFFFF"
|
|
44
|
+
textPrimary: "#111111"
|
|
45
|
+
accent: "#1877F2"
|
|
26
46
|
```
|
|
27
47
|
|
|
28
48
|
## 最小例(API)
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
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"
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
## 目的
|
|
9
9
|
|
|
10
10
|
- Spec から overview / Business Flow を生成するための素材
|
|
11
|
-
-
|
|
11
|
+
- トレーサビリティ/契約の運用支援(CIで止めない領域)
|
|
12
12
|
- 意味矛盾(解釈/前提/用語/受入条件の齟齬)のレビュー補助(analyze)
|
|
13
13
|
- 将来の CLI 連携に備えた配布物(現時点では手動利用のみ)
|
|
14
14
|
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
- `qfai-generate-test-globs.md`: テストファイル glob の生成支援(`qfai.config.yaml` 更新)
|
|
28
28
|
- `qfai-maintain-traceability.md`: 参照切れの修復(Spec/Scenario/Test)
|
|
29
29
|
- `qfai-maintain-contracts.md`: 契約 ID と参照の整合
|
|
30
|
-
- `qfai-classify-change.md`: Compatibility / Change 分類支援
|
|
31
30
|
- `analyze/README.md`: analyze の目的/入力/出力フォーマット
|
|
32
31
|
- `analyze/spec_to_scenario.md`: Spec ↔ Scenario の意味整合
|
|
33
32
|
- `analyze/spec_to_contract.md`: Spec ↔ Contract の対応漏れ/参照不整合
|
|
@@ -39,7 +38,6 @@
|
|
|
39
38
|
| ------------------------------- | ---------------- | --------------------------------------------- | ------------------------------ | ------------------- |
|
|
40
39
|
| `qfai-maintain-traceability.md` | 参照切れの修復 | spec/delta/scenario + validate/report + tests | 修正方針 + diff + 再実行手順 | ID形式崩し/SSOT無視 |
|
|
41
40
|
| `qfai-maintain-contracts.md` | 契約と参照の整合 | contracts + spec + report | 採番案 + 参照更新案 + diff | ID変更の無断実施 |
|
|
42
|
-
| `qfai-classify-change.md` | 変更区分の判断 | delta.md + 変更差分 | 分類 + 根拠 + 影響範囲 | 根拠なし分類 |
|
|
43
41
|
| `qfai-generate-test-globs.md` | テストglob生成 | package.json/設定/テスト配置 | glob案 + 更新案 + サンプル確認 | glob過剰/不足 |
|
|
44
42
|
| `makeOverview.md` | Spec一覧生成 | spec.md | 一覧テーブル/サマリ | spec未読 |
|
|
45
43
|
| `makeBusinessFlow.md` | 業務フロー整理 | spec.md/要件 | フロー手順/根拠 | 要件の飛ばし |
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## 目的
|
|
6
6
|
|
|
7
7
|
- Spec/Scenario/Test の ID 参照が壊れた箇所を特定し、整合させる
|
|
8
|
-
-
|
|
8
|
+
- 修正の影響と受入観点を整理する
|
|
9
9
|
|
|
10
10
|
## 必須入力
|
|
11
11
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
1. validate/report の結果から、壊れている参照(Spec/BR/SC/Contract/Test)を列挙する。
|
|
20
20
|
2. Spec Pack(spec/delta/scenario)を読み、ID と参照の意図を把握する。
|
|
21
|
-
3.
|
|
21
|
+
3. 修正の影響と受入観点を整理する。
|
|
22
22
|
4. 参照切れを解消する最小修正案(Spec/Scenario/Test)を作る。
|
|
23
23
|
5. 変更後の validate / report 手順を示す。
|
|
24
24
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
## 出力フォーマット
|
|
32
32
|
|
|
33
|
-
-
|
|
33
|
+
- 変更内容と受入観点
|
|
34
34
|
- 修正対象一覧(ファイル/ID/理由)
|
|
35
35
|
- 提案 diff(またはパッチ単位)
|
|
36
36
|
- 再実行コマンド(`qfai validate` / `qfai report` / テスト)
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
- 各 Scenario は `@SC-xxxx` を **ちょうど1つ**、`@BR-xxxx` を **1つ以上**持つこと。
|
|
28
28
|
- 契約ファイルには `QFAI-CONTRACT-ID: <ID>` を宣言する。
|
|
29
29
|
- 契約 ID(UI/API/DB)を Scenario で参照する場合はタグまたは本文に明示する。
|
|
30
|
-
- `delta.md`
|
|
31
|
-
- 判断できない場合は `Compatibility` を選び、`TBD` を理由欄に記載する。
|
|
30
|
+
- `delta.md` に変更内容/受入観点/影響範囲を記載する。
|
|
32
31
|
|
|
33
32
|
## Output Format
|
|
34
33
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
```md
|
|
16
16
|
# SPEC-0001: 注文登録の最小要件
|
|
17
17
|
|
|
18
|
-
QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001
|
|
18
|
+
QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001, THEMA-001
|
|
19
19
|
|
|
20
20
|
## 背景
|
|
21
21
|
|
|
@@ -39,8 +39,7 @@ QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001
|
|
|
39
39
|
|
|
40
40
|
## Delta(delta.md)
|
|
41
41
|
|
|
42
|
-
-
|
|
43
|
-
- 根拠と影響範囲を明記する
|
|
42
|
+
- 変更の要約・根拠・影響範囲・受入観点を明記する
|
|
44
43
|
|
|
45
44
|
## Scenario(scenario.feature)最小要件
|
|
46
45
|
|
|
@@ -54,7 +53,7 @@ QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001
|
|
|
54
53
|
## CI でチェックされること(抜粋)
|
|
55
54
|
|
|
56
55
|
- Spec: 必須セクション、SPEC/BR ID、BR Priority、ID 形式、Contract 参照の実在性、Contract 参照の必須宣言
|
|
57
|
-
- Delta:
|
|
56
|
+
- Delta: delta.md の存在
|
|
58
57
|
- Scenario: Feature/Scenario の存在、タグ要件、Given/When/Then、契約参照の宣言/形式
|
|
59
58
|
- Traceability: BR→SC、Spec→Contract、SC→Test の接続、BR の所属 SPEC 整合
|
|
60
59
|
- IDs: 定義 ID の重複検知(Spec/Scenario/Contracts)
|