Claude3にプロジェクト全体をぶち込むためのプロジェクトの構造とファイル内容を自動でまとめるPythonスクリプト
はじめに
Claude3Opusはものすごい能力で、手動で作成するのは面倒なプロジェクトのドキュメンテーションなどを一撃で生成してくれます。
しかし、プロジェクト全体の内容をWebのCladeには投入できないし、ファイルを1個ずつコピペするのもかなり時間を要します。
頼みのCursorもClaudeは対応していないので@Codebase機能が利用できません・・・
そこで、Pythonスクリプトを使ってプロジェクトのフォルダ構造とファイルの内容を自動的にまとめるスクリプトを作成したので紹介します!
このスクリプトを使うことで、プロジェクトを200kトークンまでの単一のテキストにまとめ、Claude3Opusに簡単に投入できるようになります。
スクリプトの機能と使い方
このPythonスクリプトは以下のような機能を持っています:
- プロジェクトのフォルダ構造をMarkdown形式で生成。※本当はClaude3はXMLの方が良いらしい
- 各ファイルの内容をサマリーに含める。
-
.gitignore
と.summaryignore
ファイルを使って、特定のファイルやフォルダを除外。 - UTF-8とShift-JISのエンコーディングを試すことで、ファイルのエンコーディングの問題を処理。
- 生成されたサマリーを
<project_name>_project_summary.txt
というファイルに保存。
使い方は非常にシンプルです:
- リポジトリをクローンするか、
generate_project_summary.py
スクリプトをダウンロードします。 - ターミナルまたはコマンドプロンプトを開き、スクリプトを含むディレクトリに移動します。
-
python generate_project_summary.py
コマンドを使用してスクリプトを実行します。 - プロンプトが表示されたら、プロジェクトディレクトリのパスを入力します。パスが指定されない場合、現在のディレクトリがデフォルトとして使用されます。
- スクリプトはプロジェクトのサマリーを生成し、スクリプトと同じディレクトリに
<project_name>_project_summary.txt
という名前のファイルに保存します。
除外設定
プロジェクトのサマリーから特定のファイルやフォルダを除外したい場合は、プロジェクトのルートディレクトリに.gitignore
と.summaryignore
ファイルを作成します。
-
.gitignore
ファイルは、Gitなどのバージョンコントロールシステムからファイルとフォルダを除外するためによく使用されます。 -
.summaryignore
ファイルはこのスクリプト専用で、gitにpushするファイルだけどもプロジェクトのサマリーから除外したいファイルとフォルダを除外できます。
使用例:Claude3OpusでREADMEを自動生成
このスクリプトを使って、別のプロジェクトをテキスト化し、Claude3Opusに投入してREADMEを自動生成してもらいました。
-
generate_project_summary.py
スクリプトを使って、対象プロジェクトのサマリーを生成しました。
<サンプルリポジトリ>
https://github.com/Olemi-llm-apprentice/claude3-video-analyzer
出力
# claude3-video-analyzer
## Directory Structure
- claude3-video-analyzer/
- .python-version
- LICENSE
- main.py
- README.md
- requirements.txt
- resources/
- src/
- claude3_video_analyzer/
- __init__.py
## File Contents
### .python-version
```
3.10.13
```
### LICENSE
```
MIT License
Copyright (c) 2024 Olemi
~以下省略~
- READMEをClaude3Opusで作成
https://github.com/Olemi-llm-apprentice/claude3-video-analyzer/blob/main/README.md
このように、generate_project_summary.py
スクリプトを使うことで、手動でドキュメンテーションを作成する手間を大幅に削減できます。特にClaude3Opusを活用する場合に便利です。
まとめ
このPythonスクリプトを使えば、プロジェクトのフォルダ構造とファイルの内容を簡単にまとめることができます。
特にClaude3Opusで疑似的に"@Codebase"機能を利用できようになります。
スクリプトのカスタマイズや改善は自由に行ってください。
問題や提案がある場合は、GitHubリポジトリでissueを開いたり、プルリクエストを送信してください。
X(Twitter)フォローなどもらえると嬉しいです。
Discussion
こちらの記事を参考にVSCodeの拡張機能を作らせていただきました