yodogawa 1.0.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.
- package/.windsurf/templates/documentation-rules.md +143 -0
- package/.windsurf/templates/project/01-requirements/01-system-overview.md +49 -0
- package/.windsurf/templates/project/01-requirements/02-features-implemented.md +73 -0
- package/.windsurf/templates/project/01-requirements/03-features-planned.md +75 -0
- package/.windsurf/templates/project/01-requirements/04-non-functional-requirements.md +115 -0
- package/.windsurf/templates/project/01-requirements/05-user-stories.md +124 -0
- package/.windsurf/templates/project/02-behavior/01-scenarios.md +406 -0
- package/.windsurf/templates/project/03-domain/01-domain-model.md +338 -0
- package/.windsurf/templates/project/03-domain/02-ubiquitous-language.md +153 -0
- package/.windsurf/templates/project/04-design/01-tech-stack.md +360 -0
- package/.windsurf/templates/project/04-design/02-repository-structure.md +390 -0
- package/.windsurf/templates/project/04-design/03-screen-design.md +586 -0
- package/.windsurf/templates/project/04-design/04-data-model.md +211 -0
- package/.windsurf/templates/project/04-design/05-api-spec.md +221 -0
- package/.windsurf/templates/project/04-design/06-architecture.md +183 -0
- package/.windsurf/templates/project/04-design/07-infrastructure.md +180 -0
- package/.windsurf/templates/tasks/task-template/a-definition.md +143 -0
- package/.windsurf/templates/tasks/task-template/b-research.md +185 -0
- package/.windsurf/templates/tasks/task-template/c-implementation.md +197 -0
- package/.windsurf/workflows/a-001-SetupDocStructure.md +165 -0
- package/.windsurf/workflows/a-002-InitializeProject.md +229 -0
- package/.windsurf/workflows/a-003-CreateScenarios.md +130 -0
- package/.windsurf/workflows/a-004-DefineDomainModel.md +133 -0
- package/.windsurf/workflows/a-005-CreateDomainDiagram.md +114 -0
- package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +132 -0
- package/.windsurf/workflows/a-007-DefineTechStack.md +121 -0
- package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +118 -0
- package/.windsurf/workflows/a-009-DefineScreenDesign.md +121 -0
- package/.windsurf/workflows/a-010-DefineDataModel.md +125 -0
- package/.windsurf/workflows/a-011-DefineAPISpec.md +123 -0
- package/.windsurf/workflows/a-012-DefineArchitecture.md +119 -0
- package/.windsurf/workflows/a-013-DefineInfrastructure.md +120 -0
- package/.windsurf/workflows/a-014-ReviewDesign.md +122 -0
- package/.windsurf/workflows/b-001-CreateTaskDirectory.md +71 -0
- package/.windsurf/workflows/b-002-CreateTaskDefinition.md +165 -0
- package/.windsurf/workflows/b-003-CreateTaskResearch.md +412 -0
- package/.windsurf/workflows/b-004-CreateTaskImplementation.md +97 -0
- package/.windsurf/workflows/b-005-ReviewTask.md +312 -0
- package/.windsurf/workflows/c-001-ImplementTask.md +493 -0
- package/.windsurf/workflows/c-002-UpdateDocumentation.md +797 -0
- package/.windsurf/workflows/x-Accessibility-Check.md +469 -0
- package/.windsurf/workflows/x-Bundle-Optimize.md +386 -0
- package/.windsurf/workflows/x-CI-FixFailure.md +636 -0
- package/.windsurf/workflows/x-CI-Setup.md +641 -0
- package/.windsurf/workflows/x-Code-Refactor.md +71 -0
- package/.windsurf/workflows/x-Code-ResearchAndReview.md +78 -0
- package/.windsurf/workflows/x-Component-Create.md +359 -0
- package/.windsurf/workflows/x-Context-CatchUp.md +63 -0
- package/.windsurf/workflows/x-Database-Seed.md +300 -0
- package/.windsurf/workflows/x-Dependencies-Update.md +315 -0
- package/.windsurf/workflows/x-DevEnvironment-Setup.md +437 -0
- package/.windsurf/workflows/x-Logging-Add.md +682 -0
- package/.windsurf/workflows/x-Migration-Create.md +354 -0
- package/.windsurf/workflows/x-Problem-RootCauseAnalysis.md +65 -0
- package/.windsurf/workflows/x-Repository-Push.md +375 -0
- package/.windsurf/workflows/x-Repository-PushToGithub.md +72 -0
- package/.windsurf/workflows/x-Requirements-Clarify.md +61 -0
- package/.windsurf/workflows/z-CreateWorkflow.md +77 -0
- package/README.md +280 -0
- package/bin/cli.js +74 -0
- package/package.json +28 -0
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
# リポジトリ構造
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何を書くか: プロジェクトのディレクトリ構造とファイル配置の規則
|
|
5
|
+
|
|
6
|
+
目的:
|
|
7
|
+
- 新規メンバーのオンボーディング支援
|
|
8
|
+
- コードの配置場所を明確化
|
|
9
|
+
- プロジェクト全体の見通しを向上
|
|
10
|
+
- アーキテクチャパターンの一貫性維持
|
|
11
|
+
- リファクタリング時の指針
|
|
12
|
+
|
|
13
|
+
重要性:
|
|
14
|
+
- コードベースのナビゲーション効率化
|
|
15
|
+
- 機能追加時の配置判断を迅速化
|
|
16
|
+
- アーキテクチャ決定の可視化
|
|
17
|
+
- チーム間の認識統一
|
|
18
|
+
- ツール(IDE、ビルドツール)の設定基盤
|
|
19
|
+
|
|
20
|
+
記載のポイント:
|
|
21
|
+
- アーキテクチャパターンを明示(レイヤードアーキテクチャ、クリーンアーキテクチャ、ドメイン駆動設計など)
|
|
22
|
+
- ディレクトリの責務を明確に記載
|
|
23
|
+
- 命名規則を具体例とともに提示
|
|
24
|
+
- 依存関係のルールを記載(例: インフラ層はドメイン層に依存可能、逆は不可)
|
|
25
|
+
- モノレポ/マルチレポの戦略を明記
|
|
26
|
+
- 共通パターン(コロケーション、機能ベース、レイヤーベース)の選択理由
|
|
27
|
+
|
|
28
|
+
更新頻度:
|
|
29
|
+
- プロジェクト初期に作成
|
|
30
|
+
- アーキテクチャ変更時に更新
|
|
31
|
+
- 新しいディレクトリを追加する際に更新
|
|
32
|
+
- 四半期ごとに見直し(実際の構造との乖離確認)
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## ディレクトリ構造
|
|
38
|
+
|
|
39
|
+
<!--
|
|
40
|
+
プロジェクトのフォルダ構造を tree コマンド形式で記載
|
|
41
|
+
|
|
42
|
+
記載のベストプラクティス:
|
|
43
|
+
1. ルートから主要ディレクトリまで(深すぎると読みづらい)
|
|
44
|
+
2. 各ディレクトリに1行コメントで役割を記載
|
|
45
|
+
3. 重要なファイル(設定ファイルなど)も含める
|
|
46
|
+
4. サンプルファイル名を含めると理解しやすい
|
|
47
|
+
5. 複数のアーキテクチャパターンがある場合は分けて記載
|
|
48
|
+
|
|
49
|
+
よくあるパターン:
|
|
50
|
+
A. レイヤーベース(Clean Architecture, Layered Architecture)
|
|
51
|
+
- presentation/ → domain/ → infrastructure/
|
|
52
|
+
- 依存方向が明確、大規模プロジェクト向き
|
|
53
|
+
|
|
54
|
+
B. 機能ベース(Feature-based, Vertical Slices)
|
|
55
|
+
- features/user-management/, features/billing/
|
|
56
|
+
- 機能ごとに独立、マイクロサービス移行しやすい
|
|
57
|
+
|
|
58
|
+
C. Atomic Design(UI コンポーネント)
|
|
59
|
+
- atoms/, molecules/, organisms/, templates/, pages/
|
|
60
|
+
- デザインシステムとの整合性、再利用性が高い
|
|
61
|
+
|
|
62
|
+
D. モノレポ
|
|
63
|
+
- packages/app/, packages/web/, packages/shared/
|
|
64
|
+
- 複数アプリケーション、コード共有が必要な場合
|
|
65
|
+
|
|
66
|
+
選択したパターンの理由をメモ欄に記載すること
|
|
67
|
+
-->
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
project-root/
|
|
71
|
+
├── src/ # ソースコード
|
|
72
|
+
│ ├── components/ # UIコンポーネント(再利用可能な部品)
|
|
73
|
+
│ │ ├── Button.tsx
|
|
74
|
+
│ │ └── Input.tsx
|
|
75
|
+
│ ├── features/ # 機能モジュール(ビジネスロジック単位)
|
|
76
|
+
│ │ ├── user/
|
|
77
|
+
│ │ │ ├── UserList.tsx
|
|
78
|
+
│ │ │ ├── UserDetail.tsx
|
|
79
|
+
│ │ │ └── userService.ts
|
|
80
|
+
│ │ └── auth/
|
|
81
|
+
│ ├── lib/ # ユーティリティ、ヘルパー関数
|
|
82
|
+
│ │ ├── api.ts
|
|
83
|
+
│ │ └── formatters.ts
|
|
84
|
+
│ ├── hooks/ # カスタムフック(React など)
|
|
85
|
+
│ ├── types/ # 型定義(TypeScript)
|
|
86
|
+
│ ├── styles/ # グローバルスタイル
|
|
87
|
+
│ └── App.tsx # アプリケーションエントリーポイント
|
|
88
|
+
├── public/ # 静的ファイル(HTML、画像、フォントなど)
|
|
89
|
+
│ ├── index.html
|
|
90
|
+
│ └── favicon.ico
|
|
91
|
+
├── docs/ # プロジェクトドキュメント
|
|
92
|
+
│ ├── project/
|
|
93
|
+
│ └── tasks/
|
|
94
|
+
├── tests/ # テストコード
|
|
95
|
+
│ ├── unit/
|
|
96
|
+
│ ├── integration/
|
|
97
|
+
│ └── e2e/
|
|
98
|
+
├── scripts/ # ビルドスクリプト、デプロイスクリプト
|
|
99
|
+
├── .github/ # GitHub Actions ワークフロー
|
|
100
|
+
│ └── workflows/
|
|
101
|
+
├── node_modules/ # 依存パッケージ(gitignore)
|
|
102
|
+
├── package.json # プロジェクト設定、依存関係
|
|
103
|
+
├── tsconfig.json # TypeScript 設定
|
|
104
|
+
├── .env.example # 環境変数テンプレート
|
|
105
|
+
├── .gitignore # Git 除外設定
|
|
106
|
+
└── README.md # プロジェクト概要
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## アーキテクチャパターン
|
|
112
|
+
|
|
113
|
+
<!--
|
|
114
|
+
採用しているアーキテクチャパターンを明示
|
|
115
|
+
|
|
116
|
+
記載すべき内容:
|
|
117
|
+
- パターン名(例: Clean Architecture, Layered Architecture, Feature-Sliced Design)
|
|
118
|
+
- パターンを選んだ理由
|
|
119
|
+
- レイヤー/モジュールの依存方向
|
|
120
|
+
- パターンの適用範囲(フロントエンド/バックエンド/全体)
|
|
121
|
+
|
|
122
|
+
よくあるパターン:
|
|
123
|
+
- Clean Architecture: 依存性逆転、ドメイン中心
|
|
124
|
+
- Layered Architecture: プレゼンテーション → ビジネスロジック → データアクセス
|
|
125
|
+
- Hexagonal Architecture (Ports & Adapters): コア + アダプター
|
|
126
|
+
- Feature-Sliced Design: features/, shared/, entities/, widgets/
|
|
127
|
+
- Modular Monolith: モジュール単位で分割、境界明確
|
|
128
|
+
-->
|
|
129
|
+
|
|
130
|
+
**採用パターン**: <!-- 例: Feature-based Architecture -->
|
|
131
|
+
|
|
132
|
+
**理由**:
|
|
133
|
+
<!-- 例:
|
|
134
|
+
- 機能ごとに独立したモジュール化
|
|
135
|
+
- チームを機能単位で分割しやすい
|
|
136
|
+
- マイクロサービス移行を見据えた設計
|
|
137
|
+
-->
|
|
138
|
+
|
|
139
|
+
**依存方向**:
|
|
140
|
+
<!-- 例:
|
|
141
|
+
features/ → lib/ (OK)
|
|
142
|
+
features/user/ → features/auth/ (要検討、循環依存注意)
|
|
143
|
+
components/ → features/ (NG、コンポーネントは汎用部品)
|
|
144
|
+
-->
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 主要ディレクトリ
|
|
149
|
+
|
|
150
|
+
<!--
|
|
151
|
+
各ディレクトリの責務と配置すべきファイルを明記
|
|
152
|
+
|
|
153
|
+
テーブル構成:
|
|
154
|
+
【ディレクトリ】
|
|
155
|
+
- パス表記(例: /src, /src/features)
|
|
156
|
+
- プロジェクトルートからの相対パス
|
|
157
|
+
|
|
158
|
+
【役割】
|
|
159
|
+
- そのディレクトリが担う責務
|
|
160
|
+
- 配置すべきファイルの種類
|
|
161
|
+
- 配置すべきでないもの(アンチパターン)
|
|
162
|
+
|
|
163
|
+
【例】
|
|
164
|
+
- 具体的なファイル名やサブディレクトリの例
|
|
165
|
+
|
|
166
|
+
記載のベストプラクティス:
|
|
167
|
+
- 「何を置くべきか」だけでなく「何を置くべきでないか」も記載
|
|
168
|
+
- サブディレクトリの構造パターンも示す
|
|
169
|
+
- 複数チームで開発する場合は所有権も明記
|
|
170
|
+
-->
|
|
171
|
+
|
|
172
|
+
| ディレクトリ | 役割 | 例 |
|
|
173
|
+
|--------------|------|----|
|
|
174
|
+
| `/src` | アプリケーションのソースコード全体。ビジネスロジック、UI、ユーティリティを含む | `App.tsx`, `index.ts` |
|
|
175
|
+
| `/src/components` | 再利用可能な UI コンポーネント。ビジネスロジックを持たない汎用部品 | `Button.tsx`, `Modal.tsx`, `Input.tsx` |
|
|
176
|
+
| `/src/features` | 機能単位のモジュール。UI、ロジック、API 呼び出しを含む | `/features/user/UserList.tsx`, `/features/auth/LoginForm.tsx` |
|
|
177
|
+
| `/src/lib` | ユーティリティ関数、API クライアント、共通ロジック。ビジネスロジック非依存 | `api.ts`, `formatDate.ts`, `validation.ts` |
|
|
178
|
+
| `/src/hooks` | カスタムフック(React など)。UI ロジックの再利用 | `useAuth.ts`, `useFetch.ts` |
|
|
179
|
+
| `/src/types` | TypeScript 型定義。API レスポンス型、ドメインモデル型 | `User.ts`, `ApiResponse.ts` |
|
|
180
|
+
| `/src/styles` | グローバルスタイル、テーマ設定、CSS変数 | `global.css`, `theme.ts` |
|
|
181
|
+
| `/public` | 静的ファイル。ビルド時にそのままコピーされる | `index.html`, `favicon.ico`, `robots.txt` |
|
|
182
|
+
| `/docs` | プロジェクトドキュメント。要件、設計、タスク管理 | `/docs/project/`, `/docs/tasks/` |
|
|
183
|
+
| `/tests` | テストコード。ユニット、統合、E2E テスト | `/tests/unit/`, `/tests/e2e/` |
|
|
184
|
+
| `/scripts` | ビルド、デプロイ、データ移行などのスクリプト | `build.sh`, `deploy.js` |
|
|
185
|
+
| `/.github` | GitHub 関連設定。Actions ワークフロー、Issue テンプレート | `/workflows/ci.yml`, `PULL_REQUEST_TEMPLATE.md` |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 命名規則
|
|
190
|
+
|
|
191
|
+
<!--
|
|
192
|
+
ファイル、ディレクトリ、変数の命名規則を定義
|
|
193
|
+
|
|
194
|
+
テーブル構成:
|
|
195
|
+
【対象】
|
|
196
|
+
- ファイルの種類やコード要素の種類
|
|
197
|
+
|
|
198
|
+
【規則】
|
|
199
|
+
- 命名パターン(PascalCase, camelCase, kebab-case, snake_case)
|
|
200
|
+
- 接頭辞・接尾辞のルール
|
|
201
|
+
|
|
202
|
+
【例】
|
|
203
|
+
- 実際のファイル名やコード例
|
|
204
|
+
|
|
205
|
+
よくある命名規則:
|
|
206
|
+
- React コンポーネント: PascalCase (UserProfile.tsx)
|
|
207
|
+
- TypeScript ファイル: camelCase (formatDate.ts)
|
|
208
|
+
- テストファイル: *.test.ts, *.spec.ts
|
|
209
|
+
- CSS Modules: *.module.css
|
|
210
|
+
- 設定ファイル: ドット始まり (.eslintrc, .env)
|
|
211
|
+
- 定数ファイル: UPPER_SNAKE_CASE (API_ENDPOINTS.ts) または constants.ts
|
|
212
|
+
|
|
213
|
+
一貫性が重要: プロジェクト全体で統一された規則を維持
|
|
214
|
+
-->
|
|
215
|
+
|
|
216
|
+
| 対象 | 規則 | 例 |
|
|
217
|
+
|------|------|-----|
|
|
218
|
+
| **ファイル・ディレクトリ** | | |
|
|
219
|
+
| React コンポーネント | PascalCase、拡張子 .tsx | `UserProfile.tsx`, `LoginForm.tsx` |
|
|
220
|
+
| TypeScript ファイル | camelCase、拡張子 .ts | `formatDate.ts`, `apiClient.ts` |
|
|
221
|
+
| CSS Modules | *.module.css, *.module.scss | `Button.module.css` |
|
|
222
|
+
| テストファイル | *.test.ts, *.spec.ts | `user.test.ts`, `auth.spec.ts` |
|
|
223
|
+
| 設定ファイル | ドット始まり、特定の名前 | `.eslintrc.json`, `.env`, `tsconfig.json` |
|
|
224
|
+
| ディレクトリ | kebab-case または camelCase | `user-management/` または `userManagement/` |
|
|
225
|
+
| **コード要素** | | |
|
|
226
|
+
| 変数・関数 | camelCase | `const userName = ...`, `function fetchData() {}` |
|
|
227
|
+
| 定数 | UPPER_SNAKE_CASE | `const API_BASE_URL = ...`, `const MAX_RETRY = 3` |
|
|
228
|
+
| クラス・型 | PascalCase | `class UserService {}`, `type ApiResponse = ...` |
|
|
229
|
+
| インターフェース | PascalCase、I接頭辞は避ける | `interface User {}` (not `IUser`) |
|
|
230
|
+
| Enum | PascalCase (型), UPPER_SNAKE_CASE (値) | `enum Status { ACTIVE = "ACTIVE" }` |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## モジュール境界と依存関係
|
|
235
|
+
|
|
236
|
+
<!--
|
|
237
|
+
モジュール間の依存関係ルールを定義(オプション)
|
|
238
|
+
|
|
239
|
+
このセクションは特に重要:
|
|
240
|
+
- Clean Architecture や Layered Architecture を採用している場合
|
|
241
|
+
- モノレポで複数パッケージを管理している場合
|
|
242
|
+
- マイクロフロントエンド構成の場合
|
|
243
|
+
|
|
244
|
+
記載すべき内容:
|
|
245
|
+
- 許可される依存方向
|
|
246
|
+
- 禁止される依存(循環依存、逆方向依存)
|
|
247
|
+
- 依存関係を強制するツール(dependency-cruiser, madge など)
|
|
248
|
+
- Bounded Context 間の依存ルール(DDD の場合)
|
|
249
|
+
|
|
250
|
+
依存関係の例:
|
|
251
|
+
- UI層 → ドメイン層 (OK)
|
|
252
|
+
- ドメイン層 → インフラ層 (NG、依存性逆転)
|
|
253
|
+
- features/user → features/auth (要検討、結合度上昇)
|
|
254
|
+
- lib → features (NG、汎用ユーティリティが機能依存)
|
|
255
|
+
-->
|
|
256
|
+
|
|
257
|
+
**依存ルール**:
|
|
258
|
+
|
|
259
|
+
- ✅ **許可**: `features/` → `components/`, `lib/`, `hooks/`, `types/`
|
|
260
|
+
- ✅ **許可**: `components/` → `lib/`, `types/`
|
|
261
|
+
- ❌ **禁止**: `lib/` → `features/` (汎用ライブラリが機能に依存)
|
|
262
|
+
- ❌ **禁止**: `components/` → `features/` (汎用コンポーネントが機能に依存)
|
|
263
|
+
- ⚠️ **注意**: `features/user/` → `features/auth/` (機能間依存、循環依存注意)
|
|
264
|
+
|
|
265
|
+
**依存関係の強制**:
|
|
266
|
+
<!-- 例:
|
|
267
|
+
- dependency-cruiser で依存ルールを検証
|
|
268
|
+
- .dependency-cruiser.json に禁止ルールを定義
|
|
269
|
+
- CI で依存違反を検出
|
|
270
|
+
-->
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## コロケーション戦略
|
|
275
|
+
|
|
276
|
+
<!--
|
|
277
|
+
関連ファイルの配置方針(オプション)
|
|
278
|
+
|
|
279
|
+
コロケーション = 関連するファイルを近くに配置する設計原則
|
|
280
|
+
|
|
281
|
+
よくあるパターン:
|
|
282
|
+
A. ファイルタイプ別
|
|
283
|
+
- components/, styles/, tests/ を分離
|
|
284
|
+
- 伝統的だが、機能追加時に複数ディレクトリを編集
|
|
285
|
+
|
|
286
|
+
B. 機能別コロケーション
|
|
287
|
+
- UserProfile.tsx, UserProfile.module.css, UserProfile.test.tsx を同じディレクトリに
|
|
288
|
+
- 変更が局所化、削除も容易
|
|
289
|
+
|
|
290
|
+
C. ハイブリッド
|
|
291
|
+
- features/ 内ではコロケーション
|
|
292
|
+
- 共通コンポーネントはタイプ別
|
|
293
|
+
|
|
294
|
+
選択基準:
|
|
295
|
+
- チームサイズ(小規模ならコロケーション推奨)
|
|
296
|
+
- プロジェクト規模(大規模なら機能別)
|
|
297
|
+
- マイクロフロントエンド移行予定があるか
|
|
298
|
+
-->
|
|
299
|
+
|
|
300
|
+
**採用戦略**: <!-- 例: 機能別コロケーション -->
|
|
301
|
+
|
|
302
|
+
**配置例**:
|
|
303
|
+
```
|
|
304
|
+
features/user/
|
|
305
|
+
├── UserProfile.tsx # コンポーネント
|
|
306
|
+
├── UserProfile.module.css # スタイル
|
|
307
|
+
├── UserProfile.test.tsx # テスト
|
|
308
|
+
├── userService.ts # ビジネスロジック
|
|
309
|
+
└── types.ts # 型定義
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**理由**:
|
|
313
|
+
<!-- 例:
|
|
314
|
+
- 機能追加・削除時の変更が1ディレクトリ内で完結
|
|
315
|
+
- ファイル間の移動が少なく、認知負荷が低い
|
|
316
|
+
- マイクロフロントエンド移行時にモジュール分割が容易
|
|
317
|
+
-->
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## 設定ファイル一覧
|
|
322
|
+
|
|
323
|
+
<!--
|
|
324
|
+
プロジェクトルートの主要設定ファイル(オプション)
|
|
325
|
+
|
|
326
|
+
記載すべき設定ファイル:
|
|
327
|
+
- ビルドツール: package.json, tsconfig.json, vite.config.ts
|
|
328
|
+
- リンター/フォーマッター: .eslintrc, .prettierrc
|
|
329
|
+
- テスト: jest.config.js, playwright.config.ts
|
|
330
|
+
- 環境変数: .env, .env.example
|
|
331
|
+
- Docker: Dockerfile, docker-compose.yml
|
|
332
|
+
- CI/CD: .github/workflows/*.yml
|
|
333
|
+
- エディタ: .editorconfig, .vscode/settings.json
|
|
334
|
+
|
|
335
|
+
目的: 新規メンバーが設定ファイルの役割を理解しやすくする
|
|
336
|
+
-->
|
|
337
|
+
|
|
338
|
+
| ファイル | 役割 |
|
|
339
|
+
|----------|------|
|
|
340
|
+
| `package.json` | Node.js プロジェクト設定、依存関係、スクリプト定義 |
|
|
341
|
+
| `tsconfig.json` | TypeScript コンパイラ設定 |
|
|
342
|
+
| `.eslintrc.json` | ESLint ルール設定(コード品質チェック) |
|
|
343
|
+
| `.prettierrc` | Prettier フォーマット設定 |
|
|
344
|
+
| `.env.example` | 環境変数のテンプレート(機密情報は含めない) |
|
|
345
|
+
| `.gitignore` | Git 管理対象外ファイル(node_modules, .env など) |
|
|
346
|
+
| `jest.config.js` | Jest テスト設定 |
|
|
347
|
+
| `Dockerfile` | Docker イメージビルド定義 |
|
|
348
|
+
| `.github/workflows/ci.yml` | GitHub Actions CI/CD ワークフロー |
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## メモ
|
|
353
|
+
|
|
354
|
+
<!--
|
|
355
|
+
リポジトリ構造に関する補足情報
|
|
356
|
+
|
|
357
|
+
記載すべき内容:
|
|
358
|
+
1. 構造変更の履歴
|
|
359
|
+
- いつ、なぜディレクトリ構造を変更したか
|
|
360
|
+
- マイグレーション方法(移行スクリプトなど)
|
|
361
|
+
|
|
362
|
+
2. 将来の構造変更計画
|
|
363
|
+
- モノレポ移行の予定
|
|
364
|
+
- マイクロサービス分割の計画
|
|
365
|
+
- レイヤー分離の強化
|
|
366
|
+
|
|
367
|
+
3. ツールとの統合
|
|
368
|
+
- ESLint import/no-restricted-paths プラグイン
|
|
369
|
+
- dependency-cruiser での依存検証
|
|
370
|
+
- IDE のパス補完設定
|
|
371
|
+
|
|
372
|
+
4. チーム運用
|
|
373
|
+
- 新規ディレクトリ作成時の承認フロー
|
|
374
|
+
- 構造変更の提案方法(ADR作成など)
|
|
375
|
+
|
|
376
|
+
5. モノレポ戦略(該当する場合)
|
|
377
|
+
- パッケージマネージャー(npm workspaces, yarn workspaces, pnpm, turborepo)
|
|
378
|
+
- 共有コードの管理方法
|
|
379
|
+
- ビルドキャッシュ戦略
|
|
380
|
+
|
|
381
|
+
6. パフォーマンス最適化
|
|
382
|
+
- Tree shaking のためのバレルエクスポート避ける
|
|
383
|
+
- Code splitting の境界
|
|
384
|
+
- Dynamic import の利用箇所
|
|
385
|
+
|
|
386
|
+
7. セキュリティ
|
|
387
|
+
- 環境変数の管理(.env は gitignore、.env.example のみコミット)
|
|
388
|
+
- 機密情報を含むファイルの配置ルール
|
|
389
|
+
- public/ ディレクトリの注意点(すべて公開される)
|
|
390
|
+
-->
|