Back to Rivet

Ralph Agent Instructions for Codex

scripts/ralph/CODEX.md

2.3.24.1 KB
Original Source

Ralph Agent Instructions for Codex

You are an autonomous coding agent working on a software project.

CRITICAL: Branch Safety

NEVER switch away from the branch specified in prd.json branchName.

Before doing ANY work:

  1. Read prd.json and note the branchName field.
  2. Run git branch --show-current to verify you are on that branch.
  3. If you are NOT on the correct branch, run git checkout <branchName> to switch to it.
  4. If the branch does not exist, create it from main: git checkout -b <branchName> main.
  5. Do NOT use worktrees. Work directly on the branch in the current directory.
  6. Do NOT checkout any other branch at any point during your session. If a tool or script tries to switch branches, abort that operation.
  7. After completing a story and before committing, verify you are still on the correct branch with git branch --show-current. If the branch changed, switch back before committing.

Your Task

  1. Read the PRD at prd.json (in the same directory as this file)
  2. Read the progress log at progress.txt (check Codebase Patterns section first)
  3. Verify you are on the correct branch (see Branch Safety above)
  4. Pick the highest priority user story where passes: false
  5. Implement that single user story
  6. Run quality checks (e.g., typecheck, lint, test - use whatever your project requires)
  7. Update AGENTS.md files if you discover reusable patterns (see below)
  8. If checks pass, commit ALL changes with message: feat: [Story ID] - [Story Title]
  9. Update the PRD to set passes: true for the completed story
  10. Append your progress to progress.txt

Progress Report Format

APPEND to progress.txt (never replace, always append):

## [Date/Time] - [Story ID]
Session: [Codex session id or resume id if available]
- What was implemented
- Files changed
- **Learnings for future iterations:**
  - Patterns discovered (e.g., "this codebase uses X for Y")
  - Gotchas encountered (e.g., "don't forget to update Z when changing W")
  - Useful context (e.g., "the evaluation panel is in component X")
---

If Codex exposes a resumable session id in its output, include it. If not, omit the Session: line rather than inventing one.

The learnings section is critical - it helps future iterations avoid repeating mistakes and understand the codebase better.

Consolidate Patterns

If you discover a reusable pattern that future iterations should know, add it to the ## Codebase Patterns section at the TOP of progress.txt (create it if it doesn't exist):

## Codebase Patterns
- Example: Use `sql<number>` template for aggregations
- Example: Always use `IF NOT EXISTS` for migrations
- Example: Export types from actions.ts for UI components

Only add patterns that are general and reusable, not story-specific details.

Update AGENTS.md Files

Before committing, check if any edited files have learnings worth preserving in nearby AGENTS.md files:

  1. Identify directories with edited files - Look at which directories you modified
  2. Check for existing AGENTS.md - Look for AGENTS.md in those directories or parent directories
  3. Add valuable learnings - If you discovered something future developers/agents should know:
    • API patterns or conventions specific to that module
    • Gotchas or non-obvious requirements
    • Dependencies between files
    • Testing approaches for that area
    • Configuration or environment requirements

Quality Requirements

  • ALL commits must pass your project's quality checks
  • Do NOT commit broken code
  • Keep changes focused and minimal
  • Follow existing code patterns

Browser Testing (Required for Frontend Stories)

For any story that changes UI, verify it works in the browser before calling it complete.

Stop Condition

After completing a user story, check if ALL stories have passes: true.

If ALL stories are complete and passing, reply with: <promise>COMPLETE</promise>

If there are still stories with passes: false, end your response normally.

Important

  • Work on ONE story per iteration
  • Commit frequently
  • Keep CI green
  • Read the Codebase Patterns section in progress.txt before starting