[ドキュメント] リバースエンジニアリングによるドキュメント作成(俯瞰/引き継ぎ用)
Scanned 2/12/2026
Install to Claude Code
npx -y skills add mae616/ai-template --skill docs-reverse --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Docs Reverse?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mae616-docs-reverse)More formats (shields.io, HTML) on the badges page.
---
user-invocable: true
description: "[ドキュメント] リバースエンジニアリングによるドキュメント作成(俯瞰/引き継ぎ用)"
---
# [ドキュメント] リバースエンジニアリングによるドキュメント作成(俯瞰/引き継ぎ用)
## 入力: `$ARGUMENTS`(解析対象ディレクトリの相対パスを**半角スペース区切り**で複数可)
例:
src backend/services packages/auth
---
## 🎯 目的
- AIが作ったアプリを、**人間もAIも**俯瞰/詳細で理解できるドキュメントを生成/更新する
- 新しい人が既存アプリを理解でき、開発者が「AIが何をしたか/どう作ったか」を追える状態にする
- **Google Design Doc** の構成要素を踏襲し、設計判断の背景・トレードオフを可視化する
- **SSOT(Single Source of Truth)** を守りつつ、生成物を `doc/generated/reverse/` に集約
---
## 前提/参照(SSOT)
- **SSOT**: `doc/input/rdd.md`, `doc/input/architecture.md`, `doc/input/design/*`(存在すれば)
- **生成物の出力先**: `doc/generated/reverse/`(上書き更新してよい。履歴はGitで追跡)
---
## 出力ドキュメント構成
```
doc/generated/reverse/
├── index.md # 入口 + 読み方ガイド
├── overview.md # 俯瞰(背景/目標/非目標/システム概要)
├── architecture.md # アーキテクチャ(設計判断/代替案/トレードオフ)
├── database.md # DB詳細(スキーマ/ER図/制約)
├── api.md # API仕様(あれば)
├── security.md # セキュリティ考慮(あれば)
├── observability.md # 監視/メトリクス(あれば)
├── modules/ # モジュール詳細
│ └── {module}.md
└── ssot_diff.md # SSOT差分提案(あれば)
```
---
## 各ドキュメントの定型構造
### index.md(入口)
```markdown
# {プロジェクト名} 設計ドキュメント
## このドキュメントについて
- 生成日時: YYYY-MM-DD
- 解析対象: {対象ディレクトリ}
- SSOT参照: doc/input/rdd.md, doc/input/architecture.md
## 読む順番(推奨)
1. [overview.md](overview.md) - まず全体像を把握
2. [architecture.md](architecture.md) - 設計判断の背景を理解
3. [database.md](database.md) - データ構造を確認
4. [api.md](api.md) - 外部インターフェースを確認
5. [modules/](modules/) - 必要なモジュールを深掘り
## SSOT差分(要確認)
- [ssot_diff.md](ssot_diff.md) - SSOTとの差分提案
```
### overview.md(俯瞰 - Design Doc: Overview/Background/Goals)
```markdown
# システム概要
## 背景(Background)
<!-- なぜこのシステムが存在するか。rdd.md から抽出または推測 -->
## 目標(Goals)
<!-- このシステムが達成すべきこと -->
## 非目標(Non-Goals)
<!-- 明示的にスコープ外としていること -->
## システム構成図
<!-- Mermaid: コンポーネント図/コンテキスト図 -->
## 主要な技術スタック
<!-- 使用言語/フレームワーク/インフラ -->
## 次に読むべきドキュメント
- 設計判断の詳細 → [architecture.md](architecture.md)
- データ構造 → [database.md](database.md)
```
### architecture.md(アーキテクチャ - Design Doc: Design/Alternatives/Trade-offs)
```markdown
# アーキテクチャ
## 設計方針
<!-- アーキテクチャパターン、レイヤー構成 -->
## コンポーネント図
<!-- Mermaid: C4 Component または簡易ブロック図 -->
## データフロー
<!-- Mermaid: シーケンス図またはフローチャート -->
## 設計判断(ADR-lite)
### {判断1: 例}
- **決定**: {何を選んだか}
- **理由**: {なぜ選んだか}
- **代替案**: {検討したが採用しなかった案}
- **トレードオフ**: {この決定による得失}
## 依存関係
<!-- 外部サービス/ライブラリへの依存 -->
```
### database.md(DB詳細)
```markdown
# データベース設計
## 概要
<!-- DB種別、接続情報の概要(認証情報は除く) -->
## ER図
<!-- Mermaid erDiagram: エンティティ関係図 -->
## テーブル定義
### {テーブル名}
| カラム | 型 | 制約 | 説明 |
|--------|-----|------|------|
| id | UUID | PK | 主キー |
| ... | ... | ... | ... |
**インデックス:**
- `idx_{name}`: {対象カラム} - {目的}
**制約:**
- FK: {外部キー制約の説明}
- UNIQUE: {一意制約の説明}
- CHECK: {チェック制約の説明}
## マイグレーション履歴(検出できれば)
| バージョン | 日時 | 概要 |
|------------|------|------|
| ... | ... | ... |
## データフロー
<!-- どのテーブルがどの処理で更新されるか -->
```
### api.md(API仕様)
```markdown
# API仕様
## 認証方式
<!-- JWT/Session/API Key 等 -->
## エンドポイント一覧
### {グループ名}
#### `{METHOD} {path}`
- **認証**: 要/不要
- **説明**: {概要}
- **リクエスト例**:
```json
{}
```
- **レスポンス例**:
```json
{}
```
- **エラーコード**:
- `400`: {説明}
- `401`: {説明}
```
### security.md(セキュリティ考慮)
```markdown
# セキュリティ考慮
## 認証・認可
<!-- 認証方式、権限モデル -->
## データ保護
<!-- 暗号化、個人情報の扱い -->
## 入力検証
<!-- バリデーション方針 -->
## 既知のリスクと対策
| リスク | 対策 | 状態 |
|--------|------|------|
| ... | ... | 対応済/TODO |
```
### observability.md(監視・メトリクス)
```markdown
# 監視・観測性
## ログ
<!-- ログレベル、出力先、フォーマット -->
## メトリクス
<!-- 収集している指標 -->
## アラート
<!-- 設定しているアラート条件 -->
## トレーシング
<!-- 分散トレーシングの有無 -->
```
### modules/{module}.md(モジュール詳細)
```markdown
# {モジュール名}
## 責務
<!-- このモジュールが担う責任 -->
## 公開インターフェース
<!-- エクスポートしている関数/クラス -->
## 依存関係図
<!-- Mermaid: このモジュールの依存 -->
## 主要な処理フロー
<!-- Mermaid: シーケンス図 -->
## 設計意図
<!-- なぜこの構造にしたか -->
```
---
## Mermaid検証(必須)
図を出力する際は、以下の手順で**描画可能性を検証**する:
1. **構文チェック**: Mermaid記法が正しいか確認
2. **検証コマンド**(`mmdc` がある場合):
```bash
# mermaid-cliでバリデーション
echo '{mermaid_code}' | npx -y @mermaid-js/mermaid-cli -i - -o /dev/null
```
3. **エラー時**: 構文を修正してから出力(推測で壊れた図を出さない)
4. **検証不可時**: 「※ Mermaid構文は手動確認推奨」と注記
### Mermaid記法の注意点
- ノード名に特殊文字がある場合は `""` で囲む
- 日本語ラベルは `["日本語"]` 形式を使う
- 長いラベルは改行 `<br/>` で分割
---
## 実行仕様
### 1. コード解析
- エントリポイント(CLI/HTTP/RPC/イベント/ジョブ)を特定
- データモデル(エンティティ/DTO/スキーマ)を抽出
- 依存関係(import/require)をグラフ化
- Docコメント(JSDoc/Docstring)を抽出
### 2. DB解析(存在する場合)
- スキーマ定義ファイル(Prisma/TypeORM/Drizzle/SQL等)を検出
- マイグレーションファイルを検出
- ER図をMermaidで生成
### 3. SSOT整合チェック
- `doc/input/rdd.md`, `doc/input/architecture.md` との差分を検出
- 不一致は `ssot_diff.md` に提案として記録(勝手に上書きしない)
### 4. ドキュメント生成
- 各ドキュメントを定型構造で生成/更新
- **図と説明は同じファイルに配置**(別ファイルに分離しない)
- 各ドキュメント末尾に「次に読むべきドキュメント」を記載
---
## 品質チェックリスト
- [ ] SSOT整合(rdd.md / architecture.md との齟齬を ssot_diff.md に記録)
- [ ] Mermaid図が検証済み(構文エラーなし)
- [ ] 各ドキュメントに定型ヘッダー(目的/スコープ)あり
- [ ] 図と説明が同じファイルに配置されている
- [ ] 「次に読むべきドキュメント」が各ファイル末尾にある
- [ ] DB詳細(database.md)にER図とテーブル定義がある
- [ ] 設計判断(ADR-lite)にトレードオフが明記されている
- [ ] Docコメント不足箇所はTODOで明示
---
## 自己評価(1–10)
- 自信度: X/10
- 根拠(1行): …
- 次の改善(2–3件): …
---
## 変更要求(ADR-lite)テンプレ(必要時のみ)
```
Change Request: {タイトル}
- RDD参照: doc/input/rdd.md §{該当セクション}
- 現状の制約: {なぜRDD準拠だと難しいか}
- 提案差分: {スタック/設計の変更内容(最小)}
- 影響: {テスト/運用/セキュリティ/コスト}
- 代替案: {検討したが採用しない案}
- 戻し方: {ロールバック手順}
- 推奨: 承認/却下の判断材料
```
---
## 備考
- **Docコメント不足**の箇所は TODO として明示。次スプリントで補完。
- 技術スタック逸脱が必要な場合は **変更要求(ADR-lite)** を同時出力し、**承認が出るまで実装反映は行わない**。
- セキュリティ/監視の情報がコードから検出できない場合は、該当ファイルをスキップ(空ファイルを作らない)。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!