qfai 1.0.2 → 1.0.3

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
@@ -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
  }
@@ -157,6 +157,8 @@ analyze も `.qfai/prompts.local/**` の overlay 運用に従います。
157
157
  Spec では `QFAI-CONTRACT-REF:` 行で参照する契約IDを宣言します(`none` 可)。Spec の先頭 H1 に `SPEC-xxxx` が必須です。
158
158
  Scenario では `# QFAI-CONTRACT-REF:` のコメント行で契約参照を宣言します(`none` 可)。
159
159
  契約ファイルは `QFAI-CONTRACT-ID: <ID>` を **1ファイル1ID** で宣言します。
160
+ 契約IDは UI/API/DB/THEMA(THEMA は 3 桁)です。UI 契約は `themaRef` / `themeOverrides` / `assets` を追加できます。
161
+ `assets.pack` は `ui/` 配下の相対パス、`assets.use` は `assets.yaml` の `items[].id` を参照します。
160
162
  `validate.json` / `report` の file path は root 相対で出力します(absolute は出力しません)。
161
163
 
162
164
  ## Monorepo / サブディレクトリ
@@ -278,6 +280,14 @@ qfai.config.yaml
278
280
  api-0001-sample.yaml
279
281
  ui/
280
282
  ui-0001-sample.yaml
283
+ thema-001-facebook-like.yml
284
+ assets/
285
+ ui-0001-sample/
286
+ assets.yaml
287
+ snapshots/login__desktop__light__default.png
288
+ thema-001-facebook-like/
289
+ assets.yaml
290
+ palette.png
281
291
  db/
282
292
  db-0001-sample.sql
283
293
  out/
@@ -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)
@@ -0,0 +1,6 @@
1
+ packId: THEMA-001
2
+ type: thema
3
+ items:
4
+ - id: THEMA-001.palette.default
5
+ kind: snapshot
6
+ path: palette.png
@@ -0,0 +1,6 @@
1
+ packId: UI-0001
2
+ type: ui
3
+ items:
4
+ - id: UI-0001.desktop.light.default
5
+ kind: snapshot
6
+ path: snapshots/login__desktop__light__default.png
@@ -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"
@@ -6,3 +6,12 @@ id: UI-0001
6
6
  name: Order Registration
7
7
  refs:
8
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
@@ -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
 
@@ -3,7 +3,7 @@ Feature: 注文登録
3
3
 
4
4
  Rule: 承認者が存在する
5
5
 
6
- # QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001
6
+ # QFAI-CONTRACT-REF: UI-0001, API-0001, DB-0001, THEMA-001
7
7
  @SC-0001 @BR-0001
8
8
  Scenario: 承認者が承認するまで注文は確定しない
9
9
  Given ...
@@ -1,6 +1,6 @@
1
1
  # SPEC-0001: 注文登録の最小仕様(サンプル)
2
2
 
3
- QFAI-CONTRACT-REF: API-0001, UI-0001, DB-0001
3
+ QFAI-CONTRACT-REF: API-0001, UI-0001, DB-0001, THEMA-001
4
4
 
5
5
  > このテンプレは **最小例** です。実際の仕様に合わせて書き換えてください。
6
6