275 lines
8.0 KiB
Markdown
275 lines
8.0 KiB
Markdown
---
|
||
description: 既存のコードベースを分析し、実装されている機能を特定してタスク一覧として整理します。実装済みの機能から逆算してタスクの構造、依存関係、実装詳細を抽出し、文書化します。
|
||
---
|
||
|
||
# rev-tasks
|
||
|
||
## 目的
|
||
|
||
既存のコードベースを分析し、実装されている機能を特定してタスク一覧として整理する。実装済みの機能から逆算してタスクの構造、依存関係、実装詳細を抽出し、文書化する。
|
||
|
||
## 前提条件
|
||
|
||
- 分析対象のコードベースが存在する
|
||
- `docs/reverse/` ディレクトリが存在する(なければ作成)
|
||
- TypeScript/JavaScript、Python、その他のコードを分析可能
|
||
|
||
## 実行内容
|
||
|
||
1. **コードベースの構造分析**
|
||
- ディレクトリ構造の把握
|
||
- 設定ファイルの確認(package.json、tsconfig.json、requirements.txt等)
|
||
- 依存関係の分析
|
||
|
||
2. **機能コンポーネントの特定**
|
||
- フロントエンドコンポーネント
|
||
- バックエンドサービス/コントローラー
|
||
- データベース関連(モデル、マイグレーション)
|
||
- ユーティリティ関数
|
||
- ミドルウェア
|
||
|
||
3. **API エンドポイントの抽出**
|
||
- REST API エンドポイント
|
||
- GraphQL リゾルバー
|
||
- WebSocket ハンドラー
|
||
- ルーティング定義
|
||
|
||
4. **データベース構造の分析**
|
||
- テーブル定義
|
||
- リレーションシップ
|
||
- マイグレーションファイル
|
||
- インデックス設定
|
||
|
||
5. **UI/UX実装の分析**
|
||
- 画面コンポーネント
|
||
- 状態管理の実装
|
||
- ルーティング
|
||
- スタイリング手法
|
||
|
||
6. **テスト実装の確認**
|
||
- 単体テストの存在
|
||
- 統合テストの存在
|
||
- E2Eテストの存在
|
||
- テストカバレッジ
|
||
|
||
7. **タスクの逆算と整理**
|
||
- 実装された機能をタスクとして分解
|
||
- タスクIDの自動割り当て
|
||
- 依存関係の推定
|
||
- 実装工数の推定
|
||
|
||
8. **ファイルの作成**
|
||
- `docs/reverse/{プロジェクト名}-discovered-tasks.md` として保存
|
||
- 発見されたタスクを構造化して文書化
|
||
|
||
## 出力フォーマット例
|
||
|
||
````markdown
|
||
# {プロジェクト名} 発見タスク一覧
|
||
|
||
## 概要
|
||
|
||
**分析日時**: {分析実行日時}
|
||
**対象コードベース**: {パス}
|
||
**発見タスク数**: {数}
|
||
**推定総工数**: {時間}
|
||
|
||
## コードベース構造
|
||
|
||
### プロジェクト情報
|
||
- **フレームワーク**: {使用フレームワーク}
|
||
- **言語**: {使用言語}
|
||
- **データベース**: {使用DB}
|
||
- **主要ライブラリ**: {主要な依存関係}
|
||
|
||
### ディレクトリ構造
|
||
```
|
||
{ディレクトリツリー}
|
||
```
|
||
|
||
## 発見されたタスク
|
||
|
||
### 基盤・設定タスク
|
||
|
||
#### DISCOVERED-001: プロジェクト初期設定
|
||
|
||
- [x] **タスク完了** (実装済み)
|
||
- **タスクタイプ**: DIRECT
|
||
- **実装ファイル**:
|
||
- `package.json`
|
||
- `tsconfig.json`
|
||
- `.env.example`
|
||
- **実装詳細**:
|
||
- {発見された設定内容}
|
||
- **推定工数**: {時間}
|
||
|
||
#### DISCOVERED-002: データベース設定
|
||
|
||
- [x] **タスク完了** (実装済み)
|
||
- **タスクタイプ**: DIRECT
|
||
- **実装ファイル**:
|
||
- `src/database/connection.ts`
|
||
- `migrations/001_initial.sql`
|
||
- **実装詳細**:
|
||
- {発見されたDB設定内容}
|
||
- **推定工数**: {時間}
|
||
|
||
### API実装タスク
|
||
|
||
#### DISCOVERED-101: ユーザー認証API
|
||
|
||
- [x] **タスク完了** (実装済み)
|
||
- **タスクタイプ**: TDD
|
||
- **実装ファイル**:
|
||
- `src/auth/auth.controller.ts`
|
||
- `src/auth/auth.service.ts`
|
||
- `src/auth/jwt.strategy.ts`
|
||
- **実装詳細**:
|
||
- ログイン/ログアウト機能
|
||
- JWT トークン発行
|
||
- 認証ミドルウェア
|
||
- **APIエンドポイント**:
|
||
- `POST /auth/login`
|
||
- `POST /auth/logout`
|
||
- `POST /auth/refresh`
|
||
- **テスト実装状況**:
|
||
- [x] 単体テスト: `auth.service.spec.ts`
|
||
- [x] 統合テスト: `auth.controller.spec.ts`
|
||
- [ ] E2Eテスト: 未実装
|
||
- **推定工数**: {時間}
|
||
|
||
### UI実装タスク
|
||
|
||
#### DISCOVERED-201: ログイン画面
|
||
|
||
- [x] **タスク完了** (実装済み)
|
||
- **タスクタイプ**: TDD
|
||
- **実装ファイル**:
|
||
- `src/components/Login/LoginForm.tsx`
|
||
- `src/components/Login/LoginForm.module.css`
|
||
- `src/hooks/useAuth.ts`
|
||
- **実装詳細**:
|
||
- ログインフォーム
|
||
- バリデーション機能
|
||
- エラーハンドリング
|
||
- **UI/UX実装状況**:
|
||
- [x] レスポンシブデザイン
|
||
- [x] ローディング状態
|
||
- [x] エラー表示
|
||
- [ ] アクセシビリティ: 部分的実装
|
||
- **テスト実装状況**:
|
||
- [x] コンポーネントテスト: `LoginForm.test.tsx`
|
||
- [ ] E2Eテスト: 未実装
|
||
- **推定工数**: {時間}
|
||
|
||
## 未実装・改善推奨事項
|
||
|
||
### 不足しているテスト
|
||
|
||
- [ ] **E2Eテストスイート**: 主要ユーザーフローのテスト
|
||
- [ ] **パフォーマンステスト**: API応答時間テスト
|
||
- [ ] **セキュリティテスト**: 認証・認可テスト
|
||
|
||
### コード品質改善
|
||
|
||
- [ ] **TypeScript型安全性**: 一部でany型の使用
|
||
- [ ] **エラーハンドリング**: 統一的なエラー処理
|
||
- [ ] **ログ出力**: 構造化ログの実装
|
||
|
||
### ドキュメント不足
|
||
|
||
- [ ] **API仕様書**: OpenAPI/Swagger未実装
|
||
- [ ] **開発者ガイド**: セットアップ手順書
|
||
- [ ] **デプロイ手順書**: 本番環境構築手順
|
||
|
||
## 依存関係マップ
|
||
|
||
```mermaid
|
||
graph TD
|
||
A[DISCOVERED-001: プロジェクト初期設定] --> B[DISCOVERED-002: データベース設定]
|
||
B --> C[DISCOVERED-101: ユーザー認証API]
|
||
C --> D[DISCOVERED-201: ログイン画面]
|
||
D --> E[未実装: E2Eテスト]
|
||
|
||
F[未実装: API仕様書] --> G[未実装: 開発者ガイド]
|
||
```
|
||
|
||
## 実装パターン分析
|
||
|
||
### アーキテクチャパターン
|
||
- **実装パターン**: {発見されたパターン}
|
||
- **状態管理**: {使用されている状態管理}
|
||
- **認証方式**: {実装されている認証方式}
|
||
|
||
### コーディングスタイル
|
||
- **命名規則**: {発見された命名規則}
|
||
- **ファイル構成**: {ファイル構成パターン}
|
||
- **エラーハンドリング**: {エラー処理パターン}
|
||
|
||
## 技術的負債・改善点
|
||
|
||
### パフォーマンス
|
||
- {発見されたパフォーマンス課題}
|
||
|
||
### セキュリティ
|
||
- {発見されたセキュリティ課題}
|
||
|
||
### 保守性
|
||
- {発見された保守性課題}
|
||
|
||
## 推奨次ステップ
|
||
|
||
1. **不足テストの実装** - 特にE2Eテストスイート
|
||
2. **ドキュメント整備** - API仕様書とセットアップガイド
|
||
3. **コード品質改善** - TypeScript型安全性とエラーハンドリング
|
||
4. **セキュリティ強化** - 認証・認可の詳細レビュー
|
||
|
||
````
|
||
|
||
## 分析対象ファイルの自動検出
|
||
|
||
### フロントエンド
|
||
- React: `*.tsx`, `*.jsx`, `*.ts`, `*.js`
|
||
- Vue: `*.vue`, `*.ts`, `*.js`
|
||
- Angular: `*.component.ts`, `*.service.ts`, `*.module.ts`
|
||
|
||
### バックエンド
|
||
- Node.js: `*.ts`, `*.js` (Express, NestJS等)
|
||
- Python: `*.py` (Django, FastAPI等)
|
||
- Java: `*.java` (Spring Boot等)
|
||
|
||
### データベース
|
||
- SQL: `*.sql`, `migrations/*`
|
||
- ORM: モデルファイル、設定ファイル
|
||
|
||
### 設定ファイル
|
||
- `package.json`, `tsconfig.json`, `webpack.config.js`
|
||
- `requirements.txt`, `Pipfile`, `pyproject.toml`
|
||
- `pom.xml`, `build.gradle`
|
||
|
||
## 実行コマンド例
|
||
|
||
```bash
|
||
# カレントディレクトリを分析
|
||
claude code rev-tasks
|
||
|
||
# 特定ディレクトリを分析
|
||
claude code rev-tasks --path ./backend
|
||
|
||
# 特定の技術スタックに絞って分析
|
||
claude code rev-tasks --tech react,nodejs
|
||
|
||
# 詳細分析(テストカバレッジ等も含む)
|
||
claude code rev-tasks --detailed
|
||
|
||
# 出力形式指定
|
||
claude code rev-tasks --format json
|
||
```
|
||
|
||
## 実行後の確認
|
||
|
||
- 発見されたタスク数と推定工数を表示
|
||
- 実装済み/未実装の機能一覧を表示
|
||
- 技術的負債・改善推奨事項をサマリー表示
|
||
- 次のリバースエンジニアリングステップ(設計書生成等)を提案
|