When the codex-reviewer and ralph-reviewed Stop hooks invoke
`codex exec`, they pass `-o <outputFile>` so the verdict can be parsed
back from a known path, then append the user's `extra_args`. Two latent
bugs surfaced after the docs commit started promoting the shared
~/.claude/codex.json knobs to standalone users:
1. The previous filter dropped `-o` / `--output*` tokens individually
but not the value that followed a bare flag. With
extra_args: ["-o", "/tmp/other"], the filter left "/tmp/other" as a
stray positional that Codex treated as an extra prompt argument.
The new index-walk filter consumes both halves of paired flags
(-o, --output, --output-last-message) and drops the inline
--flag=value variants. Applied to both hooks.
2. ralph-reviewed honored `timeout_seconds` raw. A configured value at
or above the 1800s Stop hook timeout let Claude kill the hook
before it could parse Codex's output and surface a verdict. Now
clamped to [60, 1680] (matching the existing codex-reviewer
clamp), leaving a 120s buffer below the hook ceiling.
Bumps ralph-reviewed to 3.0.2 and codex-reviewer to 1.6.10 in
lockstep across each plugin.json and the root marketplace.json. The
ralph-reviewed troubleshooting README is updated to describe the new
clamp range rather than telling users to "increase to 1800".
Claude Code now auto-loads hooks/hooks.json from plugin directories,
so explicit declaration causes duplicate loading. Also adds enabledPlugins
to settings template.
- ralph-reviewed: 1.8.7 → 1.8.8
- codex-reviewer: 1.6.8 → 1.6.9
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Claude Code auto-loads hooks/hooks.json by convention. Inline hooks
in plugin.json were not being loaded, causing Stop hooks to never
trigger.
- codex-reviewer: 1.6.5 → 1.6.6
- ralph-reviewed: 1.8.4 → 1.8.5
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When codex-reviewer has no active review gate, it was outputting
{"decision": "approve"} which could override other plugin hooks'
block decisions. Now it exits silently (no output) to let other
hooks like ralph-reviewed make the decision.
Also bumps versions: codex-reviewer to 1.6.5, ralph-reviewed to 1.8.4
Both codex-reviewer and ralph-reviewed plugins were missing the
"commands" field, preventing their slash commands from appearing
in the /plugin:command format.
The hooks configuration had an extra wrapper object causing Claude Code
to silently ignore the stop hook registration. This prevented the v1.8.0
hook from running entirely.
When Codex approves, stop hooks now output a systemMessage that Claude
Code displays to the user. This provides visibility into what happened
(approval status, reviewer notes, iteration counts) instead of silent exit.
Changes:
- codex-reviewer: Show approval summary with review cycle and files
- ralph-reviewed: Show status for APPROVE, BLOCKED, max iterations,
and max review cycles scenarios
- Added JSDoc with reference to official hooks documentation
- Bumped plugin versions (codex-reviewer 1.4.0, ralph-reviewed 1.6.0)
Instruct Codex to continue issue numbering from previous cycles
instead of restarting at ISSUE-1. This prevents confusion when
resolved issues and new issues share the same ID.
Add ~/.claude/ralphs/config.json for configuring Codex reviewer behavior:
- sandbox: read-only, workspace-write, danger-full-access
- approval_policy: untrusted, on-failure, on-request, never
- bypass_sandbox: skip sandbox entirely for full tooling access
- extra_args: additional CLI args
This allows Codex to run tsc, linters, and tests during reviews instead
of failing with EPERM in read-only sandbox mode.
Also fixes README: review format docs, log paths, extra_args docs.
- Parse verdict from END of output to avoid matching echoed examples
- Auto-approve with warning when REJECT has no parseable issues
- Add schema normalization for review_history backward compatibility
- Fix multi-line description regex using [\s\S]+? pattern
Bump plugin version to force cache invalidation after recent fixes:
- Version tracking (HOOK_BUILD)
- Log location moved to ~/.claude/ralphs/
- Read-only sandbox
- State file cleanup fixes
Claude Code caches plugins by version, so bumping ensures new code is used.
Fork of ralph-wiggum that adds a review phase using Codex CLI.
When Claude claims completion, Codex reviews the work before
allowing the loop to exit.
Features:
- Review gate at completion claims (APPROVE/REJECT)
- Configurable max review cycles (default: 3)
- Debug logging to session-specific files
- 20 minute timeout for long reviews
- Graceful degradation if Codex unavailable
Commands:
- /ralph-reviewed:ralph-loop - Start reviewed loop
- /ralph-reviewed:cancel-ralph - Cancel active loop
- /ralph-reviewed:help - Show usage
Also adds marketplace.json for plugin distribution.