Skip to content

Commit fc5f048

Browse files
committed
ワークフローを更新した
1 parent 51b8e09 commit fc5f048

File tree

5 files changed

+13
-302
lines changed

5 files changed

+13
-302
lines changed

.agent/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313
├── specs/ # 仕様・設計の確定版(ソース・オブ・トゥルース)
1414
│ └── ci-and-dependencies.md # CI・パッケージ管理に関する運用ルール
1515
├── docs/
16-
│ ├── QA_AND_DECISIONS.md # Q&A と設計決定ログ
16+
│ ├── qa.md # Q&A と設計決定ログ
1717
│ ├── tasks.md # リリース時のみ更新する統一インデックス
1818
│ ├── backlog-tasks.md # バージョン未決定タスク & ロードマップ
1919
│ ├── tasks/ # マイナーバージョン別タスク(開発中に随時更新)
2020
│ ├── qa/ # 開発中のQ&A / 決定事項(バージョン別)
2121
│ ├── qa-archive/ # 完了・アーカイブ済みのQ&A(参照用)
2222
│ └── task-archive/ # 完了済みバージョンの保管
23-
└── README.md # この説明書
23+
└── README.md # この説明書
2424
```
2525

2626
## クイックスタート
2727
1. 仕様・設計を追加/変更する場合は `.agent/specs/` を編集。
28-
2. Q&A や設計決定は `.agent/docs/QA_AND_DECISIONS.md` に記録。
28+
2. Q&A や設計決定は `.agent/docs/qa.md` に記録。
2929
3. 開発タスクは `.agent/docs/tasks/vX.Y-tasks.md` で管理(X.Y はマイナーバージョン)。
3030
4. バージョン未決定のタスクは `.agent/docs/backlog-tasks.md` に記載。
3131
5. コード修正・追加・削除時は、関連する specs/docs を同一 PR で同期更新。
@@ -39,13 +39,13 @@
3939

4040
## PR チェックリスト
4141
- 仕様変更は `.agent/specs/` へ反映済みか。
42-
- Q&A や決定事項は `.agent/docs/QA_AND_DECISIONS.md` に記録済みか。
42+
- Q&A や決定事項は `.agent/docs/qa.md` に記録済みか。
4343
- タスクに Issue/PR/Commit のリンクを記載したか。
4444
- PR 本文に「ドキュメント更新」セクションを含めたか。
4545

4646
## 強制ルール(自動化)
4747
- **ルール**: コードの変更は必ず関連する `specs` / `docs` / `tasks` を同一 PR で更新すること。
48-
- もし更新できない場合は、PR に `spec-exception` ラベルを付け、`.agent/docs/QA_AND_DECISIONS.md` に理由と次のアクションを記載すること。
48+
- もし更新できない場合は、PR に `spec-exception` ラベルを付け、`.agent/docs/qa.md` に理由と次のアクションを記載すること。
4949
- CI ワークフローにより PR がコード変更を含むと自動検出された場合、対応する `specs`/`docs` の差分がなければ CI が失敗(または警告)します。
5050

5151
### アーカイブ注意事項

.agent/docs/pr_description_v0.1.4.md

Lines changed: 0 additions & 29 deletions
This file was deleted.
File renamed without changes.

.github/agent-documentation-workflow.ja.md

Lines changed: 4 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
.agent/
99
├── specs/ # 仕様・設計の単一ソース(SoT)
1010
├── docs/
11-
│ ├── qa-index.md # QA インデックス(リリース時に更新)
11+
│ ├── qa.md # QA インデックス(リリース時に更新)
1212
│ ├── tasks.md # タスクリストインデックス(リリース時に更新)
1313
│ ├── qa/ # バージョン別 QA
1414
│ ├── tasks/ # バージョン別タスクリスト
@@ -35,7 +35,7 @@
3535

3636
このディレクトリで管理するドキュメント:
3737

38-
#### **QA_AND_DECISIONS.md** - Q&A と設計決定ログ
38+
#### **qa.md** - Q&A と設計決定ログ
3939
- 形式: `## [カテゴリ] 質問タイトル`
4040
- カテゴリ例: `[API]`, `[UI]`, `[アーキテクチャ]`, `[テスト]`, `[データベース]` など
4141
- 推奨フォーマット:
@@ -51,15 +51,14 @@
5151
```
5252
- 目的: 設計決定とアーキテクチャの議論を記録し、将来の参照用として保管
5353

54-
**QA ファイル分割ルール(v1.20 より採用)**:
54+
**QA ファイル分割ルール**:
5555

5656
QA リストはコンフリクト防止のため、バージョン毎に分割。tasks.md と同じ構造を採用。
5757

5858
**ディレクトリ構成**:
5959
```
6060
.agent/docs/
61-
├── qa-index.md ← インデックス(tasks.md 相当)
62-
├── QA_AND_DECISIONS.md ← レガシー(v1.19 以前用)
61+
├── qa.md ← インデックス(tasks.md 相当)
6362
└── qa/
6463
├── v1.20-qa.md ← v1.20 開発中の Q&A・決定
6564
├── v1.21-qa.md ← v1.21 の Q&A(予定)
@@ -191,134 +190,6 @@ feat: 日付範囲によるドリンクフィルタリングを追加
191190

192191
## 🏗️ 実装ガイドライン
193192

194-
### Store 実装パターン
195-
196-
**責務分離**: Data Stores と Page Stores を厳格に分離
197-
198-
#### Data Stores(`store/data/`
199-
```ts
200-
// 単純な CRUD + リポジトリ呼び出し
201-
const fetchDrinks = async () => {
202-
try {
203-
drinks.value = await $drinksRepository.fetchAll()
204-
} catch (error) {
205-
// 単に再スロー(トーストなし)
206-
throw error
207-
}
208-
}
209-
210-
// 状態は readonly で公開
211-
return {
212-
drinks: readonly(drinks),
213-
fetchDrinks,
214-
}
215-
```
216-
217-
**ルール**:
218-
- ✅ リポジトリを直接呼び出し
219-
- ✅ エラーはそのまま再スロー
220-
- ✅ トーストメッセージは表示しない
221-
- ✅ 状態は `readonly()` で公開
222-
- ❌ 複数ストアの組み合わせなし
223-
- ❌ ビジネスロジック・集約なし
224-
225-
#### Page Stores(`store/pages/`
226-
```ts
227-
// 複数の data store + エラー処理 + トースト表示
228-
const fetchData = async () => {
229-
try {
230-
showLoading()
231-
await drinksStore.fetchDrinks()
232-
// データ集約・変換処理
233-
} catch (error) {
234-
if (error instanceof CustomError) {
235-
showDangerToast(error.getMessage())
236-
}
237-
logger.error('Failed to fetch', { module: 'indexStore' }, error)
238-
} finally {
239-
hideLoading()
240-
}
241-
}
242-
```
243-
244-
**ルール**:
245-
- ✅ 複数のデータストアを組み合わせ
246-
- ✅ エラーをキャッチしてトーストを表示
247-
- ✅ 集約・変換ロジックを実装
248-
- ✅ ログレコーディングを実施
249-
- ✅ ローディング状態を管理
250-
- ❌ リポジトリの直接呼び出しなし
251-
- ❌ エラー処理なしの再スロー
252-
253-
### エラーハンドリング階層図
254-
255-
```
256-
Component
257-
↓ (store action 呼び出し)
258-
Page Store ← トーストを表示、ログ記録
259-
↓ (data store 呼び出し)
260-
Data Store ← 単に再スロー
261-
↓ (repository 呼び出し)
262-
Repository ← CustomError をスロー
263-
264-
Cloudflare API
265-
```
266-
267-
**各層の責務**:
268-
269-
1. **Repository** (`app/utils/api/`)
270-
- Cloudflare API エラーをキャッチ
271-
- `CustomError` に変換してスロー
272-
- メッセージは実装者向け(英語)
273-
274-
2. **Data Store** (`store/data/`)
275-
- エラーを単に再スロー
276-
- 処理なし(Page Store に任せる)
277-
278-
3. **Page Store** (`store/pages/`)
279-
- エラーをキャッチ
280-
- `showDangerToast()` でユーザーに通知
281-
- `logger.error()` でログ記録
282-
- 必要に応じて UI 状態をリセット
283-
284-
4. **Component** (`app/components/`)
285-
- Page Store action を呼び出し
286-
- ストア経由でユーザーに通知
287-
- 直接的なエラー処理は不要
288-
289-
**トースト種類**:
290-
```ts
291-
showSuccessToast('操作が成功しました') //
292-
showInfoToast('確認メッセージです') //
293-
showWarningToast('注意が必要です') //
294-
showDangerToast('エラーが発生しました') //
295-
```
296-
297-
****: 飲み物削除
298-
```ts
299-
// Page Store: deleteAction
300-
const deleteDrink = async (id: number, name: string) => {
301-
try {
302-
showLoading()
303-
await drinksStore.deleteDrink(id)
304-
showSuccessToast(
305-
t(LOCALE_DRINKS_DELETE_SUCCESS, { name })
306-
)
307-
await fetchDrinks() // リロード
308-
} catch (error) {
309-
if (error instanceof CustomError) {
310-
showDangerToast(error.getMessage())
311-
}
312-
logger.error('Failed to delete drink',
313-
{ module: 'drinksStore', drinkId: id },
314-
error
315-
)
316-
} finally {
317-
hideLoading()
318-
}
319-
}
320-
```
321-
322193
### PR レビューチェックリスト
323194

324195
PR を作成またはレビューする際は、以下を確認してください:
@@ -388,7 +259,6 @@ PR を作成またはレビューする際は、以下を確認してくださ
388259
- ❌ 実装なしで仕様を作成する
389260
- ❌ 複数のファイルに情報を重複させる
390261
- ❌ GitHub Issues へのリンクを忘れる
391-
- ❌ 解決済みの質問を `.agent/docs/` に無期限に残す
392262

393263
---
394264

0 commit comments

Comments
 (0)