Summary
Currently, Ralph's exit condition checks if all - [ ] checkboxes in fix_plan.md are completed. However, there's no semantic distinction between "Low Priority (required but deferred)" and "Optional (not
required)".
This leads to AI confusion:
- AI sees "Low Priority" items with - [ ] format
- AI interprets them as "optional" and doesn't implement
- But Ralph treats them as "required", blocking exit
- Result: AI neither implements nor exits → infinite loop
Problem Statement
Current behavior:
-
- No way to mark items as "truly optional"
AI's interpretation challenge:
- "Low Priority" is ambiguous - does it mean "required but do later" or "optional/future"?
- AI may choose not to implement, but also hesitate to exit
- Creates deadlock: not implementing + not exiting
Example Scenario
High Priority
Medium Priority
Low Priority
AI thinks: "Core done, Low Priority seems optional, I'll wait"
Ralph thinks: "Not all checkboxes done, keep looping"
Proposed Solution
Add semantic support for truly optional items:
Option A: Recognize special section headers
Optional
Future Enhancements
These sections would NOT block Condition 6 exit.
Option B: Use different list format
Low Priority (Required)
Optional / Nice to Have
- Frontend integration (not blocking)
- SMS verification (not blocking)
Items using * instead of - [ ] would not count toward completion check.
Option C: Add configuration in .ralphrc
Sections that don't block exit
OPTIONAL_SECTIONS="Optional,Future Enhancements,Nice to Have"
Benefits
- Clearer semantics for AI: knows which items are truly optional
- Faster exit when core work is done
- Reduces wasted loops on optional items
- Better user control over exit conditions
Environment
- Ralph version: latest
- Observed: 177 loops wasted on a completed captcha feature because AI couldn't decide whether to implement "Low Priority" items or exit
Summary
Currently, Ralph's exit condition checks if all - [ ] checkboxes in fix_plan.md are completed. However, there's no semantic distinction between "Low Priority (required but deferred)" and "Optional (not
required)".
This leads to AI confusion:
Problem Statement
Current behavior:
AI's interpretation challenge:
Example Scenario
High Priority
Medium Priority
Low Priority
AI thinks: "Core done, Low Priority seems optional, I'll wait"
Ralph thinks: "Not all checkboxes done, keep looping"
Proposed Solution
Add semantic support for truly optional items:
Option A: Recognize special section headers
Optional
Future Enhancements
These sections would NOT block Condition 6 exit.
Option B: Use different list format
Low Priority (Required)
Optional / Nice to Have
Items using * instead of - [ ] would not count toward completion check.
Option C: Add configuration in .ralphrc
Sections that don't block exit
OPTIONAL_SECTIONS="Optional,Future Enhancements,Nice to Have"
Benefits
Environment