プロジェクト

全般

プロフィール

機能 #47

完了

機能 #38: [Phase0] 開発基盤の定義と管理ルールの実装

現在のシステム構成を解析するツール

吉田 明 さんが2ヶ月前に追加. 約2ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
カテゴリ:
開発ツールなど
対象バージョン:
開始日:
2025/12/25
期日:
進捗率:

0%

予定工数:

説明

あなたに、今のシステムのディレクトリ構成を伝えたいのですが、ただのtreeじゃなくて、ディレクトリ毎に内容を調査しながら、それらがどんな役割のディレクトリなのかAIで判断するようなツールって作れるものですかね。

はい、作成できます。指定されたディレクトリ構造を解析し、各ディレクトリの役割を推測して説明するPythonスクリプトを作成しましょう。

このツールは以下の様な動作をします。

プロジェクト内のディレクトリを再帰的にスキャンします。
各ディレクトリに含まれるファイル名や拡張子(例: init.py, models.py, views.py, .md)を分析します。
分析結果に基づき、そのディレクトリが「Djangoアプリケーション」「ドキュメントフォルダ」「設定ファイル置き場」といった、どのような役割を持つかを推測します。
.gitや.venv、__pycache__のような一般的で分析が不要なディレクトリは無視します。
最終的に、ディレクトリ構造とそれぞれの役割をまとめたレポートを出力します。
このツールをtools/py_system/analyze_project_structure.pyという名前で作成します。作業を開始してもよろしいですか?

吉田 明 さんが2ヶ月前に更新

プロジェクト構造分析レポート

  1. プロジェクトの全体像
    このプロジェクト(keinasystem01)の目的は、栽培と販売を統合管理する新しい「恵菜ファーム統合システム」を構築することです。

その中核的なタスクとして、既に存在し、実際に稼働していたDjango製の「お米販売システム (riceshop)」を、この新しい統合システムの一部として取り込む(=マイグレーションまたは再構築する)ことが計画されています。

この「新システムの構築」と「旧システムの統合」という2つの大きな目的を理解することが、ディレクトリ構造を正確に読み解く鍵となります。

  1. ディレクトリ別役割分析
    . (ルートディレクトリ)

役割: プロジェクト全体に関わる設定ファイルが置かれています。
主要ファイル:
.env: データベース接続情報やAPIキーなど、環境に依存する秘密情報を格納します。
.gitignore: Gitのバージョン管理から除外するファイル(例: .venv)を指定します。
project_structure.txt, riceshop_structure.txt: 過去に作成された、構造確認用のメモやコマンド出力結果だと思われます。
docs/

役割: プロジェクトの全ドキュメントを格納する、設計と思想の宝庫です。
主要ファイル/ディレクトリ:
AboutThisSystem.txt: 最重要ドキュメント。これから作る新システムの全体像と目的を定義しています。
riceshop/: 旧システムである「お米販売システム」の、極めて詳細な要件定義書、設計書群です。新システムへ統合する際の仕様書として機能します。
roadmap/, tools/ など: 新システム開発のロードマップや、利用するツールに関するドキュメントが格納されていると考えられます。
reference/

役割: 統合対象となる旧システムの「現物」を保管する参照場所です。
主要ディレクトリ:
riceshop/: 旧システム「お米販売システム」の全ソースコードが格納されています。これは、これから作る新システムのコードではなく、分析・移行の対象となる参照用のコードです。
tools/

役割: 新システムの開発を効率化・自動化するための補助ツール群です。
主要ディレクトリ:
py_system/codebase_investigator/: 我々が今まさに作成している、このコードベース分析ツールの格納場所です。
reg_system/: doc_generator.py(ドキュメント生成)、merge_and_verify.py(マージ検証)といったファイル名から、reg_systemというサブシステムに関する開発補助ツール、特にAI(Dify)を活用した作業を支援するツール群と推測されます。
tests/

役割: 新システムの品質を担保するための自動テストコードが格納されます。
主要ディレクトリ:
reg_system/: toolsディレクトリにも登場した reg_system のためのテストが用意されています。これは、reg_system が新システムを構成する、独立してテスト可能なコンポーネントであることを強く示唆しています。
prompt/

役割: AI(大規模言語モデル)への指示(プロンプト)を保存する場所です。
内容: opening.txt や prompt_tmp.txt が存在することから、開発プロセスにおいてAIを補助的に活用していることがうかがえます。
.venv/, .vscode/, .gemini/

役割: 開発環境固有の設定ファイル群です。
.venv: プロジェクトのPythonライブラリを隔離する仮想環境です。
.vscode: エディタ「Visual Studio Code」用の設定です。
.gemini: Gemini CLIツール用の設定です。

吉田 明 さんが2ヶ月前に更新

プロジェクト構造分析レポート

1. プロジェクトの全体像

このプロジェクト(keinasystem01)の目的は、栽培と販売を統合管理する新しい「恵菜ファーム統合システム」を構築することです。

その中核的なタスクとして、既に存在し、実際に稼働していたDjango製の「お米販売システム (riceshop)」を、この新しい統合システムの一部として取り込む(=マイグレーションまたは再構築する)ことが計画されています。

この「新システムの構築」と「旧システムの統合」という2つの大きな目的を理解することが、ディレクトリ構造を正確に読み解く鍵となります。

2. ディレクトリ別役割分析

  • . (ルートディレクトリ)

    • 役割: プロジェクト全体に関わる設定ファイルが置かれています。
    • 主要ファイル:
      • .env: データベース接続情報やAPIキーなど、環境に依存する秘密情報を格納します。
      • .gitignore: Gitのバージョン管理から除外するファイル(例: .venv)を指定します。
      • project_structure.txt, riceshop_structure.txt: 過去に作成された、構造確認用のメモやコマンド出力結果だと思われます。
  • docs/

    • 役割: プロジェクトの全ドキュメントを格納する、設計と思想の宝庫です。
    • 主要ファイル/ディレクトリ:
      • AboutThisSystem.txt: 最重要ドキュメント。これから作る新システムの全体像と目的を定義しています。
      • riceshop/: 旧システムである「お米販売システム」の、極めて詳細な要件定義書、設計書群です。新システムへ統合する際の仕様書として機能します。
      • roadmap/, tools/ など: 新システム開発のロードマップや、利用するツールに関するドキュメントが格納されていると考えられます。
  • reference/

    • 役割: 統合対象となる旧システムの「現物」を保管する参照場所です。
    • 主要ディレクトリ:
      • riceshop/: 旧システム「お米販売システム」の全ソースコードが格納されています。これは、これから作る新システムのコードではなく、分析・移行の対象となる参照用のコードです。
  • tools/

    • 役割: 新システムの開発を効率化・自動化するための補助ツール群です。
    • 主要ディレクトリ:
      • py_system/codebase_investigator/: 我々が今まさに作成している、このコードベース分析ツールの格納場所です。
      • reg_system/: doc_generator.py(ドキュメント生成)、merge_and_verify.py(マージ検証)といったファイル名から、reg_systemというサブシステムに関する開発補助ツール、特にAI(Dify)を活用した作業を支援するツール群と推測されます。
  • tests/

    • 役割: 新システムの品質を担保するための自動テストコードが格納されます。
    • 主要ディレクトリ:
      • reg_system/: toolsディレクトリにも登場した reg_system のためのテストが用意されています。これは、reg_system新システムを構成する、独立してテスト可能なコンポーネントであることを強く示唆しています。
  • prompt/

    • 役割: AI(大規模言語モデル)への指示(プロンプト)を保存する場所です。
    • 内容: opening.txtprompt_tmp.txt が存在することから、開発プロセスにおいてAIを補助的に活用していることがうかがえます。
  • .venv/, .vscode/, .gemini/

    • 役割: 開発環境固有の設定ファイル群です。
      • .venv: プロジェクトのPythonライブラリを隔離する仮想環境です。
      • .vscode: エディタ「Visual Studio Code」用の設定です。
      • .gemini: Gemini CLIツール用の設定です。

吉田 明 さんが2ヶ月前に更新

  • ステータス新規 から 終了 に変更

吉田 明 さんが約2ヶ月前に更新

  • ステータス終了 から フィードバック に変更

やりなおし

吉田 明 さんが約2ヶ月前に更新

  • ステータスフィードバック から 終了 に変更

claudeにtools\reg_system\project_analyzer.pyを作らせた

プロジェクト構造解析ツール - クイックガイド

🎯 何ができるか?

Before(手動でドキュメント作成)

😰 新しいプロジェクトに参加
   ↓
📁 ディレクトリを1つずつ開いて確認
   ↓
📝 手動でドキュメントを作成
   ↓
⏰ 数時間〜数日かかる
   ↓
😓 古くなったらまた更新作業

After(このツールを使用)

😊 新しいプロジェクトに参加
   ↓
⚡ python project_analyzer.py
   ↓
⏱️ 1-3分で完了
   ↓
📊 階層的なドキュメントが自動生成
   ↓
✅ いつでも再実行で最新化

🚀 クイックスタート(30秒)

1. 準備(初回のみ)

# 1. 必要なパッケージをインストール
pip install requests python-dotenv

# 2. .envファイルにAPIキーを設定
echo "GOOGLE_API_KEY=your_key_here" > .env

2. 実行

# プロジェクトルートで実行
python project_analyzer.py

3. 確認

# 生成されたドキュメントを確認
code docs/project_analysis/PROJECT_OVERVIEW.md

これだけ!


📊 生成されるもの

docs/project_analysis/
├── PROJECT_OVERVIEW.md          ← プロジェクト全体の概要
├── README.md                     ← ルートディレクトリの説明
├── tools/
│   └── README.md                 ← tools/の説明
├── src/
│   └── README.md                 ← src/の説明
└── config/
    └── README.md                 ← config/の説明

各ドキュメントの内容:

  • 📋 概要(このディレクトリの役割)
  • 🎯 目的(なぜ存在するか)
  • 📂 構成(主要ファイルの説明)
  • 🔍 詳細(技術的な説明)
  • 💡 理解のポイント

🧠 クレバーな機能

1. 自動除外

.venv/          ← スキップ
node_modules/   ← スキップ
__pycache__/    ← スキップ
.git/           ← スキップ
src/            ← ✅ 解析
tools/          ← ✅ 解析

メリット: 無駄な処理を自動で省く

2. 重要度判定

README.md           ← Critical(必ず解析)
requirements.txt    ← Critical(必ず解析)
main.py            ← High(優先的に解析)
utils.py           ← Medium(選択的に解析)
test_*.py          ← Low(深い階層では除外)

メリット: 重要な部分に集中

3. API最適化

1ディレクトリあたり最大5ファイル
↓
API呼び出し回数を削減
↓
実行時間を短縮
↓
コストを削減

メリット: 速くて安い


💡 使い分け

パターン1: プロジェクト全体を理解したい

# デフォルト設定で実行
python project_analyzer.py

こんな時に:

  • 新しいプロジェクトに参加した
  • プロジェクト構造の全体像を知りたい
  • チームメンバーにプロジェクトを説明したい

パターン2: 特定のディレクトリを詳しく

# toolsディレクトリのみを深く解析
cd tools
python /path/to/project_analyzer.py . --depth 5

こんな時に:

  • 特定のモジュールを深く理解したい
  • サブプロジェクトを独立して解析したい

パターン3: 浅く広く

# トップレベルのみ
python project_analyzer.py --depth 1

こんな時に:

  • プロジェクトの大枠だけ知りたい
  • 実行時間を短縮したい

📈 実行例

小規模プロジェクト(Djangoアプリ)

$ python project_analyzer.py

======================================================================
🔍 プロジェクト解析ツール
======================================================================
プロジェクトルート: /home/user/my_django_app
出力先: docs/project_analysis
最大深度: 3
======================================================================

📊 ステップ1: プロジェクト構造をスキャン中...

📈 スキャン結果:
  - 総ディレクトリ数: 8
  - 総ファイル数: 47
  - スキップ: 23ファイル

📝 ステップ2: プロジェクト概要を生成...
✅ プロジェクト概要を生成: docs/project_analysis/PROJECT_OVERVIEW.md

🔍 ステップ3: ディレクトリ解析を開始...

📁 root/
   重要度: critical
   ファイル数: 5
   🔍 解析対象: 3ファイル
      - README.md (critical)
      - requirements.txt (critical)
      - manage.py (high)
   ✅ ドキュメント生成: README.md

  📁 my_app/
     重要度: high
     ファイル数: 12
     🔍 解析対象: 5ファイル
        - models.py (high)
        - views.py (high)
        - urls.py (high)
        - admin.py (medium)
        - apps.py (medium)
     ✅ ドキュメント生成: my_app/README.md

======================================================================
✅ 解析完了!
======================================================================
📊 統計情報:
  - 解析ディレクトリ数: 5
  - 解析ファイル数: 18
  - API呼び出し回数: 6
  - 実行時間: 42.3秒

📁 出力先: docs/project_analysis
======================================================================

⚙️ オプション一覧

# 基本
python project_analyzer.py

# 特定のディレクトリ
python project_analyzer.py /path/to/project

# 深度指定
python project_analyzer.py --depth 5

# 出力先指定
python project_analyzer.py -o custom_output/

# すべて組み合わせ
python project_analyzer.py /path/to/project --depth 4 -o docs/analysis/

🎁 生成されるドキュメントのサンプル

PROJECT_OVERVIEW.md の例

# プロジェクト概要

## 📝 プロジェクト名
keinasystem02 - 米農家向け販売管理システム

## 🎯 目的
農家が直接運営する米販売ECサイトのバックエンドシステム。
顧客管理、注文処理、在庫管理を統合的に行う。

## 🏗️ アーキテクチャ概要
- バックエンド: Django 4.2 + PostgreSQL
- インフラ: Docker + Traefik
- ドキュメント: Trilium Notes連携

## 📂 ディレクトリ構造
- riceshop/: Djangoメインアプリケーション
- tools/: 開発・運用ツール
- docs/: プロジェクトドキュメント
- config/: 設定ファイル

## 💻 技術スタック
- Python 3.12
- Django 4.2
- PostgreSQL 15
- Docker
- Gemini API(ドキュメント生成)

## 📌 注目ポイント
- カスタム認証システム(日本語対応)
- Trilium Notesとの自動同期
- AI活用のドキュメント自動生成

tools/README.md の例

# tools/

## 📋 概要
開発・運用を効率化するPythonスクリプト群。
ドキュメント生成、バックアップ、Trilium同期など。

## 🎯 目的
手作業を自動化し、開発者の生産性を向上させる。

## 📂 構成
### 主要ファイル
- doc_generator.py: Gemini APIを使ったドキュメント自動生成
- project_analyzer.py: プロジェクト構造解析
- sync_trilium_smart.py: Trilium Notes同期ツール

### サブディレクトリ
- py_system/: 共通ユーティリティ

## 🔍 詳細
このディレクトリのツールは、以下の3つの領域をカバー:
1. ドキュメント生成(doc_generator.py, project_analyzer.py)
2. データ同期(sync_trilium_smart.py)
3. 共通機能(py_system/)

各ツールは独立して動作し、.env経由でAPI Keyを管理。

## 💡 理解のポイント
1. すべてのツールがGemini APIを活用
2. .gitignoreで.envを除外してセキュリティ確保
3. モジュール化されており、個別に実行可能
4. エラーハンドリングを強化して信頼性向上
5. 詳細なドキュメント自動生成で保守性確保

🆚 他の方法との比較

手動でREADMEを書く

メリット:

  • コストゼロ
  • 自由な表現

デメリット:

  • ❌ 時間がかかる(数時間〜数日)
  • ❌ 古くなる
  • ❌ 人によって品質がバラバラ
  • ❌ 大規模プロジェクトでは現実的でない

tree コマンド

tree -L 3 -I 'node_modules|.venv'

メリット:

  • 高速
  • シンプル

デメリット:

  • ❌ ディレクトリ構造だけ
  • ❌ 説明がない
  • ❌ 重要度が分からない

このツール

メリット:

  • ✅ 自動生成(1-3分)
  • ✅ 常に最新
  • ✅ 重要度を自動判定
  • ✅ 詳細な説明付き
  • ✅ 階層的なドキュメント

デメリット:

  • API Key が必要
  • 実行に時間がかかる(1-5分)

💰 コスト

Gemini API(無料枠)

  • 1分間: 60リクエスト
  • 1日: 1,500リクエスト

実際の使用例

  • 小規模プロジェクト: 5-10リクエスト → 無料
  • 中規模プロジェクト: 10-20リクエスト → 無料
  • 大規模プロジェクト: 20-40リクエスト → 無料

結論: ほとんどの場合、無料枠内で利用可能


🎓 学習曲線

1日目:   基本的な実行方法を理解
         ↓
2-3日目: オプションを使いこなす
         ↓
1週間:   カスタマイズ方法を習得
         ↓
2週間:   チーム全体で活用

学習コスト: 低い


まとめ

このツールが向いている人

✅ 新しいプロジェクトに頻繁に参加する人
✅ 大規模プロジェクトを扱う人
✅ ドキュメント作成が面倒な人
✅ チームでプロジェクト構造を共有したい人

このツールが向いていない場面

❌ 極小規模プロジェクト(5ファイル未満)
❌ API Keyを取得できない環境
❌ オフライン環境

推奨ワークフロー

# 1. プロジェクトクローン
git clone https://github.com/user/project.git
cd project

# 2. プロジェクト解析(まず全体を把握)
python /path/to/project_analyzer.py

# 3. ドキュメント確認
code docs/project_analysis/PROJECT_OVERVIEW.md

# 4. 必要に応じて個別ディレクトリを深掘り
cd src/important_module
python /path/to/project_analyzer.py . --depth 5

# 5. 開発開始!

これで、どんなプロジェクトも素早く理解できます!

他の形式にエクスポート: Atom PDF