ralph-loop-template について
ralph-loop-templateは、プロジェクト計画をRalph Loop向けの段階的なPROMPTファイルにまとめるエージェントスキルです。プロジェクトのルールと検証コマンドを収集し、各段階を個別に検証できる反復作業に分けます。
主な機能
- 01引数またはプロジェクトファイルから計画を検出
- 02プロジェクト設定と検証コマンドの特定
- 03計画の分析と非目標の定義
- 04フェーズ分割と反復上限の算出
- 05PROMPTファイルの生成
活用シーン
- 01プロジェクト計画からRalph Loop用プロンプトを準備
- 02反復的なコーディング作業の検証コマンドを設定
- 03実装作業を検証可能なフェーズに分割
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 2ykwang/ agent-skills --skill ralph-loop-templateインストール後、Claude Code で/ralph-loop-templateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.ko.mdREADME.mdreferences/iteration-procedure.mdprompt-template.md詳細
Ralph Loop テンプレート
入力
$ARGUMENTS
指示
ステップ 1:計画を収集する
引数が指定されている場合:ファイルを読み、計画の内容を把握します。
引数が指定されていない場合:次の順序で計画を検索します。
- プロジェクトのルートにある計画ファイルを検索します:
PLAN.md、plan.md、PLAN-*.md、plan-*.md、TODO.md、prd.md、PRD.md- 見つかったファイルが 1 つ → それを使用します(検出したファイルをユーザーに伝えます)
- 複数見つかった → 一覧を提示して選択を求めます
- 0 個 → 次のステップに進みます
- 現在の会話のコンテキストで話し合われた計画を使用します。
- 会話のコンテキストに計画がない場合は、ユーザーに計画の説明を求めます。
ステップ 2:プロジェクト環境を特定する
PROMPT ファイルに埋め込む、プロジェクト固有の情報を収集します。
エージェント/プロジェクトの設定ファイルを次の優先順位で検索します。
CLAUDE.md(Claude Code).cursorrules(Cursor).windsurfrules(Windsurf)AGENTS.md、COPILOT.md、GEMINI.md
設定ファイルが見つかった場合は、次の情報を抽出します。
- 検証コマンド:ビルド、テスト、リントを 1 つのコマンドチェーンにまとめます(例:
npm run lint && npm run build && npm test) - 主なコードスタイルのルール(PROMPT の絶対ルール
{AGENT_RULES}に挿入する項目。最大 3 つ)
設定ファイルが見つからない場合:プロジェクトの構成から推測します。
package.json→ npm/yarn コマンドMakefile/Justfile→ make/just コマンドCargo.toml→ cargo コマンドpyproject.toml/setup.py→ Python ツールチェーン- 判別できない場合は、ビルド/テストコマンドをユーザーに尋ねます
ステップ 3:計画を分析する
計画から次の情報を抽出します。
- 目標:何を構築するか
- 対象外:このタスクで実施しないこと(機能の勝手な追加を防ぐため)
- フェーズ一覧:実装手順を順番に並べたもの
- フェーズごとの主な内容:変更するファイル、実装の詳細
- 参考ドキュメント/ファイル:パターンの参考資料、設計ドキュメントのパス
- 完了条件:タスク全体の完了を判断する基準
完了条件は、機械的に検証可能でなければなりません(例:コマンドの実行結果が終了コード 0 を返す)。「問題なく動作する」「見た目がすっきりしている」のような主観的な基準は使用しないでください。
ステップ 4:フェーズを分割する
Ralph Loop のイテレーションに適したフェーズに計画を分割します。
分割の原則:
- 1 イテレーションにつき、フェーズは必ず 1 つです。 1 回のイテレーションに 2 つのフェーズを含めると、検証に失敗した場合に原因のフェーズを特定できず、次のイテレーションで不明瞭な状態から再開することになります。
- フェーズが完了したら、すぐにイテレーションを終了します。次のフェーズは、次のイテレーションで処理します。
- 各フェーズは、単独で検証に合格できる最小単位にしてください。
- 大きすぎるフェーズは分割し、小さすぎるフェーズは統合します。
サイズの目安(参考であり、絶対条件ではありません):
- 説明に 3 文以上必要な場合 → 分割を検討します
- 1 つのファイルに対する 1 行だけの変更の場合 → 隣接するフェーズとの統合を検討します
- 適切なサイズとは、エージェントが 1 つのコンテキスト内で実装と検証を完了できる大きさです
max-iterations の計算:フェーズ数 + 2
- +1:検証失敗時の自動再試行用の余裕
- +1:最終フェーズ完了後の promise 出力イテレーション用の余裕
Step 5: PROMPT ファイルを生成する
references/prompt-template.md をベーステンプレートとして使用し、references/iteration-procedure.md を反復手順ブロックとして使用して、PROMPT ファイルを生成します。
プロジェクトのルートに PROMPT-{kebab-case-name}.md ファイルを作成します。
プレースホルダーの対応関係:
| プレースホルダー | ソース | 代替手段 |
|---|---|---|
{goal title} | Step 3 | ユーザーに確認 |
{project name} | プロジェクトディレクトリ名または CLAUDE.md | ユーザーに確認 |
{goal} | Step 3 | ユーザーに確認 |
{AGENT_RULES} | Step 2(エージェント設定ルール) | 設定ファイルがない場合は行全体を省略 |
{non-goals} | Step 3 + 非目標の記述ルールに基づく推定 | 最低 2 項目 |
{reference doc rows} | Step 2~3 | ドキュメントが 0 件の場合は参考ドキュメントセクション全体を省略 |
{iteration procedure} | references/iteration-procedure.md 全体 | — |
{checklist} | Step 4 のフェーズ分割結果 | — |
{verification command} | Step 2(プロジェクトの検出) | ユーザーに確認 |
{COMPLETION_PROMISE} | COMPLETION_PROMISE 生成ルール | — |
注:スコープ外の指摘事項の記録形式など、中かっこを使用した例文は、置き換えずそのままにしてください。
Step 6: 結果を出力する
生成した PROMPT ファイルのパスを提示し、次の形式で /ralph-loop コマンドを出力します。
### Generated File
`{PROMPT file path}`
> Review the generated PROMPT file before execution. Check the verification commands and phase structure in particular.
### Ralph Loop Execution Command
/ralph-loop "Read {PROMPT file path} and implement the next unchecked phase. Always read the file first to find the first phase with [ ] items." --max-iterations {number of phases + 2} --completion-promise "{COMPLETION_PROMISE}"
上記のコマンドブロックは、コピーしてそのまま使用できる形式で出力してください。
生成ルール
チェックリストの記述ルール
- フェーズ = 反復単位:1 つの
### Phase Nブロックを 1 回の反復で処理します - サブ項目 = フェーズ内の詳細タスク:各フェーズの下に 2~5 個の
- [ ]サブ項目を配置します - サブ項目には、変更するファイルと実装の詳細を記載してください
- 検証はチェックリスト項目ではありません。反復手順の STEP 4 で自動的に実行されます。Step 2 で検出したプロジェクトのビルド/テストコマンドを使用してください
非目標の記述ルール
計画で明示的に除外されている項目に加えて、次の内容を推定して追加してください。
- 計画の範囲外のリファクタリング
- 要求されていないテスト/ドキュメント/設定の変更
- 計画で指定されていない既存の API またはインターフェイスの変更
COMPLETION_PROMISE の生成ルール
- 大文字の英語をスペースで区切ってください
- 目標を簡潔に要約してください(例:「HELP OVERLAY COMPLETE」、「AUTH REFACTOR DONE」)