agentify
プロジェクトのコードベースを分析して、有用なロール・ワークフローを`.claude/agents/*.md`ファイルとして作成し、Claude Codeサブエージェントファイルを生成します。
description の原文を見る
Create Claude Code subagent files for a project by analyzing the codebase and turning useful roles/workflows into .claude/agents/*.md files.
SKILL.md 本文
Agentify
現在のプロジェクト、または $brief で指定されたプロジェクトの Claude Code サブエージェント Markdown ファイルを作成します。
目標
プロジェクトに適した、Claude Code で有効な、正しいスコープに保存された焦点を絞った Claude Code サブエージェント Markdown ファイルセットを生成します:
- デフォルトではプロジェクトエージェント:
.claude/agents/<agent-name>.md - ユーザーが明示的に要求した場合のみパーソナルエージェント:
~/.claude/agents/<agent-name>.md
Claude Code サブエージェントは YAML frontmatter を持つ Markdown ファイルです。name と description のみが必須です。一般的なオプションフィールドは tools、disallowedTools、model、permissionMode、maxTurns、skills、mcpServers、hooks、memory、background、effort、isolation、color、initialPrompt です。
入力
$brief:オプションのプロジェクトパス、エージェントの概要、または制約。省略された場合は、現在の作業ディレクトリを使用し、プロジェクトからエージェントセットを推測します。
厳密なルール
- ユーザーが明示的に要求しない限り、
AGENTS.md、CLAUDE.md、コマンド、フック、またはセッティングを作成しないでください。このスキルは Claude Code サブエージェントファイルを作成します。 - デフォルトではプロジェクトスコープにします。プロジェクト固有のエージェントは
.claude/agents/に属しており、コミットと共有が可能です。 - 既存のエージェントファイルを人間のチェックポイントなしで上書きしないでください。
- プロジェクトが数を決定させます。最小 1、上限なし。各エージェントはスキャンからの証拠(実際のワークフロー、ファイル、コマンド、またはコンベンション)を指す必要があります。プロジェクトが正当化できないエージェントは削除します。プロジェクトがどのエージェントも正当化しない場合、0 は有効な結果です。数字に合わせるため埋め草を加えないでください。
- プロジェクト固有のプロンプトを使用します。汎用エージェントは、プロジェクトが本当に区別される アーキテクチャ、ツーリング、またはワークフローを欠いている場合のみ許容可能です。
- ロール別にツールを制限します。読み取り専用のレビュアーは
WriteまたはEditを取得すべきではありません。実装者は作業に必要な場合のみ書き込みツールを取得できます。 - サブエージェント本体はそのシステムプロンプトです。このスキル、完全なメイン Claude Code システムプロンプト、またはコンバーセーションを継承しません。すべての必要なロール指示をファイルに記述してください。
- ファイルをディスクに直接書き込む場合、既存の Claude Code セッションが新しく編集されたサブエージェントをロードするために再起動が必要な場合がある旨をユーザーに通知してください。
サブエージェントファイル形式
各ファイルに次の構造を使用します。Claude Code 自体が使用する標準的な書き込み順序(name、description、tools、model、effort、color、memory)を反映してください:
---
name: project-role
description: "Use this agent when ... <example>Context: ...\nuser: \"...\"\nassistant: \"...\"\n<commentary>...</commentary></example>"
tools: Read, Glob, Grep
model: inherit
color: blue
---
You are ...
フィールドルール(Claude Code で検証):
name(必須):正規表現^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$。長さ 3~50。英数字で始まり、英数字で終わる必要があります。小文字 + ハイフンがコンベンション。大文字も許可されていますが、避けてください。ファイル名は<name>.mdと一致する必要があります。description(必須):YAML ダブルクォート、改行を\nでエスケープ。Use this agent when ...で始まるべき。推奨長 10~5000 文字。オートデリゲーション用の 1 つ以上の<example>ブロック(ステップ 4 を参照)を含める。tools(オプション):カンマ区切りのツール名、例:Read, Glob, Grep。すべてのツールを継承するには、フィールド全体を完全に省略します(tools: *と書かないでください)。読み取り専用ロールはWriteまたはEditを取得してはいけません。model(オプション):sonnet | opus | haiku | inheritのいずれか。特定のティアが正当化される場合を除き、inheritにデフォルト。安価な分類にはhaiku、ロールが深い推論を必要とする場合のみopusを使用します。effort(オプション):努力レベルの文字列または正の整数。チューニング時のみ含めます。color(オプション):red | blue | green | yellow | purple | orange | pink | cyanのいずれか。memory(オプション):user | project | localのいずれか。エージェントが複数回実行にわたって永続的なメモを利用する場合にのみ追加(レビュアー、アーキテクト等)。
読み取り専用フィールド(存在する場合は解析されますが、標準書き込みセットの一部ではなく、明示的に必要な場合のみ含める):
disallowedTools:ブロックするツール名のカンマ区切りリスト。permissionMode:own | approve | plan | chat。maxTurns:正の整数。isolation:worktree。background:ブール値。initialPrompt:最初のユーザーターンの前に付加される文字列。skills、mcpServers、hooks:ユーザーが要求するか、プロジェクトが明確に必要とする場合のみ含める。
作成規律(Claude Code 自体の AGENT_CREATION_SYSTEM_PROMPT を反映)
各エージェントを起草する際、Claude Code の組み込みエージェント作成ウィザードが従うのと同じルールに従います。これらはスタイルの好みではなく、親 Claude がデリゲートするかどうかを決定する方法です。
- 識別子:小文字/数字/ハイフン、通常 2~4 語をハイフンで結合。
helper、assistant、manager、agentのような汎用用語は避けてください。具体的にしてください(db-helperではなくmigration-checker)。 - 説明は
Use this agent when ...で始まり、1 つ以上の<example>ブロックを埋め込みます。サンプル形式は:
エージェントが主動的に起動すべき場合(ユーザーが要求せずに)、説明でそう言い、主動的な起動を示す例を追加します。<example> Context: <1行の状況> user: "<ユーザーメッセージ>" assistant: "I'm going to use the Task tool to launch the <name> agent to ..." <commentary> <このエージェントがここで起動する理由の 1 行> </commentary> </example> - システムプロンプトは2人称:「You are ...」、「You will ...」。「the agent should」ではなく。本体は、エージェントの完全な運用マニュアルです。このスキル、親の CLAUDE.md ハイアラキー(
omitClaudeMdに依存)、または親のコンバーセーションを自動的に見ません。 - コードレビューエージェントはデフォルトで「最近書かれたコード」、リポジトリ全体ではなく。エージェントが意図的に完全リポジトリ監査役でない限り、本体でこれを明示的に記述します。
- メモリパターン(
memory:が設定されている場合のみ):エージェントが何を記録するかを示すセクションを含めます。テンプレート:エージェントメモリを更新して、[ドメインアイテム] を検出します。これは実行全体にわたって組織的知識を構築します。記録する内容の例:[アイテム 1]、[アイテム 2]、[アイテム 3]。
- **曖昧な指示を避けてください。**スキャンからの実際のパス、実際のコマンド、実際のコンベンションを参照。「テストを実行」は不要。「リポジトリルートから
pnpm test --filter=apiを実行」は有用です。
ステップ
1. スコープとプロジェクトルートを解決
$brief を使用して、ユーザーがパス、目的のエージェントセット、またはグローバル/パーソナルスコープを提供したかどうかを検出します。
パスが提供された場合、それを使用します。それ以外の場合:
pwdを実行します。git rev-parse --show-toplevelを試みます。- git ルート検出に失敗した場合、現在の作業ディレクトリを使用します。
対象ディレクトリを選択します:
- ユーザーがパーソナル、グローバル、ユーザーレベル、またはすべてのリポジトリ全体で再利用可能と言った場合:
~/.claude/agents/ - それ以外の場合:
<project-root>/.claude/agents/
成功基準:プロジェクトルートと対象エージェントディレクトリが特定されます。ファイルを書き込む前にスコープに関する曖昧性が解決されます。
2. プロジェクトを分析
有用なエージェントを設計するためにプロジェクトを十分に読み取ります:
- 既存 Claude ファイル:
CLAUDE.md、AGENTS.md、.claude/agents/*.md、.claude/skills/*/SKILL.md、.claude/commands/*.md - リポジトリ概要:
README*、パッケージマニフェスト、ビルドファイル、テスト設定、CI 設定、ドキュメントインデックスファイル - ソースレイアウト:トップレベルディレクトリ、重要なアプリパッケージ、テストディレクトリ、スクリプト、マイグレーション/設定ディレクトリ
- 既存のコンベンション:フレームワーク、言語、テストコマンド、lint コマンド、デプロイメントフロー、レビュー規則、セキュリティ重要エリア
node_modules、.git、dist、build、coverage、.next、target、.venv、vendor、バイナリアセットなどの生成/ベンダーディレクトリは読み取りを避けてください。
成功基準:プロジェクトのメインスタック、主要ワークフロー、既存 Claude 設定、および各提案エージェントを正当化する境界を述べることができます。
3. エージェントセットを提案
ファイルを書き込む前にコンパクトなリストを提案します。各エージェントについて、以下を含めます:
name- 対象パス
- 目的
- Claude がそれをいつ使用すべきか
- ツールリスト
- モデルと色(使用する場合)
- エージェントが返すもの
- このエージェントがこのプロジェクトに属する理由
確認用に AskUserQuestion を使用します。次のような具体的な選択肢を提供します:
- 提案されたエージェントを保存
- 名前/スコープを修正
- 少ないエージェント数を作成
ユーザーが自由形式の編集を提供できるようにします。AskUserQuestion が利用できない場合、プレーンテキストで同じチェックポイントを要求します。
成功基準:ユーザーが提案されたファイルを確認したか、組み込まれた編集を提供しました。
人間のチェックポイント:複数のエージェントが作成される場合、または既存のエージェント名と競合する場合、新しいファイルを書き込む前に必須です。
4. 各エージェントをドラフト
各エージェント本体に含めるべき項目:
- ロールとスコープ。
- いつ行動するか、いつ親のコンバーセーションに戻すか。
- 最初に検査するプロジェクト固有のファイル、コマンド、ディレクトリ、コンベンション。
- ステップバイステップの作業方法。
- 厳密な制約、特に編集、テスト、シークレット、マイグレーション、デプロイメント、ユーザー所有の変更に関するもの。
- 期待される出力形式。
良いプロジェクトエージェントタイプは以下を含みます:
- アーキテクチャエクスプローラー:コードパス、所有権、データフロー、リスクエリアの読み取り専用マップ。
- コードレビュアー:見つかったものと ファイル/行参照が最初の読み取り専用レビュー。
- テスト/デバッグスペシャリスト:対象テストを実行し、失敗を説明し、ツールに応じて修正を提案または適用。
- 実装ワーカー:コードベースの制限された部分を所有し、明示的なスコープの下で変更を書き込み。
- フロントエンド/UI スペシャリスト:プロジェクトにフロントエンドがある場合、UI 実装と視覚検証を処理。
- API/データベーススペシャリスト:コントラクト、マイグレーション、スキーマ、クエリ、統合リスクを処理。
- リリース/CI スペシャリスト:ワークフロー、ビルドスクリプト、チェンジログ、デプロイメント準備状況をチェック。
Claude の通常の動作を正当なプロジェクト固有の値なしで複製するエージェントは避けてください。
成功基準:すべてのドラフトに有効な frontmatter、汎用でないシステムプロンプト、スコープ付きツール、明確な出力契約があります。
5. ファイルを書き込み
mkdir -p で対象ディレクトリを作成します。
各エージェント:
<target-dir>/<name>.mdに保存します。- ファイルが存在する場合、読み取り、上書きする前に確認します。
- ファイル名を
nameと一致させます。 - 既存のプロジェクトコンベンション以外の場合は ASCII を使用します。
成功基準:すべての確認されたエージェントファイルが対象パスに存在し、承認されたコンテンツを含みます。
6. 検証
書き込まれたファイルを読み取り戻す。これらのチェックは Claude Code の独自の validateAgent.ts と parseAgentFromMarkdown を反映し、失敗すればファイルを拒否します:
Frontmatter:
---で開始および終了します。nameは^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$と一致、長さ 3~50。nameはファイル名と同じ(.mdなし、大文字小文字区別)。nameは対象エージェントディレクトリ全体で一意です。descriptionが存在し、ダブルクォート、改行を\nでエスケープ。推奨長 10~5000 文字。descriptionはUse this agent when ...で始まり、少なくとも 1 つの<example>ブロックを埋め込み。tools(存在する場合)は実 Claude Code ツール名のカンマ区切りリスト。読み取り専用ロールはWrite、Edit、NotebookEdit、または書き込み対応 Bash パターンを含めません。model(存在する場合)はsonnet | opus | haiku | inheritのいずれか。color(存在する場合)はred | blue | green | yellow | purple | orange | pink | cyanのいずれか。memory(存在する場合)はuser | project | localのいずれか。permissionMode(存在する場合)はown | approve | plan | chatのいずれか。isolation(存在する場合)はworktree。maxTurns(存在する場合)は正の整数。
本体:
- 2 人称で書かれています(「You are ...」、「You will ...」)。
- スキャンからの実際のパス/コマンド/コンベンションを参照。汎用フィラーなし。
- 明示的な出力契約(親が何を取得するか)を有します。
memory:が設定されている場合のみメモリセクションが存在。
ファイルシステム:
- 既存のファイルは確認なしで上書きされていません。
- ディレクトリは
<project-root>/.claude/agents/(またはユーザーが明示的にパーソナルスコープを選択した場合は~/.claude/agents/)。
ユーザーがインストール済みサブエージェントをリスト表示できることを告知:
claude agents
またはアプリ内マネージャーを /agents で開きます。
成功基準:上記のすべてのチェックが書き込まれたすべてのファイルに対して成功します。すべての失敗は完成を報告する前に修正されます。
最終応答
報告:
- ファイルが保存されたディレクトリ。
- 作成または更新されたエージェントファイル名。
- 手を付けずにおかれた既存のファイル。
- Claude Code がディスクに直接書き込まれたサブエージェントをロードするために再起動が必要な場合がある。
- 1 つを明示的に呼び出す方法、例:
Use the <agent-name> subagent to ...。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- 0xMH
- リポジトリ
- 0xMH/claude-agentify
- ライセンス
- MIT
- 最終更新
- 2026/5/6
Source: https://github.com/0xMH/claude-agentify / ライセンス: MIT