@k2works/claude-code-booster 0.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/bin/claude-code-booster +28 -0
  4. package/lib/assets/.claude/.mcp.json +45 -0
  5. package/lib/assets/.claude/README.md +169 -0
  6. package/lib/assets/.claude/agents/roles/analyzer.md +267 -0
  7. package/lib/assets/.claude/agents/roles/architect.md +233 -0
  8. package/lib/assets/.claude/agents/roles/backend.md +303 -0
  9. package/lib/assets/.claude/agents/roles/frontend.md +294 -0
  10. package/lib/assets/.claude/agents/roles/mobile.md +309 -0
  11. package/lib/assets/.claude/agents/roles/performance.md +254 -0
  12. package/lib/assets/.claude/agents/roles/qa.md +266 -0
  13. package/lib/assets/.claude/agents/roles/reviewer.md +252 -0
  14. package/lib/assets/.claude/agents/roles/security.md +392 -0
  15. package/lib/assets/.claude/assets/confirm.mp3 +0 -0
  16. package/lib/assets/.claude/assets/perfect.mp3 +0 -0
  17. package/lib/assets/.claude/assets/silent.wav +0 -0
  18. package/lib/assets/.claude/commands/analyze-dependencies.md +158 -0
  19. package/lib/assets/.claude/commands/analyze-performance.md +116 -0
  20. package/lib/assets/.claude/commands/check-fact.md +104 -0
  21. package/lib/assets/.claude/commands/check-github-ci.md +53 -0
  22. package/lib/assets/.claude/commands/check-prompt.md +461 -0
  23. package/lib/assets/.claude/commands/commit-message.md +348 -0
  24. package/lib/assets/.claude/commands/context7.md +50 -0
  25. package/lib/assets/.claude/commands/design-patterns.md +186 -0
  26. package/lib/assets/.claude/commands/explain-code.md +75 -0
  27. package/lib/assets/.claude/commands/fix-error.md +258 -0
  28. package/lib/assets/.claude/commands/multi-role.md +291 -0
  29. package/lib/assets/.claude/commands/plan.md +134 -0
  30. package/lib/assets/.claude/commands/pr-auto-update.md +460 -0
  31. package/lib/assets/.claude/commands/pr-create.md +249 -0
  32. package/lib/assets/.claude/commands/pr-feedback.md +143 -0
  33. package/lib/assets/.claude/commands/pr-issue.md +78 -0
  34. package/lib/assets/.claude/commands/pr-list.md +66 -0
  35. package/lib/assets/.claude/commands/pr-review.md +142 -0
  36. package/lib/assets/.claude/commands/refactor.md +147 -0
  37. package/lib/assets/.claude/commands/role-debate.md +571 -0
  38. package/lib/assets/.claude/commands/role-help.md +276 -0
  39. package/lib/assets/.claude/commands/role.md +360 -0
  40. package/lib/assets/.claude/commands/screenshot.md +103 -0
  41. package/lib/assets/.claude/commands/search-gemini.md +66 -0
  42. package/lib/assets/.claude/commands/semantic-commit.md +1129 -0
  43. package/lib/assets/.claude/commands/sequential-thinking.md +90 -0
  44. package/lib/assets/.claude/commands/show-plan.md +59 -0
  45. package/lib/assets/.claude/commands/smart-review.md +174 -0
  46. package/lib/assets/.claude/commands/spec.md +559 -0
  47. package/lib/assets/.claude/commands/style-ai-writing.md +186 -0
  48. package/lib/assets/.claude/commands/task.md +223 -0
  49. package/lib/assets/.claude/commands/tech-debt.md +87 -0
  50. package/lib/assets/.claude/commands/ultrathink.md +65 -0
  51. package/lib/assets/.claude/commands/update-dart-doc.md +202 -0
  52. package/lib/assets/.claude/commands/update-doc-string.md +306 -0
  53. package/lib/assets/.claude/commands/update-flutter-deps.md +105 -0
  54. package/lib/assets/.claude/commands/update-node-deps.md +105 -0
  55. package/lib/assets/.claude/commands/update-rust-deps.md +107 -0
  56. package/lib/assets/.claude/scripts/auto-comment.sh +16 -0
  57. package/lib/assets/.claude/scripts/check-ai-commit.sh +20 -0
  58. package/lib/assets/.claude/scripts/check-continue.sh +97 -0
  59. package/lib/assets/.claude/scripts/check-locales.sh +1080 -0
  60. package/lib/assets/.claude/scripts/check-project-plan.sh +25 -0
  61. package/lib/assets/.claude/scripts/debug-hook.sh +7 -0
  62. package/lib/assets/.claude/scripts/deny-check.sh +69 -0
  63. package/lib/assets/.claude/scripts/install.sh +174 -0
  64. package/lib/assets/.claude/scripts/ja-space-exclusions.json +18 -0
  65. package/lib/assets/.claude/scripts/ja-space-format.sh +45 -0
  66. package/lib/assets/.claude/scripts/preserve-file-permissions.sh +83 -0
  67. package/lib/assets/.claude/scripts/statusline.sh +153 -0
  68. package/lib/assets/.claude/settings.json +164 -0
  69. package/lib/assets/.claude/settings.local.json +14 -0
  70. package/lib/assets/.github/workflows/mkdocs.yml +32 -0
  71. package/lib/assets/CLAUDE.md +319 -0
  72. package/lib/assets/Dockerfile +77 -0
  73. package/lib/assets/README.md +51 -0
  74. package/lib/assets/app/.gitkeep +0 -0
  75. package/lib/assets/docker-compose.yml +22 -0
  76. package/lib/assets/docs/Dockerfile +19 -0
  77. package/lib/assets/docs/adr/.gitkeep +0 -0
  78. package/lib/assets/docs/assets/css/extra.css +30 -0
  79. package/lib/assets/docs/assets/js/extra.js +45 -0
  80. package/lib/assets/docs/design/.gitkeep +0 -0
  81. package/lib/assets/docs/development/.gitkeep +0 -0
  82. package/lib/assets/docs/index.md +13 -0
  83. package/lib/assets/docs/operation/.gitkeep +0 -0
  84. package/lib/assets/docs/reference/.gitkeep +0 -0
  85. package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +220 -0
  86. package/lib/assets/docs/reference//343/202/242/343/202/270/343/203/243/343/202/244/343/203/253/343/201/252/350/246/213/347/251/215/343/201/250/350/250/210/347/224/273/343/201/245/343/201/217/343/202/212.md +789 -0
  87. package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +554 -0
  88. package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1249 -0
  89. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +556 -0
  90. package/lib/assets/docs/requirements/.gitkeep +0 -0
  91. package/lib/assets/docs/template/.gitkeep +0 -0
  92. package/lib/assets/docs/template/ADR.md +30 -0
  93. package/lib/assets/docs/template/README.md +50 -0
  94. package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +12 -0
  95. package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +59 -0
  96. package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +13 -0
  97. package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +646 -0
  98. package/lib/assets/docs/template//350/250/255/350/250/210.md +164 -0
  99. package/lib/assets/gulpfile.js +18 -0
  100. package/lib/assets/mkdocs.yml +59 -0
  101. package/lib/assets/package-lock.json +3960 -0
  102. package/lib/assets/package.json +31 -0
  103. package/lib/assets/scripts/journal.js +170 -0
  104. package/lib/assets/scripts/mkdocs.js +59 -0
  105. package/lib/gulpfile.js +37 -0
  106. package/main.js +0 -0
  107. package/package.json +39 -0
@@ -0,0 +1,556 @@
1
+ # 開発ガイド
2
+
3
+ ## 開発ライフサイクル
4
+
5
+ 分析では、アプリケーションの機能や性能、品質、セキュリティ、運用、保守などの要件をまとめる活動を行います。
6
+ 開発では要件を満たすための設計、実装、テストなどの活動を行います。
7
+ 運用では、アプリケーションの運用、保守、改善などの活動を行います。
8
+ 構築では、アプリケーションの環境設定を行います。
9
+ 配置では、アプリケーションのビルドとデプロイを行います。
10
+ これらの活動は相互に影響し合い、連携して行われるため、それぞれの活動において、開発者が守るべき規則やガイドラインをまとめたドキュメントを参照してください。
11
+
12
+ ```plantuml
13
+ @startuml
14
+ [*] --> 分析
15
+ 分析 --> 開発
16
+ 分析 -right-> 運用
17
+ 運用 -left-> 分析
18
+ 開発 -left-> 分析
19
+ 開発 --> 運用
20
+ 運用 --> 開発
21
+ 運用 --> 配置
22
+ 運用 -up-> 構築
23
+ 構築 --> 配置
24
+ 運用 ---> [*]
25
+
26
+ state 分析 #yellow
27
+ state 構築 #limegreen
28
+ state 運用 #orange
29
+ state 開発 #red
30
+ state 配置 #lightblue
31
+ @enduml
32
+ ```
33
+
34
+ アプリケーション開発は、アジャイル開発手法(XP)に基づいて進めます。
35
+
36
+ 詳細は [エクストリームプログラミング](エクストリームプログラミング) を参照。
37
+
38
+ ## 分析
39
+
40
+ ```plantuml
41
+ @startuml "Phase 1"
42
+ |要件定義|
43
+ start
44
+ :要件定義;
45
+ :ユーザーストーリー;
46
+ :ユースケース;
47
+
48
+ |機能要件|
49
+ :アーキテクチャ設計;
50
+ :データモデル設計;
51
+ :ドメインモデル設計;
52
+ :UI設計;
53
+
54
+ |非機能要件|
55
+ :テスト戦略策定;
56
+ :非機能要件定義;
57
+ :運用要件定義;
58
+
59
+ |要件定義|
60
+ :技術スタック選定;
61
+ :ADR作成;
62
+ :リリース計画;
63
+
64
+ stop
65
+
66
+ @enduml
67
+ ```
68
+
69
+ ### 要件定義
70
+
71
+ ```plantuml
72
+ @startuml
73
+
74
+ title RDRA要件定義の全体構造
75
+
76
+ left to right direction
77
+
78
+ package "システム価値" as sp {
79
+ rectangle "システムコンテキスト" as sc
80
+ rectangle "要求モデル" as rm
81
+ }
82
+
83
+ package "システム外部環境" as se {
84
+ rectangle "ビジネスコンテキスト" as bc
85
+ rectangle "ビジネスユースケース" as buc
86
+ rectangle "業務フロー" as bf
87
+ rectangle "利用シーン" as us
88
+ }
89
+
90
+ package "システム境界" as sb {
91
+ rectangle "ユースケース複合図" as ucc
92
+ rectangle "画面・帳票モデル" as ui
93
+ rectangle "イベントモデル" as em
94
+ }
95
+
96
+ package "システム" as sys {
97
+ rectangle "情報モデル" as im
98
+ rectangle "状態モデル" as sm
99
+ }
100
+
101
+ sp --> se : "価値を実現する\n環境を明確化"
102
+ se --> sb : "環境での\n接点を定義"
103
+ sb --> sys : "接点を実現する\nシステムを設計"
104
+
105
+ sc --> bc : "アクター"
106
+ rm --> buc : "要求"
107
+ buc --> ucc : "ユースケース"
108
+ bf --> ucc : "アクティビティ"
109
+ us --> ucc : "利用シーン"
110
+ ucc --> im : "情報"
111
+ ucc --> sm : "状態"
112
+
113
+ @enduml
114
+ ```
115
+
116
+ 要件定義の詳細は[要件定義ガイド](要件定義ガイド)を参照
117
+
118
+ ### リリース計画
119
+
120
+ ```plantuml
121
+ @startuml
122
+
123
+ [*] --> リリース
124
+
125
+ state リリース {
126
+ 満足条件1: (ユーザーストーリー、予算、スケジュール)
127
+ 満足条件1 -->リリースプランニング
128
+ リリースプランニング --> 満足条件1
129
+ }
130
+
131
+ state イテレーション {
132
+ リリースプランニング --> 満足条件2
133
+ 満足条件2: (ユーザーストーリー、予算、スケジュール)
134
+ 満足条件2 --> イテレーションプランニング
135
+ イテレーションプランニング --> 満足条件2
136
+ イテレーションプランニング --> 開発
137
+ 開発 --> フィーチャが追加された状態
138
+ フィーチャが追加された状態 --> 満足条件2 : フィードバック
139
+ フィーチャが追加された状態 --> 満足条件1 : フィードバック
140
+ }
141
+
142
+ リリース --> [*]
143
+
144
+ @enduml
145
+ ```
146
+
147
+ 計画づくりの詳細は [アジャイルな見積と計画づくり](アジャイルな見積と計画づくり) を参照。
148
+
149
+
150
+ ### 機能要件
151
+
152
+ #### アーキテクチャ設計
153
+
154
+ モノレポを標準とする。
155
+ アプリケーションは、バックエンドとフロントエンドの2つの主要コンポーネントで構成されています。
156
+
157
+ ##### 全体構成
158
+
159
+ ```plantuml
160
+ @startuml
161
+ package "アプリケーション" {
162
+ package "フロントエンド" {
163
+ [Webアプリケーション] as WebApp
164
+ }
165
+
166
+ package "バックエンド" {
167
+ [APIサーバー] as API
168
+ database "データベース" as DB
169
+ }
170
+
171
+ WebApp --> API : HTTP/REST
172
+ API --> DB : SQL/NoSQL
173
+ }
174
+ @endtuml
175
+ ```
176
+
177
+ ##### パターン
178
+
179
+ ```plantuml
180
+ @startuml
181
+ !define DECISION_COLOR #FFE6CC
182
+ !define PROCESS_COLOR #E6F3FF
183
+ !define TERMINAL_COLOR #E6FFE6
184
+
185
+ skinparam roundcorner 10
186
+ skinparam shadowing false
187
+
188
+ start
189
+
190
+ if (業務領域のカテゴリー) then (補完、一般との連携)
191
+ if (データ構造が複雑か?) then (いいえ)
192
+ :トランザクションスクリプト;
193
+ :逆ピラミッド形のテスト;
194
+ if (永続化モデルは複数か?) then (いいえ)
195
+ :レイヤードアーキテクチャ 3層;
196
+ else (はい)
197
+ :レイヤードアーキテクチャ 4層;
198
+ endif
199
+ else (はい)
200
+ :アクティブレコード;
201
+ :ダイヤモンド形のテスト;
202
+ if (永続化モデルは複数か?) then (いいえ)
203
+ :レイヤードアーキテクチャ 3層;
204
+ else (はい)
205
+ :レイヤードアーキテクチャ 4層;
206
+ endif
207
+ endif
208
+ else (中核の業務領域)
209
+ if (金額を扱う/分析/監査記録が必要か?) then (いいえ)
210
+ :ドメインモデル;
211
+ :ピラミッド形のテスト;
212
+ if (永続化モデルは複数か?) then (いいえ)
213
+ :ポートとアダプター;
214
+ else (はい)
215
+ :CQRS;
216
+ endif
217
+ else (はい)
218
+ :イベント履歴式ドメインモデル;
219
+ :ピラミッド形のテスト;
220
+ :CQRS;
221
+ endif
222
+ endif
223
+
224
+ stop
225
+ @enduml
226
+ ```
227
+
228
+ ##### アーキテクチャパターン
229
+
230
+ ###### 1. **トランザクションスクリプトパターン**
231
+ - **適用場面**: 補完・一般との連携業務で、データ構造が複雑でない場合
232
+ - **特徴**:
233
+ - 各機能を独立したスクリプトとして実装
234
+ - 手続き的なプログラミングスタイル
235
+ - シンプルで理解しやすい
236
+ - 小規模なアプリケーションに適している
237
+
238
+ ###### 2. **アクティブレコードパターン**
239
+ - **適用場面**: 補完・一般との連携業務で、データ構造が複雑な場合
240
+ - **特徴**:
241
+ - データとビジネスロジックが同じクラスに含まれる
242
+ - オブジェクトが自身の永続化処理を担当
243
+ - ORMパターンの典型例
244
+ - 中規模のアプリケーションに適している
245
+
246
+ ###### 3. **ドメインモデルパターン**
247
+ - **適用場面**: 中核の業務領域で、金額を扱わない・分析や監査記録が不要な場合
248
+ - **特徴**:
249
+ - リッチなドメインモデル
250
+ - ビジネスロジックがオブジェクトに分散
251
+ - 依存関係の逆転を活用
252
+ - 複雑なビジネスロジックに適している
253
+
254
+ ###### 4. **イベント履歴式ドメインモデルパターン**
255
+ - **適用場面**: 中核の業務領域で、金額を扱う・分析や監査記録が必要な場合
256
+ - **特徴**:
257
+ - すべての状態変更をイベントとして記録
258
+ - 監査証跡の完全性を保証
259
+ - 時系列分析が可能
260
+ - 金融システムなど厳格な要件に適している
261
+
262
+ ##### アーキテクチャスタイル
263
+
264
+ ###### 1. **レイヤードアーキテクチャ(3層)**
265
+ - **適用場面**: 永続化モデルが単一の場合
266
+ - **特徴**:
267
+ - プレゼンテーション、ビジネスロジック、データアクセスの3層
268
+ - 関心事の分離が明確
269
+ - 保守性と拡張性が高い
270
+ - 標準的なエンタープライズアプリケーションに適している
271
+
272
+ ###### 2. **レイヤードアーキテクチャ(4層)**
273
+ - **適用場面**: 永続化モデルが複数の場合
274
+ - **特徴**:
275
+ - アプリケーション層を追加した4層構造
276
+ - より細かい責務の分離
277
+ - 複雑なデータ統合に対応
278
+ - 大規模なエンタープライズアプリケーションに適している
279
+
280
+ ###### 3. **ポートとアダプターアーキテクチャ(ヘキサゴナル)**
281
+ - **適用場面**: ドメインモデルで永続化モデルが単一の場合
282
+ - **特徴**:
283
+ - 外部依存からの完全な分離
284
+ - テスト容易性が高い
285
+ - 技術的な詳細から独立
286
+ - マイクロサービスに適している
287
+
288
+ ###### 4. **CQRSアーキテクチャ**
289
+ - **適用場面**: 永続化モデルが複数、またはイベント履歴式の場合
290
+ - **特徴**:
291
+ - コマンドとクエリの分離
292
+ - 読み書きのパフォーマンス最適化
293
+ - 複雑なレポート要件に対応
294
+ - 高スケーラビリティを要求されるシステムに適している
295
+
296
+ #### データモデル設計
297
+
298
+ [グラス片手にデータベース設計 ~販売管理システム編~](https://www.shoeisha.co.jp/book/detail/9784798105666) 参照
299
+
300
+ #### ドメインモデル設計
301
+
302
+ [エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88-Architects%E2%80%99Archive-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E5%AE%9F%E8%B7%B5-%E3%82%A8%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A8%E3%83%B4%E3%82%A1%E3%83%B3%E3%82%B9/dp/4798121967) 参照
303
+
304
+ #### UI設計
305
+
306
+ [オブジェクト指向 UI デザイン -使いやすいソフトウェアの原理-](https://www.sociomedia.co.jp/10046) 参照
307
+
308
+ ### 非機能要件
309
+
310
+ #### テスト戦略
311
+
312
+ 1. ユニットテスト
313
+ - 個々のコンポーネントのテスト
314
+ - ビジネスロジックの検証
315
+ - 境界値テスト
316
+
317
+ 2. 統合テスト
318
+ - コンポーネント間の連携テスト
319
+ - APIの検証
320
+ - データフローの確認
321
+
322
+ 3. E2Eテスト
323
+ - ユーザーシナリオテスト
324
+ - 実環境に近い状態でのテスト
325
+ - 性能テスト
326
+
327
+ ##### **ピラミッド形テスト**
328
+ - **適用**: ドメインモデル、イベント履歴式
329
+ - **構成**: ユニットテスト多数、統合テスト中程度、E2Eテスト少数
330
+ - **特徴**: 高品質なビジネスロジックの検証に重点
331
+
332
+ ##### **ダイヤモンド形テスト**
333
+ - **適用**: アクティブレコード
334
+ - **構成**: ユニットテストと統合テストを重視
335
+ - **特徴**: データアクセスロジックの検証に重点
336
+
337
+ ##### **逆ピラミッド形テスト**
338
+ - **適用**: トランザクションスクリプト
339
+ - **構成**: E2Eテスト多数、統合テスト中程度、ユニットテスト少数
340
+ - **特徴**: エンドツーエンドの動作検証に重点
341
+
342
+
343
+ ## 開発
344
+
345
+ ```plantuml
346
+ @startuml
347
+
348
+ [*] --> イテレーション計画
349
+ イテレーション計画 --> ユーザーストーリー作成
350
+ ユーザーストーリー作成 --> ユースケース作成
351
+ ユースケース作成 --> コーディングとテスト
352
+ アーキテクチャ設計 --> コーディングとテスト
353
+ コーディングとテスト --> アーキテクチャ設計
354
+ データモデル設計 --> コーディングとテスト
355
+ コーディングとテスト --> データモデル設計
356
+ ドメインモデル設計 --> コーディングとテスト
357
+ コーディングとテスト --> ドメインモデル設計
358
+ コーディングとテスト --> ユーザーインターフェース設計
359
+ ユーザーインターフェース設計 --> コーディングとテスト
360
+ コーディングとテスト --> ユースケース作成
361
+ コーディングとテスト --> イテレーションレビュー
362
+ イテレーションレビュー --> イテレーション計画
363
+ イテレーションレビュー --> [*]
364
+
365
+ @enduml
366
+ ```
367
+
368
+ 開発は、以下の2つのアプローチを状況に応じて使い分けます:
369
+
370
+ 1. インサイドアウトアプローチ
371
+ - データモデルから実装を開始
372
+ - ドメイン駆動設計に適合
373
+ - テストファーストな開発
374
+
375
+ 2. アウトサイドインアプローチ
376
+ - UIから実装を開始
377
+ - プロトタイプ駆動開発に適合
378
+ - モックを活用した開発
379
+
380
+
381
+ ```plantuml
382
+ @startuml
383
+ start
384
+ :ユーザーストーリー;
385
+ if (CRUD実装済み?) then (はい)
386
+ :ドメインモデル;
387
+ :アウトサイドイン;
388
+ else (いいえ)
389
+ :貧血ドメインモデル;
390
+ :インサイドサイドアウト;
391
+ endif
392
+ if (API実装済み?) then (はい)
393
+ :インサイドサイドアウト;
394
+ else (いいえ)
395
+ :アウトサイドイン;
396
+ endif
397
+ stop
398
+ @enduml
399
+ ```
400
+ #### インサイドアウト
401
+
402
+ ```plantuml
403
+ @startuml
404
+ start
405
+ :データベース;
406
+ :インフラストラクチャ層;
407
+ :ドメイン層;
408
+ :サービス層;
409
+ :プレゼンテーション層;
410
+ stop
411
+ @enduml
412
+ ```
413
+
414
+ ```plantuml
415
+ @startuml
416
+ [*] --> コーディングとテスト
417
+ コーディングとテスト --> TODO : TODOリストを作成
418
+ TODO --> Red : 最小限の実装
419
+ Red --> Green : テストを書く
420
+ Green --> Refactor : リファクタリング
421
+ Refactor --> Red : 次の実装
422
+ Red : 動作の確認
423
+ Green : テストが成功
424
+ Refactor : コードの重複を除去してリファクタリング
425
+ Refactor --> TODO : リファクタリングが完了したらTODOリストに戻る
426
+ TODO --> コーディングとテスト : TODOリストが空になるまで繰り返す
427
+ コーディングとテスト --> イテレーションレビュー
428
+ @enduml
429
+ ```
430
+
431
+ #### アウトサイドイン
432
+
433
+ ```plantuml
434
+ @startuml
435
+ start
436
+ :プレゼンテーション層;
437
+ :サービス層;
438
+ :ドメイン層;
439
+ :インフラストラクチャ層;
440
+ :データベース;
441
+ stop
442
+ @enduml
443
+ ```
444
+
445
+ ```plantuml
446
+ @startuml
447
+ [*] --> コーディングとテスト
448
+ コーディングとテスト --> TODO : TODOリストを作成
449
+ TODO --> Red : テストを書く
450
+ Red --> Green : 最小限の実装
451
+ Green --> Refactor : リファクタリング
452
+ Refactor --> Red : 次のテストを書く
453
+ Red : テストに失敗
454
+ Green : テストに通る最小限の実装
455
+ Refactor : コードの重複を除去してリファクタリング
456
+ Refactor --> TODO : リファクタリングが完了したらTODOリストに戻る
457
+ TODO --> コーディングとテスト : TODOリストが空になるまで繰り返す
458
+ コーディングとテスト --> イテレーションレビュー
459
+ @enduml
460
+ ```
461
+
462
+ ### コーディングとテスト
463
+
464
+ ```plantuml
465
+ @startuml "イテレーション開発プロセス"
466
+
467
+ start
468
+
469
+ partition "イテレーション開始" {
470
+ }
471
+
472
+ repeat :TODO確認;
473
+ partition "TDD実装サイクル" {
474
+ repeat
475
+ :TODO選択;
476
+
477
+ repeat
478
+ :失敗テスト作成 (Red);
479
+ :最小実装 (Green);
480
+ :リファクタリング (Refactor);
481
+ :品質チェック;
482
+ if (品質OK?) then (yes)
483
+ :コミット;
484
+ else (no)
485
+ :修正;
486
+ endif
487
+ repeat while (TODO完了?)
488
+ partition "コードレビュー" {
489
+ }
490
+ repeat while (全TODO完了?)
491
+ }
492
+
493
+ if (イテレーション完了?) then (yes)
494
+ partition "受け入れ" {
495
+ partition "ユーザーレビュー" {
496
+ }
497
+ if (受け入れOK?) then (yes)
498
+ partition "ふりかえり" {
499
+ }
500
+ else (no)
501
+ partition "修正対応" {
502
+ }
503
+ endif
504
+ }
505
+ else (no)
506
+ partition "設計リファクタリング" {
507
+ partition "アーキテクチャリファクタリング" {
508
+ }
509
+ partition "データモデルリファクタリング" {
510
+ }
511
+ partition "ドメインモデルリファクタリング" {
512
+ }
513
+ partition "UIリファクタリング" {
514
+ }
515
+ }
516
+ endif
517
+ repeat while (次のTODO?)
518
+
519
+ stop
520
+
521
+ @enduml
522
+ ```
523
+ - 必ずイテレーション単位で開発を行う
524
+ - 勝手に次のイテレーションに進まない
525
+ - コミットは必ずTODO単位で実施する
526
+ - コミットの前に必ず品質確認を実施する
527
+ - コミットメッセージはAngularのコミットメッセージの書き方を参考にする
528
+ - feat: 新機能の追加
529
+ - fix: バグ修正
530
+ - docs: ドキュメントの変更
531
+ - style: フォーマットやセミコロンの追加など、コードの動作に影響しない変更
532
+ - refactor: リファクタリング(バグ修正や機能追加ではない)
533
+ - test: テストコードの追加や修正
534
+ - chore: ビルドプロセスや補助ツールの変更
535
+
536
+ ## 運用
537
+
538
+ ### 構築・配置
539
+
540
+ ```plantuml
541
+ @startuml "Phase 1"
542
+ |構築|
543
+ start
544
+ :環境構築;
545
+ :CI/CD構築;
546
+
547
+ |配置|
548
+ :デプロイ設定;
549
+
550
+ |構築|
551
+ :ドキュメント更新;
552
+
553
+ stop
554
+
555
+ @enduml
556
+ ```
File without changes
File without changes
@@ -0,0 +1,30 @@
1
+ # Sample
2
+
3
+ アーキテクチャ決定の簡単な説明
4
+
5
+ 日付: 2025-02-26
6
+
7
+ ## ステータス
8
+
9
+ 2025-02-26 提案されました
10
+
11
+ ## コンテキスト
12
+
13
+ この決定を行った状況
14
+
15
+ ## 決定
16
+
17
+ 決定とその根拠
18
+
19
+ ## 影響
20
+
21
+ この決定による影響
22
+
23
+ ## コプライアンス
24
+
25
+ この決定が遵守されていることを確認する方法
26
+
27
+ ## 備考
28
+
29
+ この決定のメタデータ(著者など)
30
+
@@ -0,0 +1,50 @@
1
+ # プロジェクト名
2
+
3
+ ## 概要
4
+
5
+ ### 目的
6
+
7
+ ### 前提
8
+
9
+ | ソフトウェア | バージョン | 備考 |
10
+ | :----------- | :--------- | :--- |
11
+ | nodejs | 12.12.0 | |
12
+
13
+ ## 構成
14
+
15
+ - [構築](#構築)
16
+ - [配置](#配置)
17
+ - [運用](#運用)
18
+ - [開発](#開発)
19
+
20
+ ## 詳細
21
+
22
+ ### Qick Start
23
+
24
+ ```bash
25
+ npm install
26
+ npm start
27
+ ```
28
+
29
+ ### 構築
30
+
31
+ ```bash
32
+ npm init -y
33
+ npm install --save-dev browser-sync jest @babel/core @babel/cli @babel/preset-env @babel/register
34
+ ```
35
+
36
+ **[⬆ back to top](#構成)**
37
+
38
+ ### 配置
39
+
40
+ **[⬆ back to top](#構成)**
41
+
42
+ ### 運用
43
+
44
+ **[⬆ back to top](#構成)**
45
+
46
+ ### 開発
47
+
48
+ **[⬆ back to top](#構成)**
49
+
50
+ ## 参照
@@ -0,0 +1,12 @@
1
+ # まずこれを読もうリスト
2
+
3
+ - [コンテキスト図](./requirements/コンテキスト図.md) - 情勢をつかむ。
4
+ - [インセプションデッキ](./requirements/インセプションデッキ.md) - プロジェクトの最初の週に作成された。ここにあるものの大部分は変更されたが、このドキュメントは我々がなぜこのシステムを構築しているかを示している。
5
+ - [ユーザーストーリー](./requirements/要件.md) - ユーザーの視点からシステムの要件をまとめる。ユーザーが何を求めているかを理解するために重要。
6
+ - [ユースケース](./requirements/要件.md) - システムの機能を表す。システムが何をするかを理解するのに必要。
7
+ - [アーキテクチャドキュメント](./design/アーキテクチャ.md) - システムのアーキテクチャを示す。システムの全体像を把握するために重要。
8
+ - [設計キュメント](./design) - システムの設計に関する詳細をまとめる。具体的な実装方法や技術選定を記録する。
9
+ - [開発ドキュメント](./development) - 開発の具体的な手順やガイドラインをまとめる。
10
+ - [運用ドキュメント](./operation) - システムの運用に関する情報を提供する。運用チームがシステムを管理するために必要。
11
+ - [アーキテクチャ決定ログ](./adr) - システムのアーキテクチャに関する重要な決定を記録する。将来の参照や説明に役立つ。
12
+ - [日誌](./journal) - 開発の進捗や問題点を記録する。開発の履歴を追うために重要。
@@ -0,0 +1,59 @@
1
+ # プロジェクト概要
2
+
3
+ ## 日程
4
+
5
+ - イテレーション開始日
6
+ - イテレーション終了日
7
+ - 作業日数
8
+
9
+ ## 要員
10
+
11
+ |名前|予定作業日数|実績作業日数|
12
+ |---|---|---|
13
+ |A|5|5|
14
+
15
+ ## 指標
16
+
17
+ ### ナイトリービルド結果
18
+
19
+ |日付|結果|
20
+ |---|---|
21
+ |9月1日(月) |Build failed|
22
+
23
+ ### イテレーションバーンダウン
24
+
25
+ ```mermaid
26
+ xychart-beta
27
+ title "リリースバーンダウンチャート"
28
+ x-axis ["イテレーション1", "イテレーション2", "イテレーション3", "イテレーション4", "イテレーション5", "イテレーション6"]
29
+ y-axis "残ストーリーポイント" 0 --> 120
30
+ line [100, 82, 65, 48, 30, 0]
31
+ line [100, 85, 72, 60, 42, 10]
32
+ ```
33
+
34
+ ### ベロシティ
35
+
36
+ ```mermaid
37
+ xychart-beta
38
+ title "イテレーション別ベロシティ"
39
+ x-axis ["イテレーション1", "イテレーション2", "イテレーション3", "イテレーション4", "イテレーション5", "イテレーション6", "イテレーション7", "イテレーション8"]
40
+ y-axis "完了したストーリーポイント" 0 --> 25
41
+ bar [15, 18, 14, 16, 19, 17, 20, 21]
42
+ line [17.5, 17.5, 17.5, 17.5, 17.5, 17.5, 17.5, 17.5]
43
+ line [20.5, 20.5, 20.5, 20.5, 20.5, 20.5, 20.5, 20.5]
44
+ ```
45
+
46
+ ## 実施内容と評価
47
+
48
+ |ストーリー|結果|予定ポイント|ベロシティ加算ポイント|
49
+ |---|---|---|---|
50
+ |ユーザーとして、私は...|完了|5|5|
51
+ |ユーザーとして、私は...|完了|3|3|
52
+ |ユーザーとして、私は...|完了|8|8|
53
+ |合計| |16|16|
54
+
55
+ ### イテレーションレビュー
56
+
57
+ |アクションアイテム|担当|
58
+ |---|---|
59
+ |ユーザーとして、私は...のレビュー|A|