yodogawa 2.0.0 → 2.1.0

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.
Files changed (75) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +60 -22
  3. package/bin/cli.js +3 -7
  4. package/package.json +1 -1
  5. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  6. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
  7. package/skills/a-002-initialize-project/SKILL.md +124 -289
  8. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  9. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  10. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  11. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  12. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  13. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  14. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  15. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  16. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  17. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  18. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  19. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  20. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  21. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  22. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  23. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  24. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  25. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  26. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  27. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  28. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  29. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  30. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  31. package/skills/a-010-define-design-system/SKILL.md +134 -212
  32. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  33. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  34. package/skills/a-011-define-data-model/SKILL.md +121 -134
  35. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  36. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  37. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  38. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  39. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  40. package/skills/a-013-define-architecture/SKILL.md +101 -128
  41. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  42. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  43. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  44. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  45. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  46. package/skills/a-015-review-design/SKILL.md +88 -140
  47. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  48. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -78
  50. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  51. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  52. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  53. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  54. package/skills/b-003-create-task-research/SKILL.md +130 -454
  55. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  56. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  57. package/skills/b-004-create-task-implementation/SKILL.md +97 -100
  58. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  59. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  60. package/skills/b-005-review-task/SKILL.md +117 -324
  61. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  62. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  63. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  64. package/skills/c-001-implement-task/SKILL.md +186 -521
  65. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  66. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  67. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  68. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  69. package/skills/c-002-update-documentation/SKILL.md +159 -853
  70. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  71. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  72. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  73. package/templates/tasks/task-template/a-definition.md +1 -1
  74. package/templates/tasks/task-template/b-research.md +1 -1
  75. package/templates/tasks/task-template/c-implementation.md +2 -2
@@ -0,0 +1,190 @@
1
+ # プロジェクトドキュメント更新の記載例
2
+
3
+ SKILL.md 手順4で使うテンプレート。要件・ドメイン・設計・README など各ドキュメントに追記するサンプル。
4
+
5
+ ## features-implemented.md
6
+
7
+ ```markdown
8
+ ## ユーザー認証・認可
9
+
10
+ ### メール認証機能(新規追加)
11
+
12
+ **概要**: ユーザー登録時にメールアドレスを検証する機能
13
+
14
+ **実装内容**:
15
+ - ユーザー登録時にメール認証トークンを生成し、メールを送信
16
+ - ユーザーがメール内のリンクをクリックすると、メールアドレスが検証される
17
+ - 検証済みユーザーのみが特定の機能にアクセスできる
18
+
19
+ **主要な機能**:
20
+ - メール認証トークン生成(UUID v4、有効期限 24 時間)
21
+ - メール送信(SendGrid 経由)
22
+ - メール検証エンドポイント(`POST /api/auth/verify-email`)
23
+ - 検証済みフラグ管理(`email_verified` カラム)
24
+
25
+ **関連タスク**: task000001-email-verification
26
+ **実装日**: 2024-01-15
27
+ **PR/MR**: #123
28
+ ```
29
+
30
+ ## features-planned.md
31
+
32
+ - 実装完了した機能をリストから削除
33
+ - または、ステータスを「実装済み」に変更し `02-features-implemented.md` への参照を追加
34
+
35
+ ## domain-model.md
36
+
37
+ ```markdown
38
+ ## User(ユーザー)
39
+
40
+ **概要**: システムのユーザーアカウント
41
+
42
+ **属性**:
43
+ - id: ユーザーID(UUID)
44
+ - email: メールアドレス(必須、一意)
45
+ - password_hash: パスワードハッシュ(必須)
46
+ - email_verified: メール検証済みフラグ(新規追加)
47
+ - email_verification_token: メール検証トークン(新規追加)
48
+ - email_verification_expires_at: トークン有効期限(新規追加)
49
+
50
+ **振る舞い**:
51
+ - register(): ユーザー登録
52
+ - sendVerificationEmail(): 検証メール送信(新規追加)
53
+ - verifyEmail(token): メール検証(新規追加)
54
+ - login() / logout()
55
+
56
+ **制約**:
57
+ - メールアドレスは一意
58
+ - 検証トークンは24時間で期限切れ(新規追加)
59
+ - パスワードは最低8文字
60
+ ```
61
+
62
+ ## ubiquitous-language.md
63
+
64
+ ```markdown
65
+ ## メール検証(Email Verification)
66
+
67
+ **定義**: ユーザーが登録したメールアドレスが有効であることを確認するプロセス
68
+ **コンテキスト**: ユーザー認証・認可
69
+ **関連用語**: メール検証トークン、検証済みフラグ
70
+
71
+ ## メール検証トークン(Email Verification Token)
72
+
73
+ **定義**: メールアドレスの所有権を確認するための一時的なトークン
74
+ **技術的詳細**: UUID v4、有効期限 24 時間、一度使用したら無効化
75
+ ```
76
+
77
+ ## data-model.md
78
+
79
+ ```markdown
80
+ ## users テーブル
81
+
82
+ | カラム名 | データ型 | NULL | デフォルト値 | 説明 | 追加日 |
83
+ |---------|---------|------|------------|------|--------|
84
+ | id | UUID | NOT NULL | gen_random_uuid() | ユーザーID | 2024-01-10 |
85
+ | email | VARCHAR(255) | NOT NULL | - | メールアドレス(一意) | 2024-01-10 |
86
+ | password_hash | VARCHAR(255) | NOT NULL | - | パスワードハッシュ | 2024-01-10 |
87
+ | email_verified | BOOLEAN | NOT NULL | false | メール検証済みフラグ | 2024-01-15(新規) |
88
+ | email_verification_token | UUID | NULL | - | 検証トークン | 2024-01-15(新規) |
89
+ | email_verification_expires_at | TIMESTAMP | NULL | - | トークン有効期限 | 2024-01-15(新規) |
90
+
91
+ **インデックス**:
92
+ - PRIMARY KEY: id
93
+ - UNIQUE: email
94
+ - INDEX: email_verification_token(新規追加)
95
+ ```
96
+
97
+ ## api-spec.md
98
+
99
+ ```markdown
100
+ ## POST /api/auth/verify-email
101
+
102
+ **概要**: メール検証トークンを使用してメールアドレスを検証する
103
+ **認証**: 不要
104
+
105
+ **リクエスト**:
106
+ {
107
+ "token": "550e8400-e29b-41d4-a716-446655440000"
108
+ }
109
+
110
+ **レスポンス(成功)**:
111
+ {
112
+ "message": "Email verified successfully",
113
+ "userId": "123e4567-e89b-12d3-a456-426614174000"
114
+ }
115
+
116
+ **レスポンス(エラー)**:
117
+ - 400 Bad Request: トークンが無効または期限切れ
118
+ - 404 Not Found: ユーザーが見つからない
119
+ ```
120
+
121
+ ## screen-design.md
122
+
123
+ ```markdown
124
+ ## メール検証完了画面
125
+
126
+ **パス**: `/verify-email?token={token}`
127
+
128
+ **UI コンポーネント**:
129
+ - ヘッダー(アプリ名、ロゴ)
130
+ - メッセージエリア(成功/失敗時のメッセージ)
131
+ - アクションボタン(ログイン / 検証メール再送信)
132
+
133
+ **画面遷移**:
134
+ - 成功時: ログイン画面(/login)へ
135
+ - 失敗時: 検証メール再送信画面へ
136
+
137
+ **実装ファイル**: `src/pages/VerifyEmail.tsx`
138
+ ```
139
+
140
+ ## README.md
141
+
142
+ ```markdown
143
+ ## 環境変数設定
144
+
145
+ `.env.example` をコピーして `.env` ファイルを作成:
146
+
147
+ - `DATABASE_URL`: データベース接続URL
148
+ - `JWT_SECRET`: JWT トークンの秘密鍵
149
+ - `SENDGRID_API_KEY`: SendGrid API キー(新規追加)
150
+ - `SENDGRID_FROM_EMAIL`: 送信元メールアドレス(新規追加)
151
+
152
+ ## 主な機能
153
+
154
+ - ユーザー登録・ログイン
155
+ - **メール認証(新規追加)**
156
+ - パスワードリセット
157
+ - プロフィール管理
158
+ ```
159
+
160
+ ## CHANGELOG.md
161
+
162
+ ```markdown
163
+ ## [Unreleased]
164
+
165
+ ### Added
166
+ - メール認証機能を実装(task000001-email-verification)
167
+ - メール検証用エンドポイント(`POST /api/auth/verify-email`)
168
+ - メール検証トークン管理(有効期限 24 時間)
169
+ - SendGrid 統合によるメール送信
170
+
171
+ ### Changed
172
+ - User テーブルに `email_verified`, `email_verification_token`, `email_verification_expires_at` カラムを追加
173
+ ```
174
+
175
+ ## .env.example
176
+
177
+ ```bash
178
+ # データベース
179
+ DATABASE_URL=postgresql://user:password@localhost:5432/myapp
180
+
181
+ # JWT
182
+ JWT_SECRET=your-jwt-secret-key
183
+
184
+ # メール送信(新規追加)
185
+ SENDGRID_API_KEY=your-sendgrid-api-key
186
+ SENDGRID_FROM_EMAIL=noreply@example.com
187
+
188
+ # アプリケーション
189
+ APP_URL=http://localhost:3000
190
+ ```
@@ -0,0 +1,102 @@
1
+ # タスクドキュメント更新の記載例
2
+
3
+ SKILL.md 手順3で使うテンプレート。a-definition.md / b-research.md / c-implementation.md に追記する実装時の情報サンプル。
4
+
5
+ ## a-definition.md
6
+
7
+ ### 実装時の技術的決定
8
+
9
+ ```markdown
10
+ ## 実装時の技術的決定
11
+
12
+ - **決定**: TypeORM から Prisma に変更
13
+ - **理由**: マイグレーション管理が容易、型安全性が高い
14
+ - **影響**: データアクセス層のコード変更、マイグレーションファイルの再作成
15
+
16
+ - **決定**: JWT トークンの有効期限を 24h から 1h に変更
17
+ - **理由**: セキュリティ向上
18
+ - **影響**: リフレッシュトークン機能の追加実装
19
+ ```
20
+
21
+ ### 実装結果
22
+
23
+ ```markdown
24
+ ## 実装結果
25
+
26
+ - **実装日**: 2024-01-15
27
+ - **実装者**: {名前}
28
+ - **ブランチ**: task/task000001-email-verification
29
+ - **PR/MR**: #123
30
+ - **テスト結果**:
31
+ - ユニットテスト: 100% 通過 (カバレッジ 85%)
32
+ - 統合テスト: 100% 通過
33
+ - E2E テスト: 100% 通過
34
+ - **デプロイ**: staging 環境にデプロイ済み
35
+ ```
36
+
37
+ ## b-research.md
38
+
39
+ ### 実装時に発見したベストプラクティス
40
+
41
+ ```markdown
42
+ ## 実装時に発見したベストプラクティス
43
+
44
+ - **Email 検証**: SendGrid の Webhook を使用して配信状態を追跡
45
+ - **トークン管理**: Redis にトークンを保存し、自動期限切れを利用
46
+ - **エラーハンドリング**: Zod を使用してバリデーションエラーを統一
47
+ ```
48
+
49
+ ### 技術的リスクの結果
50
+
51
+ ```markdown
52
+ ## 技術的リスクの結果
53
+
54
+ - **リスク**: Email 送信の遅延
55
+ - **結果**: SendGrid の非同期処理で解決、平均送信時間 2 秒
56
+ - **軽減策**: ジョブキューによる非同期処理を実装
57
+
58
+ - **リスク**: トークンの衝突
59
+ - **結果**: UUID v4 使用により衝突なし
60
+ - **軽減策**: 不要
61
+ ```
62
+
63
+ ## c-implementation.md
64
+
65
+ ### 実装メモの追記
66
+
67
+ ```markdown
68
+ - [x] **ステップ 1:** データベーススキーマの定義
69
+ - **成果物:** `migrations/001_create_users_table.sql`
70
+ - **詳細:** User テーブルに `email_verified`, `email_verification_token`, `email_verification_expires_at` カラムを追加
71
+ - **実装メモ**:
72
+ - Prisma migrate を使用
73
+ - 既存ユーザーには email_verified = false をデフォルト設定
74
+ - インデックスを email_verification_token に追加(検索高速化)
75
+ ```
76
+
77
+ ### 実装時間の記録
78
+
79
+ ```markdown
80
+ ## フェーズ 1: データモデルと API の実装
81
+
82
+ **実装時間**: 4 時間(見積もり: 3 時間)
83
+ ```
84
+
85
+ ### 振り返りセクション
86
+
87
+ ```markdown
88
+ ## 振り返り
89
+
90
+ ### うまくいったこと
91
+ - Prisma の型安全性により、コンパイル時にエラーを検出できた
92
+ - TDD アプローチで品質を担保できた
93
+ - ステップを小さく分けたことで、進捗管理が容易だった
94
+
95
+ ### 改善すべきこと
96
+ - Email 送信のテストが複雑だった(モックの設定に時間がかかった)
97
+ - トークン生成ロジックの設計に予想以上に時間がかかった
98
+
99
+ ### 次のタスクへのフィードバック
100
+ - Email 送信のモックユーティリティを共通化する
101
+ - トークン生成ロジックを再利用可能なライブラリとして抽出する
102
+ ```
@@ -0,0 +1,100 @@
1
+ # ドキュメント構造と整合性チェック
2
+
3
+ SKILL.md 手順5(整合性検証)とベストプラクティスで参照する詳細資料。
4
+
5
+ ## ドキュメント整合性の検証項目
6
+
7
+ ### クロスリファレンスの確認
8
+
9
+ - [ ] **要件 ↔ ドメインモデル**: features-implemented.md の機能が domain-model.md に反映されているか
10
+ - [ ] **ドメインモデル ↔ データモデル**: domain-model.md のエンティティが data-model.md のテーブルに対応しているか
11
+ - [ ] **ドメインモデル ↔ API 仕様**: domain-model.md の振る舞いが api-spec.md のエンドポイントに対応しているか
12
+ - [ ] **API 仕様 ↔ 実装**: api-spec.md のエンドポイントが実際に実装されているか
13
+ - [ ] **データモデル ↔ 実装**: data-model.md のテーブル定義がマイグレーションファイルと一致しているか
14
+
15
+ ### 用語の一貫性確認
16
+
17
+ - [ ] ドキュメント全体で同じ用語を使用しているか
18
+ - [ ] ubiquitous-language.md に記載された用語が各ドキュメントで使用されているか
19
+ - [ ] コード内のクラス名・変数名がドメイン用語と一致しているか
20
+
21
+ ### リンク切れの確認
22
+
23
+ - [ ] 内部リンクが正しいパスを指しているか
24
+ - [ ] 参照先のドキュメント・セクションが存在するか
25
+
26
+ ## ドキュメント品質のレビュー観点
27
+
28
+ - [ ] **正確性**: 実装内容と一致しているか
29
+ - [ ] **完全性**: すべての変更が記載されているか
30
+ - [ ] **明確性**: 第三者が理解できる内容か
31
+ - [ ] **一貫性**: ドキュメント間で用語・形式が統一されているか
32
+ - [ ] **最新性**: 古い情報が削除されているか
33
+
34
+ ## ベストプラクティス
35
+
36
+ - **実装直後に更新**: 記憶が新しいうちに記録する
37
+ - **差異を記録**: 計画と実装の差異は必ず記録し、次のタスクへのフィードバックとする
38
+ - **スクリーンショット活用**: UI 変更の場合、スクリーンショットを添付して視覚的に記録
39
+ - **リンクを活用**: ドキュメント間でリンクを張り、関連情報にすぐアクセスできるようにする
40
+ - **バージョン管理**: ドキュメントもコードと同様に Git で管理
41
+ - **段階的更新**: 大規模な更新は段階的に行い、一度に全てを更新しない
42
+ - **レビューを受ける**: 重要な更新はチームレビューで正確性を担保
43
+ - **テンプレート活用**: 繰り返し更新するドキュメントはテンプレート化
44
+ - **自動化**: 可能な部分は自動化(API ドキュメント生成、データモデル図生成など)
45
+ - **定期的な棚卸し**: ドキュメント全体を定期的にレビューし古い情報を削除
46
+
47
+ ## ドキュメント構造の参考
48
+
49
+ ### タスクレベル(`docs/tasks/task{id}-{スラッグ}/`)
50
+
51
+ - `a-definition.md`: タスク定義(目的、ユーザーストーリー、受け入れ基準)
52
+ - `b-research.md`: リサーチ(ベストプラクティス、技術選定)
53
+ - `c-implementation.md`: 実装タスクリスト(フェーズ、ステップ)
54
+
55
+ ### プロジェクトレベル(`docs/`)
56
+
57
+ - `01-requirements/`: 要件定義
58
+ - `02-features-implemented.md`: 実装済み機能
59
+ - `03-features-planned.md`: 計画中機能
60
+ - `05-user-stories.md`: ユーザーストーリー
61
+ - `03-domain/`: ドメイン
62
+ - `01-domain-model.md`: ドメインモデル
63
+ - `02-ubiquitous-language.md`: ユビキタス言語
64
+ - `04-design/`: 設計
65
+ - `03-screen-design.md`: 画面設計
66
+ - `04-data-model.md`: データモデル
67
+ - `05-api-spec.md`: API 仕様
68
+ - `06-architecture.md`: アーキテクチャ
69
+
70
+ ### その他
71
+
72
+ - `README.md`: プロジェクト概要、セットアップ手順
73
+ - `CHANGELOG.md`: 変更履歴
74
+ - `.env.example`: 環境変数テンプレート
75
+
76
+ ## 自動化のヒント
77
+
78
+ 将来的に、以下のスクリプトでドキュメント更新を一部自動化することを検討:
79
+
80
+ - `scripts/update-docs.sh`: コミットログから変更内容を抽出してドラフトを作成
81
+ - `scripts/generate-api-docs.sh`: コードから API 仕様書を生成
82
+
83
+ ## コミットメッセージのテンプレート
84
+
85
+ ```
86
+ docs(task-{task-id}): update documentation for {機能名}
87
+
88
+ Task-level documentation:
89
+ - Update a-definition.md with implementation results
90
+ - Update b-research.md with discovered best practices
91
+ - Update c-implementation.md with implementation notes and retrospective
92
+
93
+ Project-level documentation:
94
+ - Add {機能名} to features-implemented.md
95
+ - Update domain-model.md / data-model.md / api-spec.md
96
+ - Update README.md with setup instructions
97
+ - Add changelog entry
98
+
99
+ Related: task{task-id}-{スラッグ}
100
+ ```
@@ -3,7 +3,7 @@
3
3
  <!--
4
4
  このドキュメントについて:
5
5
  - 格納場所: docs/tasks/task000001-{スラッグ}/a-definition.md
6
- - 作成方法: /b-001-CreateTaskDefinition ワークフローで作成
6
+ - 作成方法: /b-001-CreateTaskDefinition スキルで作成
7
7
  - 関連ドキュメント:
8
8
  - b-research.md (リサーチドキュメント)
9
9
  - c-implementation.md (実装タスクリスト)
@@ -3,7 +3,7 @@
3
3
  <!--
4
4
  このドキュメントについて:
5
5
  - 格納場所: docs/tasks/task000001-{スラッグ}/b-research.md
6
- - 作成方法: /b-002-CreateTaskResearch ワークフローで作成
6
+ - 作成方法: /b-002-CreateTaskResearch スキルで作成
7
7
  - 前提条件: a-definition.md が作成済みであること
8
8
  - 関連ドキュメント:
9
9
  - a-definition.md (タスク定義ドキュメント)
@@ -3,8 +3,8 @@
3
3
  <!--
4
4
  このドキュメントについて:
5
5
  - 格納場所: docs/tasks/task000001-{スラッグ}/c-implementation.md
6
- - 作成方法: /b-003-CreateTaskImplementation ワークフローで作成
7
- - 実行方法: /c-001-ImplementTask ワークフローで各ステップを実行
6
+ - 作成方法: /b-003-CreateTaskImplementation スキルで作成
7
+ - 実行方法: /c-001-ImplementTask スキルで各ステップを実行
8
8
  - 前提条件: a-definition.md と b-research.md が作成済みであること
9
9
  - 関連ドキュメント:
10
10
  - a-definition.md (タスク定義ドキュメント)