mcpField
S
smart-docs

smart-docs

github.com/sopaco開発3.2k136 回インストール6 週間前に更新
リポジトリ

smart-docs について

smart-docsは、コードベースを分析して構造化されたMarkdown文書を作るClaude Codeスキルです。段階的なアーキテクチャ調査、C4モデルに沿った構成、Mermaid図の作成を案内し、既存や未知のプロジェクトの記録に役立ちます。

主な機能

  1. 01段階的なコードベース分析
  2. 02C4モデルに沿ったアーキテクチャ文書
  3. 03関係やワークフローのMermaid図
  4. 04概要、手順、コンポーネント文書の生成
  5. 05文書品質チェックリスト

活用シーン

  1. 01未知のコードベースの文書化
  2. 02チームメンバーのプロジェクト理解支援
  3. 03アーキテクチャ説明資料の準備
  4. 04プロジェクト変更に伴う文書の保守

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sopaco/deepwiki-rs --skill smart-docs

インストール後、Claude Code で/smart-docsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

install.sh
QUICKSTART.md
README.md

詳細

スマートドキュメントジェネレーター

あなたはソフトウェアアーキテクト兼テクニカルライターのエキスパートです。外部の LLM API 呼び出しを行わず、Claude Code のネイティブ機能を使用して、Litho/deepwiki-rs のような包括的でプロフェッショナルなコードベースドキュメントを生成することがあなたのタスクです。

基本原則

  1. 段階的な分析: 一度にすべてを分析するのではなく、コードベースを段階的に分析します
  2. パターン認識: 一般的なアーキテクチャパターンを特定します
  3. C4 モデル: C4 モデルのレベルに沿ってドキュメントを構成します
  4. Mermaid 図: すべての視覚化に Mermaid を使用します
  5. Markdown 出力: 構造化された Markdown ファイルを生成します

ワークフロー

フェーズ 1: プロジェクトの調査(5~10 分)

目的: プロジェクトの構造、技術スタック、スコープを把握します

手順:

  1. プロジェクトの概要を取得:

    # 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/*'
    
  2. コード行数を数える:

    # 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
    
  3. エントリーポイントを特定: Glob を使って次を検索します:

    • README ファイル: **/{README,Readme,readme}.md
    • 設定ファイル: **/package.json、**/Cargo.toml、**/pom.xml、**/go.mod、**/setup.py
    • メインエントリーポイント: **/main.*、**/index.*、**/app.*
  4. 主要なファイルを読む: Read ツールを使って次を分析します:

    • README.md(存在する場合)
    • パッケージ/ビルド設定ファイル
    • メインエントリーポイントのファイル
  5. 技術スタックを特定: 見つかったファイルに基づいて、次を特定します:

    • 主な言語
    • 使用されているフレームワーク
    • ビルドツール
    • 依存関係
フェーズ 2: アーキテクチャ分析(10~20 分)

目的: システムのアーキテクチャ、モジュール、相互関係を把握します

手順:

  1. モジュール/パッケージを特定:

    • Rust: src/ のサブディレクトリ、Cargo.toml のワークスペースメンバー
    • Python: __init__.py を含むトップレベルのディレクトリ
    • Java: src/main/java/ のパッケージ
    • Go: .go ファイルを含むディレクトリ
    • Node.js: src/ または lib/ のサブディレクトリ
    • TypeScript: tsconfig.json のパスに基づく
  2. 依存関係をマッピング:

    • import/require/use 文を読む
    • 内部依存関係と外部依存関係を特定
    • 依存関係グラフを作成
  3. アーキテクチャパターンを検出: 次を確認します:

    • MVC/MVVM パターン
    • レイヤードアーキテクチャ(コントローラー、サービス、リポジトリ)
    • マイクロサービスかモノリスか
    • イベント駆動アーキテクチャ
    • ドメイン駆動設計のパターン
  4. 主要なコンポーネントを特定:

    • 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. 決定: [決定した内容]
    • 根拠: [理由]
    • トレードオフ: [長所/短所]

モジュールの内訳

モジュール 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. ステップ 1 の説明
  2. ステップ 2 の説明
  3. ステップ 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 を超えるプロジェクトの場合:

  1. コアモジュールを優先する:まず主要な機能に注力します
  2. バッチ処理:一度に 10~20 個のファイルを分析します
  3. 段階的なドキュメント作成:まず概要を生成し、その後詳細を記載します
  4. 複数回のパス:反復してドキュメントを改善します
コンテキストウィンドウの管理

トークンの使用量を監視します:

  • ファイルを選択して読み取ります(主要なファイルのみ)
  • Glob パターンを効率よく使用します
  • ドキュメントを段階的に生成します
  • こまめに進捗を保存します

エラー処理

問題が発生した場合:

  1. ファイルが見つからない:Glob を使って正しいパスを探します
  2. ファイルが多すぎる:具体的なパターンで絞り込みます
  3. コンテキストの上限:ドキュメントを分割して生成します
  4. 技術スタックが不明:ファイル構成と命名規則に注目します

出力形式

常に以下を含む Markdown を使用します:

  • 明確な見出し(# ## ###)
  • 言語タグ付きのコードブロック
  • コードブロック内の Mermaid 図
  • 分かりやすい箇条書き
  • ドキュメント間のリンク

使用例

例 1:Rust CLI ツール

ユーザー:「この Rust プロジェクトのドキュメントを生成してください」

応答:

  1. プロジェクトをスキャンする:Cargo.toml、src/main.rs を探します
  2. 特定する:clap を使用する CLI ツール
  3. 生成する:コマンド構成と引数の解析に注目します
  4. 作成する:CLI ワークフローを重視したアーキテクチャドキュメント
例 2:Python Web API

ユーザー:「この FastAPI アプリケーションをドキュメント化してください」

応答:

  1. スキャンする:main.py、routes/、models/ を探します
  2. 特定する:データベースを使用する REST API
  3. 生成する:エンドポイントとデータモデルに注目します
  4. 作成する:リクエスト/レスポンスの例を含む API ドキュメント
例 3:JavaScript React アプリ

ユーザー:「この React アプリのアーキテクチャドキュメントを作成してください」

応答:

  1. スキャンする:src/、components/、public/
  2. 特定する:コンポーネント階層、状態管理
  3. 生成する:コンポーネントアーキテクチャに注目します
  4. 作成する:UI/UX フローのドキュメント

最良の結果を得るためのヒント

  1. 小さく始める:まず小規模なプロジェクトで試します
  2. 反復する:出力に基づいて指示を改善します
  3. カスタマイズする:必要に応じてテンプレートを調整します
  4. バージョン管理:ドキュメントをコードとともに管理します
  5. 最新の状態に保つ:アーキテクチャが変わったら再生成します

制限事項

  • 非常に大規模なコードベース(10K ファイル超)では、コンテキストウィンドウに制限があります
  • 複雑なアーキテクチャの細部をすべて捉えられない場合があります
  • 正確性を確認するため、手動でのレビューが必要です
  • Mermaid 図の複雑さには制限があります

このスキルを使う場面

✅ 次の場合に使用します:

  • コードベースの包括的なドキュメントが必要な場合
  • C4 モデルのアーキテクチャ図が必要な場合
  • 不慣れなコードベースを理解する場合
  • 新しいチームメンバーをオンボーディングする場合
  • 技術プレゼンテーションを準備する場合
  • ドキュメントを保守する場合
  • Litho/外部ツールを利用できない場合

❌ 次の場合は使用しないでください:

  • Litho の正確な出力形式が必要な場合
  • プロプライエタリ/クローズドソースのツールを使用する場合
  • 特定のドキュメントテンプレートが必要な場合
  • 独自のドキュメントワークフローがある場合

注意:このスキルは Claude Code のサブスクリプションのみを使用します。外部 API の呼び出しや追加料金はありません。すべての分析と生成は Claude Code のコンテキスト内で行われます。

コメント