Agent skill
ralph
RALPH autonomous development management - status, validation, analysis
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/ralph-doravidan-supreme-ralph-2
SKILL.md
RALPH - Autonomous Development Manager
Manage RALPH (Recursive Autonomous Loop for Production Harmony) autonomous development in any project.
Commands
| Command | Description |
|---|---|
/ralph |
Show PRD completion status |
/ralph --status |
Detailed status with remaining stories |
/ralph --validate |
Validate prd.json schema |
/ralph --reset |
Reset progress.txt for fresh start |
/ralph --analyze |
Re-analyze project, regenerate PROJECT_SPEC.md |
Triggers
/ralphor/ralph --status- "show RALPH status"
- "what's the PRD status"
- "how many stories are done"
Process
Status Check (/ralph or /ralph --status)
- Check for PRD file:
# Check which PRD format exists
if [ -f prd.json ]; then
echo "Found: prd.json (JSON format)"
elif [ -f PRD.md ]; then
echo "Found: PRD.md (Markdown format)"
elif [ -f tasks.yaml ]; then
echo "Found: tasks.yaml (YAML format)"
else
echo "No PRD found. Run /prd or /setup-project first."
fi
- Display status for JSON format:
cat prd.json | jq '{
project: .project,
branch: .branchName,
total: (.userStories | length),
complete: ([.userStories[] | select(.passes == true)] | length),
remaining: ([.userStories[] | select(.passes == false)] | length),
percentComplete: (([.userStories[] | select(.passes == true)] | length) * 100 / (.userStories | length) | floor)
}'
- Show remaining stories:
echo ""
echo "=== Remaining Stories ==="
cat prd.json | jq -r '.userStories[] | select(.passes == false) | " \(.id): \(.title) (Priority \(.priority))"'
- Show progress log summary:
if [ -f .ralph/progress.txt ]; then
echo ""
echo "=== Recent Progress ==="
tail -20 .ralph/progress.txt
fi
Output format:
╔════════════════════════════════════════════════════════════════╗
║ RALPH Status ║
╚════════════════════════════════════════════════════════════════╝
Project: User Authentication
Branch: ralph/user-authentication
Progress: 3/6 stories (50% complete)
=== Remaining Stories ===
US-004: Add login and register routes (Priority 4)
US-005: Implement auth middleware (Priority 5)
US-006: Add logout and session management (Priority 6)
=== Recent Progress ===
## 2024-01-15 - US-003: Create JWT token utilities
- Implemented JWT signing and verification
- Files changed: src/utils/jwt.ts, tests/jwt.test.ts
- Learnings: Use jose library for edge compatibility
---
Validate (/ralph --validate)
- Check prd.json exists:
if [ ! -f prd.json ]; then
echo "❌ No prd.json found"
echo "Run /prd [feature] to create one"
exit 1
fi
- Validate JSON syntax:
cat prd.json | jq . > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "❌ prd.json is not valid JSON"
exit 1
fi
- Validate schema:
Check for required fields:
project(string) - Project/feature nameuserStories(array) - List of stories- Each story must have:
id(string) - Unique identifier like "US-001"title(string) - Brief titledescription(string) - What to implementacceptanceCriteria(array of strings) - What must be truepriority(number) - 1 is highestpasses(boolean) - Completion status
# Check required fields
VALID=true
PROJECT=$(cat prd.json | jq -r '.project // empty')
if [ -z "$PROJECT" ]; then
echo "❌ Missing 'project' field"
VALID=false
fi
STORIES=$(cat prd.json | jq '.userStories | length')
if [ "$STORIES" -eq 0 ]; then
echo "❌ No user stories found"
VALID=false
fi
# Check each story
cat prd.json | jq -r '.userStories[] | select(.id == null or .title == null or .priority == null or .passes == null) | .id // "unknown"' | while read id; do
echo "❌ Story '$id' missing required fields"
VALID=false
done
if $VALID; then
echo "✓ prd.json is valid"
echo " Project: $PROJECT"
echo " Stories: $STORIES"
fi
Output format:
╔════════════════════════════════════════════════════════════════╗
║ PRD Validation Results ║
╚════════════════════════════════════════════════════════════════╝
✓ JSON syntax: Valid
✓ Project field: "User Authentication"
✓ User stories: 6 stories found
Story Validation:
✓ US-001: Has all required fields
✓ US-002: Has all required fields
⚠ US-003: Missing acceptanceCriteria (recommended)
✓ US-004: Has all required fields
✓ US-005: Has all required fields
✓ US-006: Has all required fields
Overall: ✓ Valid (1 warning)
Reset (/ralph --reset)
- Confirm with user:
Use AskUserQuestion:
? Are you sure you want to reset RALPH progress?
○ Yes, reset progress.txt (keeps prd.json untouched)
○ Yes, reset everything (resets progress and all story statuses)
○ No, cancel
- Reset progress.txt only:
cat > .ralph/progress.txt << 'EOF'
# RALPH Progress Log
Reset: $(date +%Y-%m-%d)
Reason: Manual reset by user
## Discovered Patterns
(Patterns will be logged here as they are discovered during iterations)
## Learnings
(Key learnings from each task will be recorded here)
---
EOF
- Reset everything (if requested):
Also reset all story statuses:
# Reset all stories to passes: false
cat prd.json | jq '.userStories |= map(.passes = false)' > prd.json.tmp
mv prd.json.tmp prd.json
Output:
✓ Reset complete
Progress log cleared: .ralph/progress.txt
{{#if resetStories}}
Story statuses reset: All 6 stories set to incomplete
{{/if}}
Run /ralph-run to start fresh.
Analyze (/ralph --analyze)
- Inform user:
🔍 Re-analyzing project...
This will:
1. Scan the codebase for patterns
2. Detect frameworks, test setup, linting
3. Regenerate PROJECT_SPEC.md
4. Update .ralph/config.yaml if needed
Existing files will be backed up.
- Run analysis:
- Scan directory structure
- Detect language from file extensions
- Parse package.json / requirements.txt / go.mod
- Detect test framework from dependencies and config files
- Find existing patterns in code
- Regenerate PROJECT_SPEC.md:
Back up existing file, then regenerate with discovered patterns.
- Update config.yaml:
Update quality commands based on detected tools.
Output:
╔════════════════════════════════════════════════════════════════╗
║ Project Analysis Complete ║
╚════════════════════════════════════════════════════════════════╝
Detected:
Language: TypeScript
Framework: Express
Test Framework: Vitest
Linter: ESLint + Prettier
Patterns Found:
- ES Modules (import/export)
- Functional components
- Tests co-located with source
Updated:
✓ PROJECT_SPEC.md (backed up to PROJECT_SPEC.md.bak)
✓ .ralph/config.yaml
Run /ralph --status to see current PRD status.
Error Handling
| Error | Message | Solution |
|---|---|---|
| No PRD | "No PRD found" | Run /prd [feature] or /setup-project |
| Invalid JSON | "prd.json is not valid JSON" | Fix syntax errors in prd.json |
| No .ralph directory | "RALPH not configured" | Run /setup-project |
| Permission denied | "Cannot write to .ralph/" | Check directory permissions |
Tips
- Run
/ralph --statusfrequently to track progress - Use
/ralph --validatebefore starting/ralph-run - Use
/ralph --resetif you want to start a feature over - Use
/ralph --analyzeafter major codebase changes
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?