qfai 0.2.6 → 0.2.9
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 +1 -1
- package/assets/init/.qfai/README.md +1 -1
- package/assets/init/.qfai/contracts/README.md +6 -4
- package/assets/init/.qfai/contracts/api/api-0001-sample.yaml +1 -4
- package/assets/init/.qfai/prompts/README.md +1 -1
- package/assets/init/.qfai/spec/README.md +6 -3
- package/assets/init/.qfai/spec/decisions/ADR-0001.md +1 -1
- package/assets/init/.qfai/spec/decisions/README.md +2 -2
- package/assets/init/root/qfai.config.yaml +1 -1
- package/dist/cli/index.cjs +485 -193
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.mjs +482 -190
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +460 -166
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.mjs +459 -166
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Contracts (UI / API / DB)
|
|
2
2
|
|
|
3
|
-
契約は「システム外部との約束」を明文化する場所です。Scenario から参照される前提で作成します。
|
|
3
|
+
契約は「システム外部との約束」を明文化する場所です。Scenario または Spec から参照される前提で作成します。
|
|
4
4
|
|
|
5
5
|
## 置くべきファイル
|
|
6
6
|
|
|
@@ -44,14 +44,16 @@ CREATE TABLE sample_table (
|
|
|
44
44
|
|
|
45
45
|
## CI でチェックされること(抜粋)
|
|
46
46
|
|
|
47
|
-
- UI:
|
|
48
|
-
-
|
|
47
|
+
- UI/API: パース失敗は error、ID 未定義は error
|
|
48
|
+
- UI: `UI-xxxx` の ID が必要
|
|
49
|
+
- API: OpenAPI 定義があること、`API-xxxx` の operationId が必要
|
|
49
50
|
- DB: 危険 SQL(DROP/TRUNCATE 等)の警告
|
|
50
|
-
- 共通: ID
|
|
51
|
+
- 共通: ID 形式(`PREFIX-0001`)、定義 ID の重複検知
|
|
51
52
|
|
|
52
53
|
## 依存関係
|
|
53
54
|
|
|
54
55
|
- Scenario → Contracts(UI/API/DATA のいずれかへ接続)
|
|
56
|
+
- Spec → Contracts(参照は許容)
|
|
55
57
|
|
|
56
58
|
## 良い例 / 悪い例
|
|
57
59
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenAPI contract sample (API-0001)
|
|
2
2
|
# - 必須: openapi, info, paths
|
|
3
|
-
# -
|
|
3
|
+
# - 重要: operationId に API-0001 のような ID を含める(validate が参照整合に利用)
|
|
4
4
|
openapi: 3.0.0
|
|
5
5
|
info:
|
|
6
6
|
title: QFAI Sample API
|
|
@@ -9,9 +9,6 @@ paths:
|
|
|
9
9
|
/health:
|
|
10
10
|
get:
|
|
11
11
|
operationId: API-0001
|
|
12
|
-
x-qfai-refs:
|
|
13
|
-
- BR-0001
|
|
14
|
-
- SC-0001
|
|
15
12
|
responses:
|
|
16
13
|
"200":
|
|
17
14
|
description: OK
|
|
@@ -52,18 +52,21 @@
|
|
|
52
52
|
## Scenario の最小要件
|
|
53
53
|
|
|
54
54
|
- `@SC-xxxx` / `@SPEC-xxxx` / `@BR-xxxx` をタグで明示
|
|
55
|
+
- Scenario は複数の SPEC を参照してよい(`@SPEC-xxxx` を複数記載可能)
|
|
55
56
|
- `Given / When / Then` を含める
|
|
56
57
|
- UI/API/DATA 契約に接続する(トレーサビリティのエラー回避)
|
|
57
58
|
|
|
58
59
|
## CI でチェックされること(抜粋)
|
|
59
60
|
|
|
60
|
-
- Spec: 必須セクションの有無、SPEC/BR ID の存在、ID
|
|
61
|
-
- Scenario: SC/SPEC/BR の参照、Given/When/Then
|
|
62
|
-
- Traceability: BR→SC、SC→契約(UI/API/DATA
|
|
61
|
+
- Spec: 必須セクションの有無、SPEC/BR ID の存在、ID 形式(`PREFIX-0001`)、Contract 参照の実在性
|
|
62
|
+
- Scenario: SC/SPEC/BR の参照、Given/When/Then の有無、参照IDの実在性
|
|
63
|
+
- Traceability: BR→SC、SC→契約(UI/API/DATA)の接続、BR の所属 SPEC 整合
|
|
64
|
+
- IDs: 定義 ID の重複検知(Spec/Scenario/Contracts)
|
|
63
65
|
|
|
64
66
|
## 依存関係
|
|
65
67
|
|
|
66
68
|
- Spec → Scenario → Contracts
|
|
69
|
+
- Spec → Contracts(参照は許容)
|
|
67
70
|
- Decisions(ADR)→ Spec / BR
|
|
68
71
|
|
|
69
72
|
## 良い例 / 悪い例
|
|
@@ -15,14 +15,14 @@ ADR は「なぜその判断をしたか」を記録するための軽量な意
|
|
|
15
15
|
|
|
16
16
|
- Status: Proposed
|
|
17
17
|
- Context: 承認者を増やすと運用が複雑になる
|
|
18
|
-
- Decision:
|
|
18
|
+
- Decision: 現時点では1段階の承認に固定する
|
|
19
19
|
- Consequences: 多段承認が必要な場合は拡張が必要
|
|
20
20
|
- Related: BR-0001, SPEC-0001
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## CI でチェックされること(抜粋)
|
|
24
24
|
|
|
25
|
-
- ID 形式(`
|
|
25
|
+
- ID 形式(`PREFIX-0001`。ADR を含む)
|
|
26
26
|
- 参照 ID の整合性(トレーサビリティ)
|
|
27
27
|
|
|
28
28
|
## 依存関係
|
|
@@ -2,7 +2,6 @@ paths:
|
|
|
2
2
|
specDir: .qfai/spec
|
|
3
3
|
decisionsDir: .qfai/spec/decisions
|
|
4
4
|
scenariosDir: .qfai/spec/scenarios
|
|
5
|
-
rulesDir: .qfai/rules
|
|
6
5
|
contractsDir: .qfai/contracts
|
|
7
6
|
uiContractsDir: .qfai/contracts/ui
|
|
8
7
|
apiContractsDir: .qfai/contracts/api
|
|
@@ -24,6 +23,7 @@ validation:
|
|
|
24
23
|
brMustHaveSc: true
|
|
25
24
|
scMustTouchContracts: true
|
|
26
25
|
allowOrphanContracts: false
|
|
26
|
+
unknownContractIdSeverity: error
|
|
27
27
|
output:
|
|
28
28
|
format: text
|
|
29
29
|
jsonPath: .qfai/out/validate.json
|