ralph-wiggum について
ralph-wiggum は、AIエージェントを繰り返し実行して開発タスクを進める Cursor スキルです。進捗や失敗から得たガードレールをファイルに保存し、継続か新しいコンテキストでの再開かをフックで判断します。
主な機能
- 01タスクの反復実行
- 02ファイルによる状態と進捗の記録
- 03失敗から得たガードレールの蓄積
- 04完了確認とコンテキスト問題の検出
- 05Cursor フックとの連携
活用シーン
- 01明確な目標がある開発タスクの反復
- 02AIエージェントの実行状況の追跡
- 03実装ミスを踏まえた防止策の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agrimsingh/ ralph-wiggum-cursor --skill ralph-wiggumインストール後、Claude Code で/ralph-wiggumを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreinstall.shREADME.mdassets/RALPH_TASK_NARROWING_DEBUGGER.mdRALPH_TASK_TEMPLATE.mdRALPH_TASK_EXAMPLE.mdGIT_WORKFLOW.mdreferences/CONTEXT_ENGINEERING.mdGUARDRAILS.mdscripts/init-ralph.shralph-common.shralph-loop.shralph-retry.shralph-setup.shralph-parallel.shralph-once.shstream-parser.shtask-parser.sh詳細
Ralph Wiggum:コンテキストエンジニアリングによる自律的な反復
Ralph は、自律型 AI 開発のための手法です。最も基本的な形では、同じプロンプトを AI エージェントに繰り返し渡すループであり、タスクが完了するまで反復させます。重要な洞察は、コンテキストはメモリのようなものだということです。コンテキストウィンドウにデータを malloc() すると、新たに開始しない限り free() できません。
中核となる考え方
「Ralph の素晴らしいところは、非決定的な世界において、この手法が決定論的に悪いということです。」
Ralph は間違いを犯します。それは想定内です。間違いを犯すたびに、今後同じ間違いを防ぐための「標識」(ガードレール)を追加する機会が得られます。ギターの調律のように、正しい音が出るまで Ralph を調整します。
malloc/free のたとえ
- コンテキストはメモリです:LLM のコンテキストウィンドウに読み込まれたものは、すべてそこに残ります
- コンテキストを free() することはできません:コンテキストをクリアする唯一の方法は、新しい会話を開始することです
- 1 つのコンテキストにつき 1 つのタスク:複数の懸念事項を混在させると、自己回帰的な失敗につながります
- 限界まで使わない:コンテキストを限界まで使うと、パフォーマンスが低下します
- ガターの検知:ボウリングの球がガターに入ったら、新しく始めましょう
このスキルの仕組み
状態ファイル(永続的なメモリ)
Ralph はコンテキストではなく、ファイルで状態を追跡します:
.ralph/
├── state.md # Current iteration, task, completion criteria
├── guardrails.md # Accumulated "signs" from observed failures
├── context-log.md # What's been loaded into context
├── failures.md # Failure patterns for learning
└── progress.md # What's been accomplished
反復サイクル
- 現在のタスクと進捗を把握するため、状態ファイルを読み取る
- 従うべき関連する「標識」があるか、ガードレールを確認する
- タスクに取り組む:実装、テスト、改善を行う
- ファイルで進捗を更新する(コンテキストだけに記録しない)
- git 経由でチェックポイントをコミットする
- 基準に照らして完了を評価する
- 未完了の場合:次の反復を指示する
- 行き詰まった場合:ガターを検知し、新しいコンテキストを提案する
ガードレール(「標識」)
Ralph が間違いを犯したら、標識を追加します:
## Sign: Don't Jump Off The Slide
- **Trigger**: When implementing authentication
- **Instruction**: Always validate tokens before trusting claims
- **Added after**: Iteration 5 - security vulnerability introduced
標識は guardrails.md に蓄積され、以降の反復に挿入されます。
使い方
Ralph ループの開始
プロジェクトのルートに RALPH_TASK.md ファイルを作成します:
---
task: Build a REST API for task management
completion_criteria:
- All CRUD endpoints working
- Input validation implemented
- Tests passing with >80% coverage
- API documentation complete
max_iterations: 50
---
## Requirements
Build a task management API with the following endpoints:
- POST /tasks - Create a task
- GET /tasks - List all tasks
- GET /tasks/:id - Get a task
- PUT /tasks/:id - Update a task
- DELETE /tasks/:id - Delete a task
## Constraints
- Use TypeScript
- Use Express.js
- Use SQLite for storage
- Follow REST conventions
次に Cursor に「このタスクで Ralph ループを開始して」と伝えます。
進捗の確認
.ralph/progress.md を確認すると、完了した作業を確認できます:
## Iteration 1
- Created project structure
- Implemented POST /tasks endpoint
- Status: Partial progress
## Iteration 2
- Added GET endpoints
- Fixed validation bug
- Status: Continuing
新しく始めるタイミング
Ralph は「ガター」の状況を検知します:
- 同じエラーが 3 回以上繰り返される
- コンテキストが上限に近づいている
- 失敗が循環するパターンがある
検知すると、Ralph は次のように提案します:「コンテキストが汚染されています。新しい会話を開始することをおすすめします。」
ベストプラクティス
1. 明確な完了基準
❌ 悪い例:「優れた API を作る」 ✅ 良い例:「すべてのテストが合格し、カバレッジが 80% を超え、ドキュメントが完成している」
2. 段階的な目標
❌ 悪い例:「完全な E コマースプラットフォームを構築する」 ✅ 良い例:フェーズ 1:認証、フェーズ 2:商品、フェーズ 3:カート
3. 失敗から学ぶ
すぐに介入しないでください。Ralph に失敗させてから、標識を追加します。
4. ファイルを信頼する
進捗はファイルと git に記録されます。頭の中やコンテキストに記録するものではありません。
5. 新しいコンテキストを始めるコストは低い
ためらわずに新しく始めましょう。状態はファイルに保持されます。
Cursor Hooks との連携
このスキルでは、次の Cursor hooks を使用します:
- beforeSubmitPrompt:ガードレールとコンテキストへの認識を挿入する
- beforeReadFile:コンテキストへの割り当てを追跡する
- afterFileEdit:進捗の追跡を更新する
- stop:完了を評価し、次の反復または新たな開始を実行する
フックの実装については scripts/ を参照してください。
詳細情報
- 元の手法:https://ghuntley.com/ralph/
- コンテキストエンジニアリング:https://ghuntley.com/gutter/
- malloc/free のたとえ:https://ghuntley.com/allocations/