qfai 0.2.6 → 0.2.8
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/contracts/README.md +6 -4
- package/assets/init/.qfai/spec/README.md +6 -3
- package/assets/init/.qfai/spec/decisions/README.md +1 -1
- 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
|
|
|
@@ -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
|
## 良い例 / 悪い例
|
|
@@ -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
|