mcpField
R
ralph

ralph

github.com/thecraighewittエージェントワークフロー16980 回インストール23 週間前に更新
リポジトリ

ralph について

RALPH は、GitHub issue に記載された要件をサブ issue ごとに実装するスキルです。テスト駆動開発とコードレビューのゲートを備え、人が確認するモードと Docker サンドボックスで動く AFK モードに対応します。

主な機能

  1. 01GitHub CLI で PRD とサブ issue を取得
  2. 02ブロックされていない issue を各回で実装
  3. 03テスト駆動開発を適用
  4. 04コミット後にコードレビューを実施
  5. 05人による確認モードと AFK モード
  6. 06AFK 実行後に PR を作成

活用シーン

  1. 01GitHub PRD を小さな単位で実装する
  2. 02各実装の反復を手動で確認する
  3. 03サンドボックスで回数を限定して自律実装する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thecraighewitt/skills --skill ralph

インストール後、Claude Code で/ralphを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

afk-ralph.sh
prompt.md
ralph-once.sh
review-prompt.md

詳細

RALPH — PRD の自律的な実装

RALPH(PRD 処理のための反復型自律ループ)は、GitHub issue として保存された PRD を、TDD に基づいて自律的に実装します。各イテレーションの後には、コードレビューのゲートがあります。

パイプライン

このスキルは、4 ステップのコーディングワークフローを実行するエンジンです。

ステップコマンド内容
1/grill-me実装を始める前に、容赦ない質問でアイデアを徹底的に検証します
2/write-a-prdアイデアを GitHub issue としてエンジニアリング仕様書(PRD)にまとめます
3/prd-to-issuesPRD を依存関係のある垂直スライスのサブ 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
必要条件

使い方

/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. 引数を解析します。1 番目は PRD の issue 番号(必須)、2 番目はモード(once または afk、デフォルトは once)、3 番目は afk モードの最大イテレーション数(デフォルトは 20)です
  2. issue 番号が指定されていない場合は、番号を尋ねます
  3. プロジェクトのルートに ralph/ ディレクトリがあることを確認します。ない場合は、セットアップ(.agents/skills/ralph/ からスクリプトをコピー)を案内します
  4. once モード(デフォルト)の場合:
    ./ralph/ralph-once.sh <issue-number>
    
  5. afk モードの場合:
    ./ralph/afk-ralph.sh <issue-number> <max-iterations>
    
  6. 完了したら、結果を報告します

動作の仕組み

  1. スクリプトが gh CLI を使って PRD issue とすべてのサブ issue を取得します
  2. サブ issue は、本文に Parent PRD #<number> が含まれているものを検索して特定します
  3. 各イテレーションで、Claude が未完了かつブロックされていないサブ issue を 1 件選び、TDD を用いて実装します
  4. コミットの前に、テストが成功する必要があります(プロジェクト設定から自動検出されます)
  5. コミット後、コードレビューのゲートでバグ、ロジックエラー、セキュリティ上の問題、アーキテクチャ違反を確認します
  6. Claude がコミットへのリンクを記載したコメントを付けて、GitHub 上のサブ issue をクローズします
  7. すべてのサブ 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 は適切な順序で作業できます。

コメント