ralph について
RALPH は、GitHub issue に記載された要件をサブ issue ごとに実装するスキルです。テスト駆動開発とコードレビューのゲートを備え、人が確認するモードと Docker サンドボックスで動く AFK モードに対応します。
主な機能
- 01GitHub CLI で PRD とサブ issue を取得
- 02ブロックされていない issue を各回で実装
- 03テスト駆動開発を適用
- 04コミット後にコードレビューを実施
- 05人による確認モードと AFK モード
- 06AFK 実行後に PR を作成
活用シーン
- 01GitHub PRD を小さな単位で実装する
- 02各実装の反復を手動で確認する
- 03サンドボックスで回数を限定して自律実装する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thecraighewitt/ skills --skill ralphインストール後、Claude Code で/ralphを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
afk-ralph.shprompt.mdralph-once.shreview-prompt.md詳細
RALPH — PRD の自律的な実装
RALPH(PRD 処理のための反復型自律ループ)は、GitHub issue として保存された PRD を、TDD に基づいて自律的に実装します。各イテレーションの後には、コードレビューのゲートがあります。
パイプライン
このスキルは、4 ステップのコーディングワークフローを実行するエンジンです。
| ステップ | コマンド | 内容 |
|---|---|---|
| 1 | /grill-me | 実装を始める前に、容赦ない質問でアイデアを徹底的に検証します |
| 2 | /write-a-prd | アイデアを GitHub issue としてエンジニアリング仕様書(PRD)にまとめます |
| 3 | /prd-to-issues | PRD を依存関係のある垂直スライスのサブ issue に分割します |
| 4 | /ralph | 各サブ issue を TDD とコードレビューを用いて自律的に実装します |
ステップ 1~3 では、Matt Pocock のスキルを使用します。インストール方法:
npx skills@latest add mattpocock/skills -s grill-me
npx skills@latest add mattpocock/skills -s write-a-prd
npx skills@latest add mattpocock/skills -s prd-to-issues
セットアップ
このスキルをインストールしたら、RALPH のスクリプトをプロジェクトのルートにコピーします。
mkdir -p ralph
cp .agents/skills/ralph/afk-ralph.sh ralph/
cp .agents/skills/ralph/ralph-once.sh ralph/
cp .agents/skills/ralph/prompt.md ralph/
cp .agents/skills/ralph/review-prompt.md ralph/
chmod +x ralph/*.sh
必要条件
- Claude Code CLI
- GitHub CLI (
gh) — 認証済みであること - Sandbox に対応した Docker Desktop(AFK モードのみ)
- Git
使い方
/ralph <issue-number> — 人間が介在するモード(まずはこちら)
./ralph/ralph-once.sh 42
PRD #42 のサブ issue を 1 件実装したら停止し、レビューを待ちます。次のサブ issue を実装するには、再度実行してください。最初の数回のイテレーションでは、この方法をおすすめします。
/ralph <issue-number> afk [max-iterations] — 自律モード
./ralph/afk-ralph.sh 42 20
Docker サンドボックス内で最大 20 回のイテレーションを実行します。各イテレーションでは、サブ issue を 1 件実装し、テストを実行して、コミットし、コードレビューを行い、issue をクローズします。すべてのサブ issue が完了すると、ブランチをプッシュして PR を作成します。
手順
ユーザーがこのスキルを実行した場合:
- 引数を解析します。1 番目は PRD の issue 番号(必須)、2 番目はモード(
onceまたはafk、デフォルトはonce)、3 番目は afk モードの最大イテレーション数(デフォルトは 20)です - issue 番号が指定されていない場合は、番号を尋ねます
- プロジェクトのルートに
ralph/ディレクトリがあることを確認します。ない場合は、セットアップ(.agents/skills/ralph/からスクリプトをコピー)を案内します onceモード(デフォルト)の場合:./ralph/ralph-once.sh <issue-number>afkモードの場合:./ralph/afk-ralph.sh <issue-number> <max-iterations>- 完了したら、結果を報告します
動作の仕組み
- スクリプトが
ghCLI を使って PRD issue とすべてのサブ issue を取得します - サブ issue は、本文に
Parent PRD #<number>が含まれているものを検索して特定します - 各イテレーションで、Claude が未完了かつブロックされていないサブ issue を 1 件選び、TDD を用いて実装します
- コミットの前に、テストが成功する必要があります(プロジェクト設定から自動検出されます)
- コミット後、コードレビューのゲートでバグ、ロジックエラー、セキュリティ上の問題、アーキテクチャ違反を確認します
- Claude がコミットへのリンクを記載したコメントを付けて、GitHub 上のサブ issue をクローズします
- すべてのサブ issue がクローズされるまで、ループを続けます
サブ issue の形式
/prd-to-issues で作成されるサブ issue は、次の形式に従います。
## Parent PRD
#42
## What to build
Description of the work...
## Acceptance criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Blocked by
- #43
ヒント
- まず
/ralph(once モード)から始めましょう。 AFK モードに移る前に、最初のイテレーションを検証します。 - サブ issue は小さく保ちましょう。 サブ issue 1 件につき論理的な変更を 1 つにすることで、コンテキストの劣化を防げます。
- 最初に
/grill-meを使いましょう。 コーディング前によく考えるほど、RALPH の性能が向上します。 - 依存関係を
blocked-byで指定しましょう。 依存関係を明示すると、RALPH は適切な順序で作業できます。