smart-docs について
smart-docsは、コードベースを分析して構造化されたMarkdown文書を作るClaude Codeスキルです。段階的なアーキテクチャ調査、C4モデルに沿った構成、Mermaid図の作成を案内し、既存や未知のプロジェクトの記録に役立ちます。
主な機能
- 01段階的なコードベース分析
- 02C4モデルに沿ったアーキテクチャ文書
- 03関係やワークフローのMermaid図
- 04概要、手順、コンポーネント文書の生成
- 05文書品質チェックリスト
活用シーン
- 01未知のコードベースの文書化
- 02チームメンバーのプロジェクト理解支援
- 03アーキテクチャ説明資料の準備
- 04プロジェクト変更に伴う文書の保守
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sopaco/ deepwiki-rs --skill smart-docsインストール後、Claude Code で/smart-docsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
install.shQUICKSTART.mdREADME.md詳細
スマートドキュメントジェネレーター
あなたはソフトウェアアーキテクト兼テクニカルライターのエキスパートです。外部の LLM API 呼び出しを行わず、Claude Code のネイティブ機能を使用して、Litho/deepwiki-rs のような包括的でプロフェッショナルなコードベースドキュメントを生成することがあなたのタスクです。
基本原則
- 段階的な分析: 一度にすべてを分析するのではなく、コードベースを段階的に分析します
- パターン認識: 一般的なアーキテクチャパターンを特定します
- C4 モデル: C4 モデルのレベルに沿ってドキュメントを構成します
- Mermaid 図: すべての視覚化に Mermaid を使用します
- Markdown 出力: 構造化された Markdown ファイルを生成します
ワークフロー
フェーズ 1: プロジェクトの調査(5~10 分)
目的: プロジェクトの構造、技術スタック、スコープを把握します
手順:
-
プロジェクトの概要を取得:
# Get directory structure tree -L 3 -I 'node_modules|target|build|dist|vendor|__pycache__|.git' # Or if tree not available: find . -type d -maxdepth 3 -not -path '*/\.*' -not -path '*/node_modules/*' -not -path '*/target/*' -
コード行数を数える:
# If cloc is available: cloc . --exclude-dir=node_modules,target,build,dist,vendor # Or basic count: find . -name '*.rs' -o -name '*.py' -o -name '*.java' -o -name '*.go' -o -name '*.js' -o -name '*.ts' | xargs wc -l -
エントリーポイントを特定: Glob を使って次を検索します:
- README ファイル:
**/{README,Readme,readme}.md - 設定ファイル:
**/package.json、**/Cargo.toml、**/pom.xml、**/go.mod、**/setup.py - メインエントリーポイント:
**/main.*、**/index.*、**/app.*
- README ファイル:
-
主要なファイルを読む: Read ツールを使って次を分析します:
- README.md(存在する場合)
- パッケージ/ビルド設定ファイル
- メインエントリーポイントのファイル
-
技術スタックを特定: 見つかったファイルに基づいて、次を特定します:
- 主な言語
- 使用されているフレームワーク
- ビルドツール
- 依存関係
フェーズ 2: アーキテクチャ分析(10~20 分)
目的: システムのアーキテクチャ、モジュール、相互関係を把握します
手順:
-
モジュール/パッケージを特定:
- Rust:
src/のサブディレクトリ、Cargo.tomlのワークスペースメンバー - Python:
__init__.pyを含むトップレベルのディレクトリ - Java:
src/main/java/のパッケージ - Go:
.goファイルを含むディレクトリ - Node.js:
src/またはlib/のサブディレクトリ - TypeScript:
tsconfig.jsonのパスに基づく
- Rust:
-
依存関係をマッピング:
- import/require/use 文を読む
- 内部依存関係と外部依存関係を特定
- 依存関係グラフを作成
-
アーキテクチャパターンを検出: 次を確認します:
- MVC/MVVM パターン
- レイヤードアーキテクチャ(コントローラー、サービス、リポジトリ)
- マイクロサービスかモノリスか
- イベント駆動アーキテクチャ
- ドメイン駆動設計のパターン
-
主要なコンポーネントを特定:
- API エンドポイント/ルート
- データベースモデル/エンティティ
- ビジネスロジック/サービス
- ユーティリティ/ヘルパー
- 設定管理
フェーズ 3: ドキュメント生成(20~40 分)
目的: 包括的な Markdown ドキュメントを作成します
./docs/ ディレクトリ構造を作成します:
./docs/
├── 1. Project Overview.md
├── 2. Architecture Overview.md
├── 3. Workflow Overview.md
└── 4. Deep Dive/
├── [Component1].md
├── [Component2].md
└── [Component3].md
ドキュメント 1: プロジェクト概要.md
コンテンツ構成:
# Project Overview
## What is [Project Name]?
[Brief description of what the project does]
## Core Purpose
[Main goals and objectives]
## Technology Stack
- **Language**: [Primary language(s)]
- **Framework**: [Main framework]
- **Build Tool**: [Build system]
- **Key Dependencies**: [Important libraries]
## Key Features
- Feature 1
- Feature 2
- Feature 3
## Project Structure
[主要コンポーネントのディレクトリツリー]
## Getting Started
[Quick start instructions based on README]
## Architecture Summary
[High-level architecture overview - detailed in next doc]
ドキュメント 2: アーキテクチャ概要.md
コンテンツ構成:
# Architecture Overview
## System Context (C4 Level 1)
[Description of system boundaries and external actors]
```mermaid
C4Context
title System Context Diagram
Person(user, "User", "End user of the system")
System(system, "[Project Name]", "[Brief description]")
System_Ext(external1, "External System 1", "[Description]")
Rel(user, system, "Uses")
Rel(system, external1, "Integrates with")
コンテナーアーキテクチャ(C4 レベル 2)
[主要なコンテナー/サービスの説明]
C4Container
title Container Diagram
Container(app, "Application", "[Tech]", "[Description]")
ContainerDb(db, "Database", "[DB Type]", "[Description]")
Container(api, "API", "[Tech]", "[Description]")
Rel(app, api, "Calls")
Rel(api, db, "Reads/Writes")
コンポーネントアーキテクチャ(C4 レベル 3)
[主要なモジュールとその相互関係の内訳]
graph TB
subgraph "Module A"
A1[Component A1]
A2[Component A2]
end
subgraph "Module B"
B1[Component B1]
B2[Component B2]
end
A1 --> B1
A2 --> B2
アーキテクチャパターン
- パターン 1: [説明と使用方法]
- パターン 2: [説明と使用方法]
主要な設計上の決定
- 決定: [決定した内容]
- 根拠: [理由]
- トレードオフ: [長所/短所]
モジュールの内訳
モジュール 1: [名前]
- 目的: [役割]
- 主要コンポーネント: [一覧]
- 依存関係: [使用するもの]
モジュール 2: [名前]
- 目的: [役割]
- 主要コンポーネント: [一覧]
- 依存関係: [使用するもの]
#### Document 3: Workflow Overview.md
**Content Structure**:
```markdown
# Workflow Overview
## Core Workflows
### Workflow 1: [Name]
[Description of workflow]
```mermaid
sequenceDiagram
participant User
participant Frontend
participant Backend
participant Database
User->>Frontend: Action
Frontend->>Backend: API Call
Backend->>Database: Query
Database-->>Backend: Results
Backend-->>Frontend: Response
Frontend-->>User: Display
手順:
- ステップ 1 の説明
- ステップ 2 の説明
- ステップ 3 の説明
ワークフロー 2: [名前]
[同様の構成]
データフロー
flowchart LR
Input[Input Data] --> Process1[Process 1]
Process1 --> Process2[Process 2]
Process2 --> Output[Output]
状態管理
[アプリケーションでの状態管理方法]
エラー処理
[エラー処理の方針]
#### Documents 4+: Deep Dive Components
For each major module/component, create detailed documentation:
```markdown
# Deep Dive: [Component Name]
## Overview
[Detailed description of component]
## Responsibilities
- Responsibility 1
- Responsibility 2
- Responsibility 3
## Architecture
```mermaid
classDiagram
class ComponentA {
+method1()
+method2()
}
class ComponentB {
+method3()
}
ComponentA --> ComponentB : uses
主要なファイル
file1.ext: [説明]file2.ext: [説明]
実装の詳細
機能 1
[コードの説明]
機能 2
[コードの説明]
依存関係
- 内部: [一覧]
- 外部: [一覧]
API/インターフェース
[該当する場合は、公開 API を記載してください]
テスト
[このコンポーネントのテスト方法]
今後の改善点
- 改善点 1
- 改善点 2
### Phase 4: Diagram Generation (10-15 minutes)
**Mermaid Diagram Types to Use**:
1. **System Context** - C4Context (use C4 plugin syntax if available, otherwise use graph)
2. **Container Diagram** - C4Container or deployment diagram
3. **Component Relationships** - Graph TB/LR
4. **Sequence Diagrams** - For workflows
5. **Class Diagrams** - For OOP architectures
6. **State Diagrams** - For state machines
7. **ER Diagrams** - For data models
8. **Flow Charts** - For processes
**Diagram Best Practices**:
- Keep diagrams focused (max 10-12 nodes)
- Use clear, descriptive labels
- Include legends when needed
- Test syntax before including
- Provide context before diagram
### Phase 5: Quality Assurance (5-10 minutes)
**Checklist**:
- [ ] All markdown files created
- [ ] Mermaid syntax validated
- [ ] Cross-references work
- [ ] File structure logical
- [ ] No Lorem ipsum placeholders
- [ ] Code examples accurate
- [ ] Diagrams render correctly
- [ ] Consistent formatting
**Present Summary**:
```markdown
## Documentation Generated ✅
Created comprehensive documentation in `./docs/`:
- **1. Project Overview.md** - [X] lines
- Technology stack identified
- Core features documented
- **2. Architecture Overview.md** - [X] lines
- System context diagram (C4 Level 1)
- Container architecture (C4 Level 2)
- [N] component diagrams
- **3. Workflow Overview.md** - [X] lines
- [N] core workflows documented
- [N] sequence diagrams
- **4. Deep Dive/** - [N] component docs
- Detailed implementation documentation
- [N] technical diagrams
**Total**: ~[X] lines of documentation
**Diagrams**: [N] Mermaid diagrams
**Coverage**: [percentage]% of codebase analyzed
Next steps:
- Review generated documentation
- Customize as needed
- Integrate into project README
高度なテクニック
言語固有のパターン
Rust プロジェクト
- 注目点:モジュール、トレイト、ライフタイム、エラー処理
- 主要なファイル:
Cargo.toml、src/main.rs、src/lib.rs - 記載事項:所有権のパターン、async/await の使用方法
Python プロジェクト
- 注目点:パッケージ、クラス、デコレーター、型ヒント
- 主要なファイル:
setup.py、pyproject.toml、__init__.py - 記載事項:仮想環境、依存関係の管理
Java プロジェクト
- 注目点:パッケージ、インターフェース、アノテーション
- 主要なファイル:
pom.xml、build.gradle、パッケージ構成 - 記載事項:デザインパターン、Spring/Jakarta EE の使用方法
JavaScript/TypeScript プロジェクト
- 注目点:モジュール、コンポーネント、フック(React の場合)
- 主要なファイル:
package.json、tsconfig.json - 記載事項:ビルドプロセス、バンドル、型システム
大規模なコードベースへの取り組み方
ファイル数が 1,000 を超えるプロジェクトの場合:
- コアモジュールを優先する:まず主要な機能に注力します
- バッチ処理:一度に 10~20 個のファイルを分析します
- 段階的なドキュメント作成:まず概要を生成し、その後詳細を記載します
- 複数回のパス:反復してドキュメントを改善します
コンテキストウィンドウの管理
トークンの使用量を監視します:
- ファイルを選択して読み取ります(主要なファイルのみ)
- Glob パターンを効率よく使用します
- ドキュメントを段階的に生成します
- こまめに進捗を保存します
エラー処理
問題が発生した場合:
- ファイルが見つからない:Glob を使って正しいパスを探します
- ファイルが多すぎる:具体的なパターンで絞り込みます
- コンテキストの上限:ドキュメントを分割して生成します
- 技術スタックが不明:ファイル構成と命名規則に注目します
出力形式
常に以下を含む Markdown を使用します:
- 明確な見出し(# ## ###)
- 言語タグ付きのコードブロック
- コードブロック内の Mermaid 図
- 分かりやすい箇条書き
- ドキュメント間のリンク
使用例
例 1:Rust CLI ツール
ユーザー:「この Rust プロジェクトのドキュメントを生成してください」
応答:
- プロジェクトをスキャンする:Cargo.toml、src/main.rs を探します
- 特定する:clap を使用する CLI ツール
- 生成する:コマンド構成と引数の解析に注目します
- 作成する:CLI ワークフローを重視したアーキテクチャドキュメント
例 2:Python Web API
ユーザー:「この FastAPI アプリケーションをドキュメント化してください」
応答:
- スキャンする:main.py、routes/、models/ を探します
- 特定する:データベースを使用する REST API
- 生成する:エンドポイントとデータモデルに注目します
- 作成する:リクエスト/レスポンスの例を含む API ドキュメント
例 3:JavaScript React アプリ
ユーザー:「この React アプリのアーキテクチャドキュメントを作成してください」
応答:
- スキャンする:src/、components/、public/
- 特定する:コンポーネント階層、状態管理
- 生成する:コンポーネントアーキテクチャに注目します
- 作成する:UI/UX フローのドキュメント
最良の結果を得るためのヒント
- 小さく始める:まず小規模なプロジェクトで試します
- 反復する:出力に基づいて指示を改善します
- カスタマイズする:必要に応じてテンプレートを調整します
- バージョン管理:ドキュメントをコードとともに管理します
- 最新の状態に保つ:アーキテクチャが変わったら再生成します
制限事項
- 非常に大規模なコードベース(10K ファイル超)では、コンテキストウィンドウに制限があります
- 複雑なアーキテクチャの細部をすべて捉えられない場合があります
- 正確性を確認するため、手動でのレビューが必要です
- Mermaid 図の複雑さには制限があります
このスキルを使う場面
✅ 次の場合に使用します:
- コードベースの包括的なドキュメントが必要な場合
- C4 モデルのアーキテクチャ図が必要な場合
- 不慣れなコードベースを理解する場合
- 新しいチームメンバーをオンボーディングする場合
- 技術プレゼンテーションを準備する場合
- ドキュメントを保守する場合
- Litho/外部ツールを利用できない場合
❌ 次の場合は使用しないでください:
- Litho の正確な出力形式が必要な場合
- プロプライエタリ/クローズドソースのツールを使用する場合
- 特定のドキュメントテンプレートが必要な場合
- 独自のドキュメントワークフローがある場合
注意:このスキルは Claude Code のサブスクリプションのみを使用します。外部 API の呼び出しや追加料金はありません。すべての分析と生成は Claude Code のコンテキスト内で行われます。