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 CHANGED
@@ -1,4 +1,4 @@
1
- # QFAI Toolkit (v0.2.6)
1
+ # QFAI Toolkit (v0.2.8)
2
2
 
3
3
  Single-package distribution for QFAI.
4
4
 
@@ -31,7 +31,7 @@ npx qfai report --json-path .qfai/out/validate.json --out .qfai/out/report.md
31
31
 
32
32
  ## Prompts の使い方(重要)
33
33
 
34
- `prompts/` は **人間が手動で使う資産**です。v0.2.6 では自動読取を行いません。
34
+ `prompts/` は **人間が手動で使う資産**です。現時点では自動読取は行いません(将来のバージョンで CLI 連携を検討します)。
35
35
 
36
36
  例:
37
37
 
@@ -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: YAML 解析、`id` `UI-` で始まる
48
- - API: OpenAPI 定義があること
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
- # - 参照: BR/SC ID x-qfai-refs に記載
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
@@ -1,6 +1,6 @@
1
1
  # Prompts (手動利用)
2
2
 
3
- このディレクトリのプロンプトは **手動で使う資産**です。v0.2.6 では自動読取を行いません。
3
+ このディレクトリのプロンプトは **手動で使う資産**です。現時点では自動読取は行いません(将来のバージョンで CLI 連携を検討します)。
4
4
 
5
5
  ## 目的
6
6
 
@@ -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
  ## 良い例 / 悪い例
@@ -4,6 +4,6 @@
4
4
 
5
5
  - Status: Proposed
6
6
  - Context: 承認者を増やすと運用が複雑になる
7
- - Decision: v0.2.6 では1段階の承認に固定する
7
+ - Decision: 現時点では1段階の承認に固定する
8
8
  - Consequences: 多段承認が必要な場合は拡張が必要
9
9
  - Related: BR-0001, SPEC-0001
@@ -15,14 +15,14 @@ ADR は「なぜその判断をしたか」を記録するための軽量な意
15
15
 
16
16
  - Status: Proposed
17
17
  - Context: 承認者を増やすと運用が複雑になる
18
- - Decision: v0.2.6 では1段階の承認に固定する
18
+ - Decision: 現時点では1段階の承認に固定する
19
19
  - Consequences: 多段承認が必要な場合は拡張が必要
20
20
  - Related: BR-0001, SPEC-0001
21
21
  ```
22
22
 
23
23
  ## CI でチェックされること(抜粋)
24
24
 
25
- - ID 形式(`BR-xxxx` / `SPEC-xxxx` など)
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