You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ralph-wiggum/.claude-plugin/plugin.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "ralph-wiggum",
3
-
"version": "1.1.2",
4
-
"description": "Self-referential development loop for Claude Code with session isolation. Run iterative tasks with automatic progress detection and safety controls.",
3
+
"version": "2.0.0",
4
+
"description": "Self-referential development loop for Claude Code. Run iterative tasks with automatic progress detection and circuit breaker safety.",
cat .claude/ralph-circuit.local.json # Circuit breaker state
157
83
```
158
84
159
-
State files are stored in `.claude/ralph-session.local/` with session_id as filename suffix. Each Claude Code session has isolated state. The `.local` suffix ensures gitignore compatibility.
160
-
161
-
## Configuration
85
+
## When to Use
162
86
163
-
Environment variables:
87
+
**Good for:**
88
+
- Tasks with clear success criteria (tests pass, build succeeds)
89
+
- Iterative refinement (debugging, optimization)
90
+
- Greenfield implementation with defined requirements
164
91
165
-
| Variable | Default | Description |
166
-
|----------|---------|-------------|
167
-
|`RALPH_MAX_NO_PROGRESS`| 3 | Iterations without progress before halt |
168
-
|`RALPH_MAX_ERRORS`| 5 | Consecutive errors before halt |
169
-
|`RALPH_MAX_IDENTICAL`| 3 | Identical outputs before halt |
170
-
|`RALPH_COMPLETION_THRESHOLD`| 40 | Confidence score for smart exit |
92
+
**Not for:**
93
+
- Tasks requiring human judgment or design decisions
94
+
- One-shot operations
95
+
- Production debugging
171
96
172
97
## Architecture
173
98
@@ -182,115 +107,15 @@ ralph-wiggum/
182
107
│ └── help.md # Plugin documentation
183
108
├── hooks/
184
109
│ ├── hooks.json # Hook configuration
185
-
│ ├── session-start-hook.sh # Session ID capture
186
110
│ └── stop-hook.sh # Main loop interceptor
187
-
├── lib/
188
-
│ ├── utils.sh # Session isolation utilities
189
-
│ ├── circuit_breaker.sh # Stagnation detection
190
-
│ ├── response_analyzer.sh # Completion analysis
191
-
│ ├── api_limit_handler.sh # Rate limit handling
192
-
│ └── task_manager.sh # Task state management
193
111
└── scripts/
194
112
├── setup-ralph-loop.sh # Loop initialization
195
113
├── status.sh # Status display
196
114
└── cancel-ralph.sh # Cancellation handler
197
-
198
-
Project directory (.claude/):
199
-
├── ralph-session.local/
200
-
│ ├── ralph-loop.{session_id}.local.md
201
-
│ ├── ralph-circuit.{session_id}.json
202
-
│ ├── ralph-analysis.{session_id}.json
203
-
│ ├── ralph-limits.{session_id}.json
204
-
│ └── ralph-tasks.{session_id}.json
205
-
```
206
-
207
-
## When to Use
208
-
209
-
**Good for:**
210
-
- Tasks with clear success criteria (tests pass, build succeeds)
211
-
- Iterative refinement (debugging, optimization)
212
-
- Greenfield implementation with defined requirements
213
-
214
-
**Not for:**
215
-
- Tasks requiring human judgment or design decisions
216
-
- One-shot operations
217
-
- Production debugging
218
-
219
-
## Troubleshooting
220
-
221
-
### Loop won't start
222
-
223
-
1. Check if another loop is active: `/status`
224
-
2. Cancel any existing loop: `/cancel-ralph`
225
-
3. Try again with your prompt
226
-
227
-
### Loop exits too early
228
-
229
-
The smart exit feature may trigger on completion keywords. Options:
230
-
- Use `--no-smart-exit` to disable completion detection
231
-
- Add more specific requirements to your prompt
232
-
- Check `.claude/ralph-session.local/ralph-analysis.{session_id}.json` to see what triggered the exit
233
-
234
-
### Loop runs forever
235
-
236
-
Ensure your prompt includes:
237
-
- Clear, testable completion criteria
238
-
- A `<promise>` tag if using `--completion-promise`
- Session isolation: State files now stored as `.claude/ralph-session.local/{name}.{session_id}.{ext}`
277
-
- SessionStart hook: Captures session_id at session start
278
-
- Session ID display: `/status` shows current session ID
279
-
- lib/utils.sh: New utility module for session isolation
280
-
281
-
**Fixed**
282
-
- Cross-session interference: Stop hook now only processes state belonging to its session, preventing multiple Claude Code sessions from hijacking each other's loops
283
-
284
-
**Changed**
285
-
- State file location moved from `.claude/ralph-*.local.*` to `.claude/ralph-session.local/{name}.{session_id}.{ext}`
286
-
- All library modules use dynamic path resolution
287
-
-`.local` suffix on directory ensures gitignore compatibility
288
-
289
-
### [1.0.1] - Initial Release
290
-
291
-
Self-referential development loop with circuit breaker, smart exit, and API limit handling.
0 commit comments