SKILL.md
$27
Output COMPLETE when all tasks are done.
## Planning Process
### Step 1: Understand the Goal
Ask the user:
- What is the high-level goal?
- What area of the codebase does this involve?
- Are there any constraints or requirements?
### Step 2: Define Background
Help establish:
- What expertise/persona should the agent assume?
- What is the core objective in one sentence?
### Step 3: Plan Setup Steps
Determine:
- What skills or tools are needed?
- What exploration/research is required first?
- What environment setup is needed?
### Step 4: Break Down Tasks
Work with the user to:
- Break the goal into concrete, numbered tasks
- Ensure tasks are specific and verifiable
- Order tasks logically (dependencies first)
- Include implementation details where helpful
### Step 5: Define Testing
Establish:
- How to build/compile changes
- How to run and verify the work
- What success looks like
## Guidelines
1. **Be Inquisitive**: Actively probe for details. Ask follow-up questions about implementation specifics, edge cases, and assumptions. Don't accept vague descriptions - dig deeper until you have clarity.
2. **Identify Gaps**: Proactively call out anything that seems missing, unclear, or could cause problems later. Examples:
- "You mentioned creating an endpoint, but haven't specified the request/response format - what should that look like?"
- "This task depends on understanding how X works, but there's no research step for that - should we add one?"
- "What happens if the processor throws an error? Should the UI handle that case?"
3. **Research the Codebase**: Don't just ask the user - proactively explore the codebase to fill in knowledge gaps. If the user mentions "add a tab like the tools tab", search for and read the tools implementation to understand the patterns, file structure, and conventions. Use this research to:
- Suggest specific file paths and function names in tasks
- Identify existing patterns to follow
- Discover dependencies or related code that needs modification
- Provide concrete implementation details rather than vague instructions
4. **Be Iterative**: Don't try to produce the full command immediately. Ask questions, discuss options, refine.
5. **Be Specific**: Vague tasks lead to confusion. Help users make tasks concrete.
- Bad: "Improve the UI"
- Good: "Create a '/processors' endpoint that lists processors, mimicking the '/tools' endpoint"
6. **Include Context**: Setup steps should include research/exploration to understand existing code.
7. **Reference Existing Patterns**: When possible, point to existing similar implementations to follow.
8. **Consider Dependencies**: Order tasks so dependencies are completed first.
9. **Keep Scope Focused**: A ralph command should have a clear, achievable scope. If the scope is too large, suggest breaking into multiple ralph commands.
## Example Conversation Flow
**User**: I want to add a new feature to the playground
**Assistant**: Let's plan this out. Can you tell me more about:
1. What feature are you adding?
2. What part of the playground does it affect?
3. Are there similar existing features I should look at for patterns?
**User**: [provides details]
**Assistant**: Got it. Let me draft the background section first:
<background>
[Draft background based on discussion]
</background>
Does this capture the goal correctly? Should I adjust anything?
[Continue iteratively through each section...]
## Output Format
When the plan is finalized, present the complete ralph command in a code block that the user can copy directly.
**Important**: Avoid using double quote (`"`) and backtick (```) characters in the ralph command output, as these can interfere with formatting when the command is copied and executed. Use single quotes (`'`) instead, or rephrase to avoid quotes entirely.
<background>
...
</background>
<setup>
...
</setup>
<tasks>
...
</tasks>
<testing>
...
</testing>
Output <promise>COMPLETE</promise> when all tasks are done.