# 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
```

## 実行後の確認

- 発見されたタスク数と推定工数を表示
- 実装済み/未実装の機能一覧を表示
- 技術的負債・改善推奨事項をサマリー表示
- 次のリバースエンジニアリングステップ（設計書生成等）を提案 