pam ▸ docs/ralph/RALPH_UPGRADE_NOTES_2026-03-15.md
updated 2026-03-28

Ralph Upgrade Notes (2026-03-15)

Local State

The local Ralph install at /Users/joshua/.ralph is a script bundle, not a git clone.

Observed before refresh: 1. ralph_import.sh identified itself as Version: 0.9.8 2. claude --version on this machine is 2.1.76, which is compatible with Ralph’s modern CLI checks

Upstream State

Public upstream: - frankbria/ralph-claude-code

Public repo summary currently reports: 1. version v0.9.9 2. dual-condition exit gate requiring explicit EXIT_SIGNAL: true 3. improved premature-exit protection 4. dedicated uninstall.sh

Practical Decision

For Pam, the safe upgrade path was: 1. back up the old local Ralph bundle 2. refresh /Users/joshua/.ralph from upstream 3. keep Pam-specific prompting and PRDs in the Pam repo 4. run Ralph through a repo-local wrapper

Backup created during refresh: - /Users/joshua/.ralph.backup_20260316_082533

Pam Integration Added

  1. docs/ralph/PROMPT_PAM_RESEARCH.md
  2. docs/prds/PRD_001_eventful_market_observation.md
  3. docs/prds/PRD_002_dislocation_research_sleeves.md
  4. docs/prds/PRD_003_deployment_gate_and_candidate_review.md
  5. docs/prds/PRD_004_ralph_research_operator.md
  6. scripts/run_ralph_pam_research.sh
  7. scripts/ralph_provider_router.py

Post-Refresh Smoke Test

  1. claude --version
  2. /Users/joshua/.ralph/ralph_loop.sh --help
  3. ./scripts/run_ralph_pam_research.sh

Provider Compatibility

Ralph still assumes Claude-style CLI arguments internally.

Pam now includes a compatibility router that can translate that invocation to Codex: 1. set in .ralphrc: - CLAUDE_CODE_CMD='python3 scripts/ralph_provider_router.py' 2. choose provider: - RALPH_PROVIDER='codex' - or RALPH_PROVIDER='claude'

This keeps Ralph usable even when the local Claude CLI auth path is broken.