hybrid-ralph
Scannednpx machina-cli add skill Taoidle/plan-cascade/hybrid-ralph --openclawHybrid Ralph + Planning-with-Files
A hybrid architecture combining the best of three approaches:
Auto-Recovery Protocol (CRITICAL)
At the START of any interaction, perform this check to recover context after compression/truncation:
-
Check if
.hybrid-execution-context.mdexists in the current directory -
If YES:
- Read the file content using Read tool
- Display: "Detected ongoing hybrid task execution"
- Show current batch and pending stories from the file
- Resume story execution based on the state
- If unsure of state, suggest:
/hybrid:resume --auto
-
If NO but
prd.jsonexists:- Run:
uv run python "${CLAUDE_PLUGIN_ROOT}/skills/hybrid-ralph/scripts/hybrid-context-reminder.py" both - This will generate the context file and display current state
- Run:
This ensures context recovery even after:
-
Context compression (AI summarizes old messages)
-
Context truncation (old messages deleted)
-
New conversation session
-
Claude Code restart
-
Ralph: Structured PRD format (prd.json), progress tracking patterns, small task philosophy
-
Planning-with-Files: 3-file planning pattern (task_plan.md, findings.md, progress.txt), Git Worktree support
-
Claude Code Native: Task tool with subagents for parallel story execution
Quick Start
Automatic PRD Generation
Generate a PRD from your task description:
/hybrid:auto Implement a user authentication system with login, registration, and password reset
This will:
- Launch a Planning Agent to analyze your task
- Generate a PRD with user stories
- Show the PRD for review
- Wait for your approval
Manual PRD Loading
Load an existing PRD file:
/hybrid:manual path/to/prd.json
Approval and Execution
After reviewing the PRD:
/approve
This begins parallel execution of stories according to the dependency graph.
Architecture
File Structure
project-root/
├── prd.json # Product Requirements Document
├── findings.md # Research findings (tagged by story)
├── progress.txt # Progress tracking
├── .current-story # Currently executing story
├── .locks/ # File locks for concurrent access
└── .agent-outputs/ # Individual agent logs
The PRD Format
The prd.json file contains:
- metadata: Creation date, version, description
- goal: One-sentence project goal
- objectives: List of specific objectives
- stories: Array of user stories with:
id: Unique story identifier (story-001, story-002, etc.)title: Short story titledescription: Detailed story descriptionpriority: high, medium, or lowdependencies: Array of story IDs this story depends onstatus: pending, in_progress, or completeacceptance_criteria: List of completion criteriacontext_estimate: small, medium, large, or xlargetags: Array of tags for categorization
Parallel Execution Model
Stories are organized into execution batches:
- Batch 1: Stories with no dependencies (run in parallel)
- Batch 2+: Stories whose dependencies are complete (run in parallel)
Batch 1 (Parallel):
- story-001: Design database schema
- story-002: Design API endpoints
Batch 2 (After story-001 complete):
- story-003: Implement database schema
Batch 3 (After story-002, story-003 complete):
- story-004: Implement API endpoints
Context Filtering
Each agent receives only relevant context:
- Their story description and acceptance criteria
- Summaries of completed dependencies
- Findings tagged with their story ID
This keeps context windows focused and efficient.
Core Python Modules
context_filter (migrated to src/plan_cascade/state/)
Context filtering functionality is now provided by the main package.
# Get story details
uv run python -m plan_cascade.state.context_filter get-story story-001
# Get context for a story
uv run python -m plan_cascade.state.context_filter get-context story-001
# Get execution batch
uv run python -m plan_cascade.state.context_filter get-batch 1
# Show full execution plan
uv run python -m plan_cascade.state.context_filter plan-batches
state_manager.py
Thread-safe file operations with platform-specific locking.
# Read PRD
uv run python state_manager.py read-prd
# Mark story complete
uv run python state_manager.py mark-complete story-001
# Get all story statuses
uv run python state_manager.py get-statuses
prd_generator.py
Generates PRD from task descriptions and manages story dependencies.
# Validate PRD
uv run python prd_generator.py validate
# Show execution batches
uv run python prd_generator.py batches
# Create sample PRD
uv run python prd_generator.py sample
orchestrator.py
Manages parallel execution of stories.
# Show execution plan
uv run python orchestrator.py plan
# Show execution status
uv run python orchestrator.py status
# Execute a batch
uv run python orchestrator.py execute-batch 1
Commands Reference
/hybrid:auto
Generate PRD from task description and enter review mode. Auto-generates user stories with priorities, dependencies, and acceptance criteria for parallel execution.
/hybrid:auto [options] <task description> [design-doc-path]
Parameters:
| Parameter | Description |
|---|---|
--flow <quick|standard|full> | Execution flow depth controlling quality gate strictness |
--tdd <off|on|auto> | Test-Driven Development mode |
--confirm | Require batch confirmation during execution |
--no-confirm | Disable batch confirmation |
--spec <off|auto|on> | Spec interview before PRD generation |
--first-principles | Enable first-principles questioning in spec interview |
--max-questions N | Max questions in spec interview |
--agent <name> | Agent to use for PRD generation |
design-doc-path | Optional path to existing design document |
Parameters are saved to prd.json and propagated to /approve.
/hybrid:manual
Load an existing PRD file and enter review mode.
/hybrid:manual [path/to/prd.json]
/hybrid:worktree
Start a new task in an isolated Git worktree with Hybrid Ralph PRD mode. Creates worktree, branch, loads existing PRD or auto-generates from description.
/hybrid:worktree [options] <task-name> <target-branch> <prd-path-or-description> [design-doc-path]
Arguments:
task-name: Name for the worktree (e.g., "feature-auth", "fix-api-bug")target-branch: Branch to merge into (default: auto-detect main/master)prd-path-or-description: Either a task description to generate PRD, or path to existing PRD file
Parameters:
| Parameter | Description |
|---|---|
--flow <quick|standard|full> | Execution flow depth controlling quality gate strictness |
--tdd <off|on|auto> | Test-Driven Development mode |
--confirm | Require batch confirmation during execution |
--no-confirm | Disable batch confirmation |
--spec <off|auto|on> | Spec interview before PRD generation |
--first-principles | Enable first-principles questioning in spec interview |
--max-questions N | Max questions in spec interview |
--agent <name> | Agent to use for PRD generation |
design-doc-path | Optional path to existing design document |
Parameters are saved to the worktree's prd.json, ensuring isolation from other tasks.
/approve
Approve PRD and begin parallel story execution. Analyzes dependencies, creates execution batches, launches background Task agents, and monitors progress.
/approve [options]
Parameters:
| Parameter | Description |
|---|---|
--flow <quick|standard|full> | Override execution flow depth (quality gate strictness) |
--tdd <off|on|auto> | Control TDD mode for story execution |
--confirm | Require confirmation before each batch |
--no-confirm | Disable batch confirmation (even in full flow) |
--agent <name> | Global agent override for all stories |
--impl-agent <name> | Agent for implementation phase |
--retry-agent <name> | Agent for retry phase (after failures) |
--no-verify | Skip AI verification gate |
--verify-agent <name> | Agent for verification phase |
--no-review | Skip code review gate |
--no-fallback | Disable agent fallback chain |
--auto-run | Use Python-based full-auto execution with retry |
Flow Levels:
| Flow | Gate Mode | AI Verification | Code Review | Test Enforcement |
|---|---|---|---|---|
quick | soft (warnings) | disabled | no | no |
standard | soft (warnings) | enabled | no | no |
full | hard (blocking) | enabled | required | required |
Execution Modes:
| Mode | Description |
|---|---|
| Auto | Automatically progresses through batches, pauses on errors |
| Manual | Requires user approval before each batch |
| Full Auto | Python-based execution with auto-retry (up to 3 attempts) |
/hybrid:complete
Complete a worktree task. Verifies all stories are complete, commits code changes (excluding planning files), merges to target branch, and removes worktree.
/hybrid:complete [target-branch]
/edit
Edit the PRD in your default editor. Opens prd.json, validates after saving, and re-displays review.
/edit
/status
Show execution status of all stories. Displays batch progress, individual story states, completion percentage, and recent activity.
/status
/show-dependencies
Display the dependency graph for all stories in the PRD. Shows visual ASCII graph, critical path analysis, and detects issues like circular dependencies.
/show-dependencies
Workflows
Complete Workflow
1. /hybrid:auto "Implement feature X"
↓
2. Review generated PRD
↓
3. /edit (if needed) or /approve
↓
4. Agents execute stories in parallel batches
↓
5. Monitor with /status
↓
6. All stories complete
Manual PRD Workflow
1. Create prd.json (or use template)
↓
2. /hybrid:manual prd.json
↓
3. Review and edit as needed
↓
4. /approve
↓
5. Execution begins
Findings Tagging
When updating findings.md, tag sections with relevant story IDs:
<!-- @tags: story-001,story-002 -->
## Database Schema Discovery
The existing schema uses UUIDs for primary keys...
This allows agents to receive only relevant findings.
Progress Tracking
Track progress in progress.txt:
[2024-01-15 10:00:00] story-001: [IN_PROGRESS] story-001
[2024-01-15 10:15:00] story-001: [COMPLETE] story-001
[2024-01-15 10:15:00] story-002: [IN_PROGRESS] story-002
File Locking
The state manager uses platform-specific locking:
- Linux/Mac: fcntl for advisory file locking
- Windows: msvcrt for file locking
- Fallback: PID-based lock files
Lock files are stored in .locks/ directory.
Error Handling
Validation Errors
If PRD validation fails:
- Check for duplicate story IDs
- Verify all dependencies exist
- Ensure required fields are present
- Use
/editto fix issues
Execution Failures
If a story fails:
- Check
.agent-outputs/<story-id>.log - Review progress.txt for error messages
- Fix issues manually or with agent help
- Re-run the story
Dependency Cycles
If dependency cycles are detected:
- Review
/show-dependenciesoutput - Use
/editto break cycles - Re-validate with
/hybrid:manual
Best Practices
- Write Clear Descriptions: Agents work better with specific, detailed descriptions
- Use Acceptance Criteria: Define what "done" means for each story
- Tag Findings: Always tag findings with relevant story IDs
- Update Progress: Mark stories complete promptly
- Review Before Approval: Always review the PRD before approving
Integration with Planning-with-Files
This skill integrates seamlessly with planning-with-files:
- Standard Mode: Use alongside existing task_plan.md, findings.md, progress.md
- Worktree Mode: Each worktree can have its own PRD and story execution
- Session Recovery: Resume work after /clear with
/hybrid:manual
Templates
Use the provided templates as starting points:
templates/prd.json.example- Example PRD structuretemplates/prd_review.md- PRD review display templatetemplates/findings.md- Structured findings template
Troubleshooting
PRD Not Found
Error: No PRD found in current directory
Solution: Use /hybrid:auto to generate or /hybrid:manual to load.
Lock Timeout
TimeoutError: Could not acquire lock within 30s
Solution: Run uv run python state_manager.py cleanup-locks to remove stale locks.
Dependency Not Found
Validation Error: Unknown dependency 'story-005'
Solution: Edit PRD to fix dependency reference or add missing story.
See Also
- planning-with-files - Base planning skill
- Ralph Loop - Original Ralph concept
Source
git clone https://github.com/Taoidle/plan-cascade/blob/master/skills/hybrid-ralph/SKILL.mdView on GitHub Overview
This skill fuses Ralph's PRD format with Planning-with-Files' structured approach to auto-generate PRDs from task descriptions. It coordinates parallel stories with dependency resolution to prevent conflicts. It also provides context-filtered agents to accelerate multi-story development.
How This Skill Works
At the start it runs an Auto-Recovery Protocol to restore context from .hybrid-execution-context.md or prd.json. When given a task description, it auto-generates a PRD and derives multiple stories, scheduling them in parallel while resolving dependencies. The current story context is surfaced via .current-story and can be filtered using plan_cascade.state.context_filter to keep focus aligned with the task.
When to Use It
- You need to auto-generate a PRD from a raw task description.
- You want to run multiple stories in parallel but with explicit dependency constraints.
- You need to recover a hybrid session after a pause, crash, or restart.
- You want to use context-filtered agents to concentrate on a subset of stories.
- You want to capture and tag findings after significant operations.
Quick Start
- Step 1: Provide a task description to trigger PRD generation and PRD-based story derivation.
- Step 2: Review prd.json and .current-story, then start parallel stories with dependency rules in place.
- Step 3: If interrupted, invoke the Auto-Recovery Protocol or /hybrid:resume --auto to recover and continue.
Best Practices
- Provide a clear task description to trigger precise PRD generation and story derivation.
- Keep .hybrid-execution-context.md up to date to enable reliable recovery.
- Regularly review prd.json and .current-story to monitor progress and dependencies.
- Explicitly define and resolve dependencies before launching parallel stories.
- Use PostToolUse reminders to document findings and tag with the relevant story ID.
Example Use Cases
- Auto-generate a PRD for a new feature from a backlog item and launch two dependent stories in parallel.
- Recover a partially running hybrid session after an interruption using the Auto-Recovery Protocol.
- Coordinate three stories across teams with a filtered agent set focused on critical paths.
- Update findings.md with a tag like <!-- @tags: STORY-123 --> after completing a milestone.
- Resume ongoing work with /hybrid:resume --auto to pick up where you left off.