ralph-review 0.1.11 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +194 -109
  2. package/package.json +3 -3
  3. package/src/cli-core.ts +169 -34
  4. package/src/cli-rrr.ts +2 -2
  5. package/src/cli.ts +25 -5
  6. package/src/commands/apply.ts +87 -0
  7. package/src/commands/config-handlers.ts +395 -0
  8. package/src/commands/config-model.ts +743 -0
  9. package/src/commands/config-runtime.ts +191 -0
  10. package/src/commands/config.ts +9 -1344
  11. package/src/commands/doctor.ts +49 -26
  12. package/src/commands/fix.ts +595 -0
  13. package/src/commands/handoff-selection.ts +157 -0
  14. package/src/commands/init.ts +38 -122
  15. package/src/commands/list.ts +35 -4
  16. package/src/commands/log.ts +128 -67
  17. package/src/commands/prune.ts +724 -0
  18. package/src/commands/run.ts +322 -155
  19. package/src/commands/stop.ts +335 -73
  20. package/src/lib/agents/codex.ts +90 -26
  21. package/src/lib/agents/models.ts +30 -57
  22. package/src/lib/agents/runner.ts +4 -6
  23. package/src/lib/cli-parser.ts +2 -2
  24. package/src/lib/config-display.ts +0 -38
  25. package/src/lib/config.ts +12 -199
  26. package/src/lib/diagnostics/capabilities.ts +333 -37
  27. package/src/lib/diagnostics/checks.ts +21 -48
  28. package/src/lib/diagnostics/index.ts +4 -2
  29. package/src/lib/diagnostics/remediation.ts +2 -44
  30. package/src/lib/diagnostics/types.ts +1 -0
  31. package/src/lib/engine.ts +3 -878
  32. package/src/lib/format.ts +18 -1
  33. package/src/lib/git.ts +674 -36
  34. package/src/lib/handoff-note.ts +39 -0
  35. package/src/lib/handoff.ts +499 -0
  36. package/src/lib/logger.ts +3 -1105
  37. package/src/lib/logging/index.ts +1 -0
  38. package/src/lib/logging/session-log.ts +1029 -0
  39. package/src/lib/priority-list.ts +43 -0
  40. package/src/lib/prompts/defaults/review.md +1 -11
  41. package/src/lib/prompts/fixer.ts +3 -108
  42. package/src/lib/prompts/index.ts +0 -1
  43. package/src/lib/prompts/review.ts +6 -60
  44. package/src/lib/review-workflow/findings/artifact.ts +372 -0
  45. package/src/lib/review-workflow/findings/dedupe.ts +221 -0
  46. package/src/lib/review-workflow/findings/index.ts +2 -0
  47. package/src/lib/review-workflow/findings/inventory.ts +106 -0
  48. package/src/lib/review-workflow/findings/selection.ts +62 -0
  49. package/src/lib/review-workflow/findings/types.ts +44 -0
  50. package/src/lib/review-workflow/index.ts +16 -0
  51. package/src/lib/review-workflow/presentation.ts +118 -0
  52. package/src/lib/review-workflow/remediation/index.ts +4 -0
  53. package/src/lib/review-workflow/remediation/prompt.ts +250 -0
  54. package/src/lib/review-workflow/remediation/run-batch-fix-phase.ts +199 -0
  55. package/src/lib/review-workflow/remediation/run-fix-session.ts +542 -0
  56. package/src/lib/review-workflow/remediation/types.ts +36 -0
  57. package/src/lib/review-workflow/results/finalize-result.ts +98 -0
  58. package/src/lib/review-workflow/results/index.ts +1 -0
  59. package/src/lib/review-workflow/review/index.ts +4 -0
  60. package/src/lib/review-workflow/review/prompt.ts +142 -0
  61. package/src/lib/review-workflow/review/run-review-phase.ts +149 -0
  62. package/src/lib/review-workflow/review/run-review-session.ts +553 -0
  63. package/src/lib/review-workflow/review/types.ts +32 -0
  64. package/src/lib/review-workflow/run-review-cycle.ts +300 -0
  65. package/src/lib/review-workflow/shared/framed-json.ts +115 -0
  66. package/src/lib/review-workflow/shared/index.ts +1 -0
  67. package/src/lib/review-workflow/shared/types.ts +10 -0
  68. package/src/lib/session/index.ts +1 -0
  69. package/src/lib/session/state.ts +551 -0
  70. package/src/lib/session-state.ts +3 -0
  71. package/src/lib/stop-session.ts +262 -0
  72. package/src/lib/structured-output.ts +1 -11
  73. package/src/lib/tui/dashboard/Dashboard.tsx +306 -0
  74. package/src/lib/tui/dashboard/DashboardOverlays.tsx +85 -0
  75. package/src/lib/tui/{components → dashboard}/Header.tsx +6 -34
  76. package/src/lib/tui/{components → dashboard}/HelpOverlay.tsx +19 -11
  77. package/src/lib/tui/dashboard/ReviewModeOverlay.tsx +1226 -0
  78. package/src/lib/tui/dashboard/StatusBar.tsx +122 -0
  79. package/src/lib/tui/dashboard/StopSessionPickerOverlay.tsx +89 -0
  80. package/src/lib/tui/dashboard/dashboard-fix-state.ts +76 -0
  81. package/src/lib/tui/dashboard/dashboard-focus.ts +24 -0
  82. package/src/lib/tui/dashboard/dashboard-keyboard.ts +133 -0
  83. package/src/lib/tui/dashboard/dashboard-overlay-state.ts +17 -0
  84. package/src/lib/tui/dashboard/dashboard-stop-state.ts +57 -0
  85. package/src/lib/tui/dashboard/dashboard-stop.ts +15 -0
  86. package/src/lib/tui/dashboard/use-dashboard-run-control.ts +106 -0
  87. package/src/lib/tui/dashboard/use-dashboard-stop-control.ts +91 -0
  88. package/src/lib/tui/index.tsx +1 -1
  89. package/src/lib/tui/sessions/detail/DetailPane.tsx +139 -0
  90. package/src/lib/tui/sessions/detail/IdleStateView.tsx +252 -0
  91. package/src/lib/tui/sessions/detail/SessionDetailView.tsx +424 -0
  92. package/src/lib/tui/sessions/detail/session-detail-parts.tsx +371 -0
  93. package/src/lib/tui/sessions/detail/session-detail-scroll.ts +93 -0
  94. package/src/lib/tui/sessions/finding-title.ts +3 -0
  95. package/src/lib/tui/sessions/fix/FixIssuesOverlay.tsx +1281 -0
  96. package/src/lib/tui/sessions/history/SessionListDetailPane.tsx +536 -0
  97. package/src/lib/tui/sessions/history/SessionListOverlay.tsx +370 -0
  98. package/src/lib/tui/sessions/history/session-overlay-utils.ts +105 -0
  99. package/src/lib/tui/sessions/history/use-session-overlay-state.ts +193 -0
  100. package/src/lib/tui/sessions/issues-found-display.ts +81 -0
  101. package/src/lib/tui/sessions/priority-text.tsx +67 -0
  102. package/src/lib/tui/sessions/review-summary-parser.ts +118 -0
  103. package/src/lib/tui/sessions/session-display.ts +280 -0
  104. package/src/lib/tui/sessions/sidebar/SessionGroup.tsx +40 -0
  105. package/src/lib/tui/sessions/sidebar/SessionItem.tsx +49 -0
  106. package/src/lib/tui/sessions/sidebar/SessionSidebar.tsx +47 -0
  107. package/src/lib/tui/{components/OutputPanel.tsx → shared/OutputDrawer.tsx} +24 -36
  108. package/src/lib/tui/{components → shared}/ProgressBar.tsx +1 -1
  109. package/src/lib/tui/shared/SelectionCopyToastBoundary.tsx +159 -0
  110. package/src/lib/tui/{components → shared}/Spinner.tsx +1 -1
  111. package/src/lib/tui/shared/clipboard.ts +137 -0
  112. package/src/lib/tui/shared/error-message.ts +3 -0
  113. package/src/lib/tui/shared/types.ts +5 -0
  114. package/src/lib/tui/shared/use-mount-effect.ts +7 -0
  115. package/src/lib/tui/workspace/Workspace.tsx +132 -0
  116. package/src/lib/tui/workspace/use-workspace-state.ts +346 -0
  117. package/src/lib/tui/workspace/workspace-focus.ts +18 -0
  118. package/src/lib/tui/workspace/workspace-log-state.ts +116 -0
  119. package/src/lib/tui/workspace/workspace-refresh-utils.ts +117 -0
  120. package/src/lib/tui/workspace/workspace-types.ts +66 -0
  121. package/src/lib/types/config.ts +1 -15
  122. package/src/lib/types/domain.ts +10 -2
  123. package/src/lib/types/fix.ts +1 -2
  124. package/src/lib/types/handoff.ts +23 -0
  125. package/src/lib/types/index.ts +6 -7
  126. package/src/lib/types/log.ts +84 -14
  127. package/src/lib/types/run.ts +4 -3
  128. package/src/lib/types/stats.ts +22 -45
  129. package/src/commands/dashboard.ts +0 -306
  130. package/src/lib/html/dashboard/page.ts +0 -173
  131. package/src/lib/html/dashboard/script.ts +0 -713
  132. package/src/lib/html/dashboard/styles.ts +0 -619
  133. package/src/lib/html/dashboard/view-model.ts +0 -183
  134. package/src/lib/html/log/page.ts +0 -231
  135. package/src/lib/html/log/styles.ts +0 -113
  136. package/src/lib/html/priority.ts +0 -29
  137. package/src/lib/html/shared.ts +0 -47
  138. package/src/lib/html.ts +0 -33
  139. package/src/lib/lockfile.ts +0 -445
  140. package/src/lib/prompts/defaults/code-simplifier.md +0 -46
  141. package/src/lib/prompts/simplifier.ts +0 -50
  142. package/src/lib/server.ts +0 -229
  143. package/src/lib/tui/components/Dashboard.tsx +0 -201
  144. package/src/lib/tui/components/SessionPanel.tsx +0 -586
  145. package/src/lib/tui/components/StatusBar.tsx +0 -50
  146. package/src/lib/tui/session-panel-utils.ts +0 -288
  147. package/src/lib/tui/types.ts +0 -43
  148. package/src/lib/tui/use-dashboard-state.ts +0 -415
  149. /package/src/lib/tui/{colors.ts → shared/colors.ts} +0 -0
package/README.md CHANGED
@@ -5,15 +5,15 @@
5
5
  [![Version](https://img.shields.io/github/v/tag/kenryu42/ralph-review?label=version&color=blue)](https://github.com/kenryu42/ralph-review)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-red.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
- Orchestrating coding agents for code review, verification and fixing via the ralph loop.
8
+ Orchestrating coding agents for code review, verification, and fixing via the Ralph loop.
9
9
 
10
10
  ---
11
11
 
12
12
  ## Table of Contents
13
13
 
14
- - [Why This Exists](#why-this-exists)
15
14
  - [How It Works](#how-it-works)
16
- - [Agent Roles](#agent-roles)
15
+ - [Reviewer and Fixer Flow](#reviewer-and-fixer-flow)
16
+ - [Interactive Mode](#interactive-mode)
17
17
  - [Prerequisites](#prerequisites)
18
18
  - [Installation](#installation)
19
19
  - [Quick Start](#quick-start)
@@ -24,99 +24,97 @@ Orchestrating coding agents for code review, verification and fixing via the ral
24
24
 
25
25
  ---
26
26
 
27
- ## Why This Exists
28
-
29
- I've been a huge fan of Codex's review feature ever since its [first release](https://x.com/DanielEdrisian/status/1968819243694104899). Because the GPT Codex model actually reads many files to gather context and reasoning, it is slower than other agents, but it consistently finds bugs they miss.
30
-
31
- My usual workflow was repetitive: run a Codex review, copy and paste the findings into a new session,
32
- ask another agent if it agrees, and then ask it to fix the issues.
27
+ ## How It Works
33
28
 
34
- Why not fix it in the same session? Because I wanted an independent second opinion before applying changes, and a fresh context helped avoid the first agent’s bias carrying into the fix.
29
+ Ralph Review now uses a batch-first workflow:
35
30
 
36
- Doing that manually is tedious and time-consuming, so I built this tool to automate the loop. Inspired by the [Ralph Wiggum technique](https://ghuntley.com/ralph/) by Geoffrey Huntley. I also
37
- wanted an easy way to try different coding agents and models.
31
+ 1. `rr run` performs review only.
32
+ 2. The reviewer runs in a disposable session worktree and reports structured findings.
33
+ 3. Findings are deduplicated across review iterations and persisted as a session artifact.
34
+ 4. If findings exist, you choose which ones to fix with `rr fix`.
35
+ 5. The fixer handles the selected findings in a separate batch remediation phase.
36
+ 6. Resolved fixes are handed back to your working tree, either automatically or as a pending handoff
37
+ to apply manually.
38
38
 
39
- I also occasionally run a code simplifier pass before review, so I included that workflow here too.
39
+ This keeps review and remediation separate by default. The reviewer can focus on finding real
40
+ issues, and the fixer treats those findings as input for a later, explicit remediation step.
40
41
 
41
- If this helps other people, great. If not, it still helps me.
42
+ Use `rr run --auto` when you want Ralph Review to run remediation immediately after review. Add
43
+ `--priority P0,P1` to auto-fix only selected priority levels.
42
44
 
43
45
  ---
44
46
 
45
- ## How It Works
46
-
47
- Ralph Review automates code review by pairing two AI agents -- a **reviewer** and a **fixer** -- and looping until the code is clean or the iteration limit is reached.
48
-
49
- ```text
50
- ┌──────────────────────────────┐
51
- │ Your changes │
52
- └──────────────┬───────────────┘
53
-
54
-
55
- ┌──────────────────────────────┐
56
- Code Simplifier (optional) │
57
- └──────────────┬───────────────┘
58
-
59
-
60
- ┌─────────────────┐
61
- Reviewer agent │ ◀───────────────────────────────────────┐
62
- └────────┬────────┘ │
63
- │ │
64
- ▼ │
65
- ┌───────────────────────┐ │
66
- Create git checkpoint │ │
67
- └───────────┬───────────┘ │
68
- │ │
69
- ▼ │
70
- ┌─────────────────┐ │
71
- │ Fixer agent │ │
72
- │ (verify & fix) │ │
73
- └────────┬────────┘ │
74
- │ │
75
- ▼ │
76
- ┌───────────────────────┐ │
77
- │ Parse fix summary │ │
78
- └──────────┬────────────┘ │
79
- │ │
80
- ├── no issues found (verified by fixer) ──▶ Stop │
81
- ├── issues found, all skipped by fixer ──▶ Stop │
82
- │ │
83
- ▼ │
84
- Discard checkpoint, loop back to Reviewer ──────────────────────┘
85
- (until max iterations reached)
47
+ ## Reviewer and Fixer Flow
48
+
49
+ ```mermaid
50
+ flowchart TD
51
+ A[Your repository] --> B[rr run]
52
+ B --> C[Preflight checks]
53
+ C --> D[Start tmux session]
54
+ D --> E[Create disposable review worktree]
55
+ E --> F[Reviewer agent]
56
+ F --> G{New findings?}
57
+ G -- Yes --> H[Merge findings into inventory]
58
+ H --> I{Max iterations reached or no new findings?}
59
+ I -- No --> F
60
+ I -- Yes --> J[Persist findings artifact]
61
+ G -- No --> K[Clean review result]
62
+ J --> L{Fix now?}
63
+ L -- Later --> M[rr fix --session SESSION]
64
+ L -- "rr run --auto" --> N[Select findings automatically]
65
+ M --> O[Select findings by prompt, all, priority, or ID]
66
+ N --> P[Create disposable fix worktree]
67
+ O --> P
68
+ P --> Q[Fixer agent batch remediation]
69
+ Q --> R{Selected findings resolved?}
70
+ R -- Yes --> S[Create handoff]
71
+ S --> T{Auto-apply succeeds?}
72
+ T -- Yes --> U[Fixes applied to working tree]
73
+ T -- No --> V[Pending handoff]
74
+ V --> W[rr apply or rr prune --discard]
75
+ R -- No --> X[Retain remediation worktree for review]
86
76
  ```
87
77
 
88
- **How the cycle works:**
89
-
90
- 1. An optional **code simplifier** pass can run first (enabled with `--simplifier`) to reduce code complexity before review.
91
- 2. The **reviewer** analyzes your changes and returns structured review output.
92
- 3. A **git checkpoint** is created so the fixer's changes can be rolled back if something goes wrong.
93
- 4. The **fixer** independently reads the code, confirms each issue is real, and applies fixes only where warranted. It does not blindly trust the reviewer.
94
- 5. The fixer outputs a structured summary. If it reports no actionable issues left -- either no real issues were found or all remaining items were safely skipped -- the cycle ends.
95
- 6. Otherwise, the cycle repeats from step 2 until no issues remain or the configured iteration limit is hit.
96
-
97
- You can assign different AI agents to each role (e.g. Claude reviews, Gemini fixes).
98
-
99
- ---
78
+ ### Reviewer
100
79
 
101
- ## Agent Roles
80
+ The reviewer analyzes the selected review scope for correctness, security, reliability, and
81
+ maintainability issues introduced by the change. It outputs structured findings with stable IDs
82
+ such as `F001`, priorities `P0` through `P3`, and source locations.
102
83
 
103
- Ralph Review orchestrates three distinct roles. You can assign any [supported coding agent](#supported-coding-agents) to each role.
84
+ Reviewer iterations continue until no new findings are discovered or `maxIterations` is reached.
85
+ By default the run stops early when an iteration finds nothing new. Use `--force` to run the full
86
+ iteration count.
104
87
 
105
- ### Code Simplifier (optional)
88
+ ### Fixer
106
89
 
107
- Enabled with `--simplifier`. Runs once before the review loop begins, reducing code complexity while preserving exact behavior. Operates on the same diff scope as the reviewer (uncommitted changes, base branch diff, or a specific commit).
90
+ The fixer runs only after findings have been persisted and selected. It receives the selected
91
+ finding inventory, works in a disposable fix worktree, and returns a per-finding result:
92
+ `resolved` or `unresolved`.
108
93
 
109
- Prompt adapted from the [Claude Code code-simplifier plugin](https://github.com/anthropics/claude-plugins-official/blob/main/plugins/code-simplifier/agents/code-simplifier.md).
94
+ When all selected findings are resolved, Ralph Review creates a handoff. Depending on the working
95
+ tree state, the handoff may be applied automatically or left pending for `rr apply`. If selected
96
+ findings remain unresolved, Ralph Review keeps the remediation worktree available for inspection.
110
97
 
111
- ### Reviewer
98
+ ---
112
99
 
113
- Analyzes changes for bugs that impact correctness, security, reliability, or maintainability. Outputs structured JSON with findings, each tagged P0–P3 by priority. Ignores style nits and pre-existing issues — only flags bugs introduced in the change. Does not suggest fixes.
100
+ ## Interactive Mode
114
101
 
115
- Prompt adapted from the [Codex CLI review prompt](https://github.com/openai/codex/blob/main/codex-rs/core/review_prompt.md).
102
+ Run `rr` with no command to open Interactive Mode. It shows active sessions, recent session history,
103
+ review output, findings, fix results, and handoff status.
116
104
 
117
- ### Fixer
105
+ Keyboard shortcuts:
118
106
 
119
- Treats review findings as untrusted input — verifies every claim against actual code before acting. Classifies each issue as APPLY (real and fixable) or SKIP (false positive or not actionable). Applies minimal safe changes, then runs project verification (lint, typecheck, tests, build). When no actionable issues remain, signals the cycle to stop.
107
+ | Key | Action |
108
+ |-----|--------|
109
+ | `r` | Start a new review session |
110
+ | `f` | Fix pending findings when a session has actionable findings |
111
+ | `s` | Stop a running review session |
112
+ | `l` | View session logs |
113
+ | `o` | Toggle the output drawer |
114
+ | `Tab`, `←`, `→` | Switch panel focus |
115
+ | `↑`, `↓`, `j`, `k` | Scroll the focused panel |
116
+ | `h`, `?` | Toggle help |
117
+ | `Esc`, `q` | Quit Interactive Mode without stopping reviews |
120
118
 
121
119
  ---
122
120
 
@@ -126,6 +124,8 @@ Treats review findings as untrusted input — verifies every claim against actua
126
124
  - [tmux](https://github.com/tmux/tmux) (background sessions)
127
125
  - At least one [supported agent CLI](#supported-coding-agents) installed and authenticated
128
126
 
127
+ Ralph Review is a Bun-only TypeScript CLI. Use Bun for development and script execution.
128
+
129
129
  ---
130
130
 
131
131
  ## Installation
@@ -137,53 +137,104 @@ brew install kenryu42/tap/ralph-review
137
137
  # npm (install or update)
138
138
  npm install -g ralph-review
139
139
 
140
- # Or let ralph-review detect the install method and update itself
140
+ # Or let Ralph Review detect the install method and update itself
141
141
  rr update
142
142
  ```
143
143
 
144
+ For update checks without installing, run:
145
+
146
+ ```bash
147
+ rr update --check
148
+ ```
149
+
150
+ If install-source detection is ambiguous, force the package manager:
151
+
152
+ ```bash
153
+ rr update --manager npm
154
+ rr update --manager brew
155
+ ```
156
+
144
157
  ---
145
158
 
146
159
  ## Quick Start
147
160
 
148
161
  ```bash
149
- # Auto-detect installed agents and configure reviewer/fixer
162
+ # Configure reviewer and fixer agents
150
163
  rr init
151
164
 
152
- # Start a review cycle (runs in tmux)
165
+ # Start Interactive Mode
166
+ rr
167
+
168
+ # Start a review-only background session
153
169
  rr run
154
170
 
155
- # Or use shorthand alias for `rr run`
156
- rrr
171
+ # Review against a base branch
172
+ rr run --base main
173
+
174
+ # Review staged, unstaged, and untracked changes
175
+ rr run --uncommitted
176
+
177
+ # Review a specific commit
178
+ rr run --commit SHA
179
+
180
+ # Fix findings after review completes
181
+ rr fix --session SESSION_ID --all
182
+
183
+ # Review and immediately fix P0/P1 findings
184
+ rr run --auto --priority P0,P1
157
185
  ```
158
186
 
187
+ `rrr` is a shorthand alias for `rr run`. It starts a non-interactive review run without launching
188
+ Interactive Mode.
189
+
159
190
  ---
160
191
 
161
192
  ## Commands
162
193
 
163
194
  | Command | Description |
164
195
  |---------|-------------|
165
- | `rr` | Interactive Mode |
166
- | `rr init` | Configure reviewer, fixer, and simplifier agents (auto-detects installed CLIs) |
167
- | `rr run` | Start review cycle in a tmux session |
168
- | `rr run --base main` | Review changes against a base branch |
196
+ | `rr` | Launch Interactive Mode |
197
+ | `rrr` | Alias for `rr run` |
198
+ | `rr init` | Configure reviewer and fixer agents |
199
+ | `rr init --global` | Write the user-global config |
200
+ | `rr init --local` | Write repo-local overrides to `.ralph-review/config.json` |
201
+ | `rr run` | Run review only and persist findings for later fixing |
202
+ | `rr run --base main` | Review changes against a base branch or ref |
169
203
  | `rr run --uncommitted` | Review staged, unstaged, and untracked changes |
170
204
  | `rr run --commit SHA` | Review changes introduced by a specific commit |
171
- | `rr run --max N` | Set max iterations |
172
- | `rr run --simplifier` | Run a code-simplifier pass before review iterations |
173
- | `rr config show` | Print full configuration |
174
- | `rr config set KEY VAL` | Update a config value (e.g. `rr config set maxIterations 8`) |
175
- | `rr list` | List active review sessions |
176
- | `rr stop` | Stop running review session (`--all` to stop all) |
177
- | `rr log` | View review logs (`-n 5` for last 5, `--json` for JSON output) |
178
- | `rr dashboard` | Open review dashboard in browser |
179
- | `rr doctor` | Run environment and configuration diagnostics (`--fix` to auto-resolve) |
180
- | `rr update` | Check for and install a newer `ralph-review` version |
181
-
182
- The `rrr` command is a shorthand alias for `rr run` -- all flags work the same.
183
-
184
- For update checks without installing, run `rr update --check`. If install-source detection is
185
- ambiguous, force the package manager with `rr update --manager npm` or
186
- `rr update --manager brew`.
205
+ | `rr run --max N` | Set max review iterations |
206
+ | `rr run --force` | Run all configured iterations even if no new findings appear |
207
+ | `rr run --auto` | Run remediation immediately after review completes |
208
+ | `rr run --auto --priority P0,P1` | Auto-fix only findings with matching priorities |
209
+ | `rr run --sound` | Play a completion sound for this run |
210
+ | `rr run --no-sound` | Disable the completion sound for this run |
211
+ | `rr fix --session SESSION` | Fix selected findings from a persisted review session |
212
+ | `rr fix --session SESSION --all` | Select all persisted findings for remediation |
213
+ | `rr fix --session SESSION --priority P0,P1` | Select findings by priority |
214
+ | `rr fix --session SESSION --id F001 --id F003` | Select findings by ID |
215
+ | `rr apply` | Apply a pending review handoff |
216
+ | `rr apply --session HANDOFF` | Apply a specific pending handoff |
217
+ | `rr prune` | Prune orphaned review session artifacts |
218
+ | `rr prune --dry-run` | List prunable artifacts without deleting them |
219
+ | `rr prune --discard --session HANDOFF` | Discard a pending handoff |
220
+ | `rr list` / `rr ls` | List active review sessions |
221
+ | `rr stop` | Stop a running review session |
222
+ | `rr stop --all` | Stop all running review sessions |
223
+ | `rr log` | View the latest review log for the current project |
224
+ | `rr log -n 5` | View the last 5 review logs |
225
+ | `rr log --json` | Print current-project review logs as JSON |
226
+ | `rr log --json --global` | Print review logs across all projects as JSON |
227
+ | `rr doctor` | Run environment and configuration diagnostics |
228
+ | `rr doctor --fix` | Auto-resolve supported diagnostic issues |
229
+ | `rr update` | Check for and install a newer version |
230
+ | `rr update --check` | Check for a newer version without installing |
231
+
232
+ You can append one positional custom instruction to `rr run` when an explicit review target is
233
+ selected:
234
+
235
+ ```bash
236
+ rr run --base main "focus on security boundaries"
237
+ ```
187
238
 
188
239
  ---
189
240
 
@@ -198,24 +249,58 @@ ambiguous, force the package manager with `rr update --manager npm` or
198
249
  | OpenCode | https://opencode.ai/ |
199
250
  | Pi | https://pi.dev |
200
251
 
252
+ You can assign different agents and models to the reviewer and fixer roles. For example, Codex can
253
+ review while Claude or Gemini fixes.
254
+
201
255
  ---
202
256
 
203
257
  ## Configuration
204
258
 
205
- After running `rr init`, Ralph Review stores its configuration in your project directory. You can view and modify settings with the `rr config` subcommand:
259
+ Run `rr init` to create configuration. Ralph Review supports a user-global config and repo-local
260
+ overrides:
261
+
262
+ - Global config: `~/.config/ralph-review/config.json`
263
+ - Repo-local overrides: `.ralph-review/config.json`
264
+
265
+ By default, `rr config show` displays the effective merged configuration for the current project.
206
266
 
207
267
  ```bash
208
- # View current configuration
268
+ # View effective configuration
209
269
  rr config show
210
270
 
211
- # Edit configuration in your editor
212
- rr config edit
271
+ # View raw JSON
272
+ rr config show --json
273
+
274
+ # View only repo-local overrides
275
+ rr config show --local
276
+
277
+ # View one value
278
+ rr config get reviewer.agent
213
279
 
214
- # Or set a specific config using cli
215
- rr config set maxIterations 5
280
+ # Update global configuration
281
+ rr config set maxIterations 8
282
+
283
+ # Update repo-local configuration
284
+ rr config set --local defaultReview.branch main
285
+
286
+ # Edit configuration in $EDITOR
287
+ rr config edit
288
+ rr config edit --local
216
289
  ```
217
290
 
218
- Run `rr doctor` to verify that your environment and configuration are valid. Add `--fix` to let it auto-resolve common issues.
291
+ Useful settings include:
292
+
293
+ | Key | Purpose |
294
+ |-----|---------|
295
+ | `reviewer` | Agent, model, and reasoning used for review |
296
+ | `fixer` | Agent, model, and reasoning used for remediation |
297
+ | `maxIterations` | Maximum reviewer iterations per run |
298
+ | `iterationTimeout` | Per-agent timeout in milliseconds |
299
+ | `defaultReview` | Default review target, such as uncommitted changes or a base branch |
300
+ | `notifications.sound.enabled` | Completion sound preference |
301
+
302
+ Run `rr doctor` to verify that your environment and configuration are valid. Add `--fix` to let it
303
+ auto-resolve supported issues.
219
304
 
220
305
  ---
221
306
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ralph-review",
3
- "version": "0.1.11",
3
+ "version": "0.2.1",
4
4
  "description": "Orchestrating coding agents for code review, verification and fixing via the ralph loop.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -78,8 +78,8 @@
78
78
  "peerDependencies": {},
79
79
  "dependencies": {
80
80
  "@clack/prompts": "1.0.0-alpha.9",
81
- "@opentui/core": "^0.1.75",
82
- "@opentui/react": "^0.1.75",
81
+ "@opentui/core": "^0.1.100",
82
+ "@opentui/react": "^0.1.100",
83
83
  "react": "^19.0.0"
84
84
  }
85
85
  }