-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path.clinerules-architect
170 lines (134 loc) · 5.72 KB
/
.clinerules-architect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# Architect Mode Rules
## 設計フェーズ
```mermaid
flowchart TD
Start([設計開始]) --> D1[全コードファイルの<br>徹底的な分析]
D1 --> D2[全体フローの分析<br>1〜10の自信スコア表示]
D2 --> D3[プロジェクト全体の<br>コンテキスト把握]
D3 --> D4[要件定義に基づく<br>設計書作成]
D4 --> D5[ディレクトリ構成の<br>設計]
D5 --> D6[アーキテクチャ・<br>コンポーネント設計]
D6 --> D7[docs/architecture.md<br>に設計書を記載]
D7 --> End([設計完了])
classDef designNode fill:#f9f9f9,stroke:#333,stroke-width:1px
class D1,D2,D3,D4,D5,D6,D7 designNode
```
### コード分析手順
- すべてのコードファイルを徹底的に分析します
- 全体のフローを徹底的に分析せよ。常に1〜10の自信スコアを示せ
- 全体のコンテキストを把握します
- `requirements-definition.md`をもとに、ディレクトリ構成やアーキテクチャ・コンポーネント設計書を作成します
- 設計書は`docs/architecture.md`に記載します
### アーキテクチャ設計規約
#### ディレクトリ構造
コロケーションパターンを基本として、以下のようなディレクトリ構成をベースに設計してください。
```
src/
├── __mocks__/ # Mock definitions
├── __tests__/ # Test files
├── app/ # Next.js App Router files
│ ├── (public)/ # 公開ルート
│ │ ├── feature-a/ # 機能A
│ │ │ ├── components/ # ページ固有コンポーネント
│ │ │ ├── hooks/ # カスタムフック
│ │ │ ├── types/ # 型定義
│ │ │ ├── utils/ # ユーティリティ
│ │ │ └── page.tsx # ページコンポーネント
│ │ └── feature-b/ # 機能B
│ │ ├── __tests__/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ ├── utils/
│ │ └── page.tsx
│ ├── (protected)/ # 保護されたルート
│ │ ├── components/ # グループ共通のコンポーネント
│ │ ├── hooks/ # グループ共通のフック
│ │ ├── types/ # グループ共通の型定義
│ │ ├── utils/ # グループ共通のユーティリティ
│ │ ├── layout.tsx # グループレイアウト
│ │ ├── feature-c/ # 機能C
│ │ │ ├── components/
│ │ │ ├── hooks/
│ │ │ ├── types/
│ │ │ ├── utils/
│ │ │ └── page.tsx
│ │ └── feature-d/ # 機能D
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ ├── utils/
│ │ └── page.tsx
│ ├── layout.tsx # ルートレイアウト
│ └── page.tsx # ルートページ
├── components/ # 共有コンポーネント
│ ├── features/ # 機能別コンポーネント
│ ├── layout/ # レイアウトコンポーネント
│ └── ui/ # 基本UIコンポーネント
├── env/ # 環境変数定義
└── lib/ # 共有ロジック
├── types/ # グローバル型定義
└── utils/ # 共有ユーティリティ
```
#### 基本方針
1. コロケーションパターンを採用
- 各機能(ページ)ごとに関連するファイルをグループ化
- テスト、コンポーネント、フック、型定義を同じディレクトリに配置
2. ルートグループ化
- `(public)`, `(protected)`などの括弧付きディレクトリで関連するルートをグループ化
3. 共通コンポーネントは src/components ディレクトリに配置
- ui: 基底コンポーネント
- features: 機能コンポーネント
- layout: レイアウトコンポーネント
#### 状態管理設計
- Zustandを使用し、コンポーネントはストアを介してデータにアクセス
- 1ストア・マルチスライスパターンで管理
- スライスごとの状態管理を行い、再利用性を高める
- フック関数はカスタムフックとして実装
#### アーキテクチャドキュメント
architecture.mdは以下の構成で作成:
1. システム概要
- アーキテクチャの概要
- 主要なコンポーネント
- データフロー
2. 技術スタックの詳細
- 各技術の役割
- バージョン情報
- 依存関係
3. コンポーネント設計
- コンポーネント階層
- 責務の分離
- 状態管理戦略
4. セキュリティ考慮事項
- 認証/認可
- データ保護
- エラーハンドリング
5. パフォーマンス最適化
- レンダリング最適化
- データ取得戦略
- キャッシング方針
6. スケーラビリティ
- 将来の拡張性
- コードの再利用性
- メンテナンス性
7. テスト戦略
- テストの種類
- テストカバレッジ
- テスト環境
### API設計規約
1. RESTful API設計原則
- リソース指向
- 適切なHTTPメソッド
- ステートレス
2. エンドポイント設計
- 一貫した命名規則
- バージョニング戦略
- エラーハンドリング
3. レスポンス形式
- 統一されたJSON構造
- エラーレスポンス形式
- ステータスコード
4. セキュリティ
- 認証方式
- 認可制御
- レート制限