adr-rubber-duck
ADR(Architecture Decision Record)の壁打ち相手としてヒアリングを通じて意思決定を整理し、ADRドラフトを作成する
既存のコードベースから技術設計文書を逆生成します。実装されたアーキテクチャ、データフロー、API仕様、データベーススキーマ、TypeScriptインターフェースを分析し、設計書として文書化します。
> /plugin marketplace add classmethod/tsumiki > /plugin install tsumiki@tsumiki
How it fires
How this command gets triggered: by you, by Claude, or both.
/rev-designContext preview
What this command does when you run it.
既存のコードベースから技術設計文書を逆生成します。実装されたアーキテクチャ、データフロー、API仕様、データベーススキーマ、TypeScriptインターフェースを分析し、設計書として文書化します。
description: 既存のコードベースから技術設計文書を逆生成します。実装されたアーキテクチャ、データフロー、API仕様、データベーススキーマ、TypeScriptインターフェースを分析し、設計書として文書化します。
既存のコードベースから技術設計文書を逆生成する。実装されたアーキテクチャ、データフロー、API仕様、データベーススキーマ、TypeScriptインターフェースを分析し、設計書として文書化する。
1. **アーキテクチャの分析**
2. **データフローの抽出**
3. **API仕様の抽出**
4. **データベーススキーマの逆生成**
5. **TypeScript型定義の整理**
6. **コンポーネント設計の分析**
7. **ファイルの作成**
# {要件名} アーキテクチャ設計(逆生成)
## 分析日時
{実行日時}
## システム概要
### 実装されたアーキテクチャ
- **パターン**: {特定されたアーキテクチャパターン}
- **フレームワーク**: {使用フレームワーク}
- **構成**: {発見された構成}
### 技術スタック
#### フロントエンド
- **フレームワーク**: {React/Vue/Angular等}
- **状態管理**: {Redux/Zustand/Pinia等}
- **UI ライブラリ**: {Material-UI/Ant Design等}
- **スタイリング**: {CSS Modules/styled-components等}
#### バックエンド
- **フレームワーク**: {Express/NestJS/FastAPI等}
- **認証方式**: {JWT/Session/OAuth等}
- **ORM/データアクセス**: {TypeORM/Prisma/Sequelize等}
- **バリデーション**: {Joi/Yup/zod等}
#### データベース
- **DBMS**: {PostgreSQL/MySQL/MongoDB等}
- **キャッシュ**: {Redis/Memcached等 or なし}
- **接続プール**: {実装されているか}
#### インフラ・ツール
- **ビルドツール**: {Webpack/Vite/Rollup等}
- **テストフレームワーク**: {Jest/Vitest/Pytest等}
- **コード品質**: {ESLint/Prettier/SonarQube等}
## レイヤー構成
### 発見されたレイヤー{実際のディレクトリ構造}
### レイヤー責務分析
- **プレゼンテーション層**: {実装状況}
- **アプリケーション層**: {実装状況}
- **ドメイン層**: {実装状況}
- **インフラストラクチャ層**: {実装状況}
## デザインパターン
### 発見されたパターン
- **Dependency Injection**: {実装されているか}
- **Repository Pattern**: {実装されているか}
- **Factory Pattern**: {使用箇所}
- **Observer Pattern**: {使用箇所}
- **Strategy Pattern**: {使用箇所}
## 非機能要件の実装状況
### セキュリティ
- **認証**: {実装方式}
- **認可**: {実装方式}
- **CORS設定**: {設定状況}
- **HTTPS対応**: {対応状況}
### パフォーマンス
- **キャッシュ**: {実装状況}
- **データベース最適化**: {インデックス等}
- **CDN**: {使用状況}
- **画像最適化**: {実装状況}
### 運用・監視
- **ログ出力**: {実装状況}
- **エラートラッキング**: {実装状況}
- **メトリクス収集**: {実装状況}
- **ヘルスチェック**: {実装状況}# データフロー図(逆生成)
## ユーザーインタラクションフロー
### 認証フロー
\`\`\`mermaid
sequenceDiagram
participant U as ユーザー
participant F as フロントエンド
participant B as バックエンド
participant D as データベース
U->>F: ログイン情報入力
F->>B: POST /auth/login
B->>D: ユーザー検証
D-->>B: ユーザー情報
B-->>F: JWTトークン
F-->>U: ログイン完了
\`\`\`
### データ取得フロー
\`\`\`mermaid
flowchart TD
A[ユーザーアクション] --> B[Reactコンポーネント]
B --> C[useQueryフック]
C --> D[Axios HTTP Client]
D --> E[API Gateway/Express]
E --> F[コントローラー]
F --> G[サービス層]
G --> H[リポジトリ層]
H --> I[データベース]
I --> H
H --> G
G --> F
F --> E
E --> D
D --> C
C --> B
B --> J[UI更新]
\`\`\`
## 状態管理フロー
### {使用されている状態管理ライブラリ} フロー
\`\`\`mermaid
flowchart LR
A[コンポーネント] --> B[Action Dispatch]
B --> C[Reducer/Store]
C --> D[State更新]
D --> A
\`\`\`
## エラーハンドリングフロー
\`\`\`mermaid
flowchart TD
A[エラー発生] --> B{エラー種別}
B -->|認証エラー| C[リダイレクト to ログイン]
B -->|ネットワークエラー| D[リトライ機能]
B -->|バリデーションエラー| E[フォームエラー表示]
B -->|サーバーエラー| F[エラートースト表示]
\`\`\`# API仕様書(逆生成)
## ベースURL
\`{発見されたベースURL}\`
## 認証方式
{発見された認証方式の詳細}
## エンドポイント一覧
### 認証関連
#### POST /auth/login
**説明**: ユーザーログイン
**リクエスト**:
\`\`\`typescript
{
email: string;
password: string;
}
\`\`\`
**レスポンス**:
\`\`\`typescript
{
success: boolean;
data: {
token: string;
user: {
id: string;
email: string;
name: string;
}
};
}
\`\`\`
**エラーレスポンス**:
\`\`\`typescript
{
success: false;
error: {
code: string;
message: string;
}
}
\`\`\`
#### POST /auth/logout
**説明**: ユーザーログアウト
**ヘッダー**:
\`\`\`
Authorization: Bearer {token}
\`\`\`
### {その他のエンドポイント}
## エラーコード一覧
| コード | メッセージ | 説明 |
|--------|------------|------|
| AUTH_001 | Invalid credentials | 認証情報が無効 |
| AUTH_002 | Token expired | トークンが期限切れ |
| VALID_001 | Validation failed | バリデーションエラー |
## レスポンス共通形式
### 成功レスポンス
\`\`\`typescript
{
success: true;
data: T; // 型は endpoint によって変動
}
\`\`\`
### エラーレスポンス
\`\`\`typescript
{
success: false;
error: {
code: string;
message: string;
details?: any;
}
}
\`\`\`# データベース設計(逆生成)
## スキーマ概要
### テーブル一覧
{発見されたテーブル一覧}
### ER図
\`\`\`mermaid
erDiagram
USERS {
uuid id PK
varchar email UK
varchar name
timestamp created_at
timestamp updated_at
}
POSTS {
uuid id PK
uuid user_id FK
varchar title
text content
timestamp created_at
timestamp updated_at
}
USERS ||--o{ POSTS : creates
\`\`\`
## テーブル詳細
### users テーブル
\`\`\`sql
{実際のCREATE TABLE文}
\`\`\`
**カラム説明**:
- \`id\`: {説明}
- \`email\`: {説明}
- \`name\`: {説明}
**インデックス**:
- \`idx_users_email\`: email カラムの検索用
### {その他のテーブル}
## 制約・関係性
### 外部キー制約
{発見された外部キー制約}
### ユニーク制約
{発見されたユニーク制約}
## データアクセスパターン
### よく使用されるクエリ
{コードから発見されたクエリパターン}
### パフォーマンス考慮事項
{発見されたインデックス戦略}// ======================
// エンティティ型定義
// ======================
export interface User {
id: string;
email: string;
name: string;
createdAt: Date;
updatedAt: Date;
}
export interface Post {
id: string;
userId: string;
title: string;
content: string;
createdAt: Date;
updatedAt: Date;
user?: User;
}
// =============TsumikiはAI駆動開発のためのフレームワークです。要件定義から実装まで、AIを活用した効率的な開発プロセスを提供します。 基本的にClaude Codeをサポートしますが、それ以外のツールでも使用できます。Claude Code以外のツールでtsumikiを使用する を参照してください。
Repo: classmethod/tsumiki
ADR(Architecture Decision Record)の壁打ち相手としてヒアリングを通じて意思決定を整理し、ADRドラフトを作成する
テストエラーを解消するための自動デバッグプロセス。全テストケースの確認からエラー原因の調査、修正まで段階的に実行し、テストケースの成功率向上を目指します。
ビルドエラー(コンパイルエラー、型エラー、依存パッケージ未解決)を自動的に分析・修正します。auto-debugから委譲される他、ユーザが直接呼び出すことも可能です。
システムの各レイヤーにおける包括的なエッジケース・エラー状態を詳細に分析し、見落としがちな異常系シナリオを洗い出します