mcpField
R
ralph-wiggum

ralph-wiggum

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

ralph-wiggum について

ralph-wiggum は、AIエージェントを繰り返し実行して開発タスクを進める Cursor スキルです。進捗や失敗から得たガードレールをファイルに保存し、継続か新しいコンテキストでの再開かをフックで判断します。

主な機能

  1. 01タスクの反復実行
  2. 02ファイルによる状態と進捗の記録
  3. 03失敗から得たガードレールの蓄積
  4. 04完了確認とコンテキスト問題の検出
  5. 05Cursor フックとの連携

活用シーン

  1. 01明確な目標がある開発タスクの反復
  2. 02AIエージェントの実行状況の追跡
  3. 03実装ミスを踏まえた防止策の記録

インストール

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

$npx skills add https://github.com/agrimsingh/ralph-wiggum-cursor --skill ralph-wiggum

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

同梱ファイル

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

.gitignore
install.sh
README.md
assets/
RALPH_TASK_NARROWING_DEBUGGER.md
RALPH_TASK_TEMPLATE.md
RALPH_TASK_EXAMPLE.md
GIT_WORKFLOW.md
references/
CONTEXT_ENGINEERING.md
GUARDRAILS.md
scripts/
init-ralph.sh
ralph-common.sh
ralph-loop.sh
ralph-retry.sh
ralph-setup.sh
ralph-parallel.sh
ralph-once.sh
stream-parser.sh
task-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
反復サイクル
  1. 現在のタスクと進捗を把握するため、状態ファイルを読み取る
  2. 従うべき関連する「標識」があるか、ガードレールを確認する
  3. タスクに取り組む:実装、テスト、改善を行う
  4. ファイルで進捗を更新する(コンテキストだけに記録しない)
  5. git 経由でチェックポイントをコミットする
  6. 基準に照らして完了を評価する
  7. 未完了の場合:次の反復を指示する
  8. 行き詰まった場合:ガターを検知し、新しいコンテキストを提案する
ガードレール(「標識」)

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/ を参照してください。

詳細情報

コメント