project-triage について
Frappe のコードベースに着手する前に調査する開発者向けスキルです。プロジェクト種別、インストール済みアプリ、Frappe のバージョン、開発モード、利用可能なツールを確認します。
主な機能
- 01プロジェクト構造と種別の特定
- 02インストール済みアプリの一覧表示
- 03Frappe のバージョンと開発モードの確認
- 04開発・テストツールの特定
- 05調査結果の記録
活用シーン
- 01不慣れな Frappe プロジェクトの把握
- 02デバッグ前のバージョン確認
- 03次に使う開発スキルの選定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lubusin/ frappe-skills --skill project-triageインストール後、Claude Code で/project-triageを入力して読み込まれたか確認します。
詳細
Frappe プロジェクトのトリアージ
Frappe プロジェクトをすばやく分析し、タイプ、インストール済みアプリ、バージョン、利用可能なツールを確認します。
使用するタイミング
- 新しい Frappe プロジェクトを開いたときの最初の手順として
- コードを変更する前に、コードベースを理解するため
- デバッグ時に、関係するアプリやバージョンを特定するため
- 開発環境(Bench と Frappe Manager)を特定するため
必要な入力
- プロジェクトのルートパス(
apps/、sites/、またはアプリのコードがある場所) - シェルコマンドを実行するためのアクセス権(バージョン確認用)
手順
0) プロジェクト構成を特定する
次のパターンを確認します。
| パターン | プロジェクトタイプ |
|---|---|
apps/ と sites/ ディレクトリ | Bench インストール |
frappe を含む docker-compose.yml | Frappe Manager サイト |
frappe を含む pyproject.toml または setup.py | スタンドアロンアプリ |
doctype/ ディレクトリ | アプリモジュール内 |
1) インストール済みアプリを検出する
# Inside Bench/FM shell
bench --site <site> list-apps
# Or check apps directory
ls apps/
2) Frappe のバージョンを確認する
# Inside Bench/FM shell
bench version
# Or check from Python
bench --site <site> console
>>> frappe.__version__
3) ツールを特定する
| ファイル/ディレクトリ | ツール |
|---|---|
Procfile | 標準の bench |
docker-compose.yml | Docker/FM |
cypress/ | UI テストが利用可能 |
.github/workflows/ | CI が設定済み |
@frappe/* を含む package.json | JS ビルドツール |
4) 開発モードを確認する
# Check site config
bench --site <site> console
>>> frappe.conf.developer_mode
検証
- プロジェクトタイプを特定した(bench/FM/スタンドアロンアプリ)
- インストール済みアプリを一覧にした
- Frappe のバージョンを確認した
- 開発モードの状態を確認した
- 利用可能なツールを記録した
失敗のパターン/デバッグ
- サイトが見つからない:アプリディレクトリ内にいる可能性があります。bench のルートに移動してください
- bench コマンドが見つからない:bench 環境ではありません。
fm shellを使用するか、venv を有効にしてください - 権限エラー:正しいユーザーで実行しているか確認してください
エスカレーション
プロジェクト構成が不明な場合:
hooks.pyを探してアプリのルートを特定しますsites/common_site_config.jsonを探して bench のルートを特定します- git のリモートを確認してアプリのリポジトリを特定します
出力形式
トリアージ後、次の内容を記録します。
Project Type: [bench|frappe-manager|standalone-app]
Frappe Version: X.Y.Z
Installed Apps: [list]
Developer Mode: [yes|no]
Tooling: [list]
Site Name: <site>
この出力を使って、適切なスキルに振り分けます。
- DocType の作業 →
doctype-development - API の作業 →
api-development - テスト →
testing - エンタープライズパターン →
enterprise-patterns
ガードレール
- トリアージを完了する前にコードを変更しないでください。まずプロジェクトを理解してください
- 標準の動作を上書きする可能性があるカスタムアプリを確認してください
- サイト固有のコマンドを実行する前に、サイトの存在を確認してください
- スキーマを変更する前にdeveloper_modeを確認してください(DocType の変更に必須です)
- Node.js のバージョンを記録してください。フロントエンドのビルドには互換性のある Node が必要です(v15 では通常 18 以降)
よくある間違い
| 間違い | 失敗する理由 | 修正方法 |
|---|---|---|
サイトを指定せずに bench migrate を実行する | 間違ったサイト、またはデフォルトのサイトに影響する | 常に --site sitename を使用する |
| ERPNext がインストール済みだと思い込む | インポートエラーや DocType の不足が発生する | まず list-apps の出力を確認する |
| FM shell のコンテキストがない | bench コマンドが見つからない | まず fm shell sitename を使用する |
| ディレクトリ階層を間違える | コマンドがエラーを出さずに失敗する | bench のルート(apps/ がある場所)に移動する |
| カスタムアプリによる上書きを無視する | 予期しない動作が発生する | hooks.py で上書きを確認する |
| Python のバージョンを確認しない | 構文エラーや互換性エラーが発生する | v15 以降では Python >= 3.10 であることを確認する |
コメント
Markdown 対応