bmalph 2.8.0 → 2.9.0

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 (110) hide show
  1. package/README.md +51 -28
  2. package/dist/cli.js +3 -2
  3. package/dist/commands/doctor-checks.js +1 -1
  4. package/dist/commands/doctor-health-checks.js +2 -1
  5. package/dist/commands/init.js +3 -1
  6. package/dist/commands/reset.js +1 -1
  7. package/dist/commands/run.js +36 -1
  8. package/dist/commands/status.js +0 -9
  9. package/dist/commands/upgrade.js +1 -1
  10. package/dist/installer/metadata.js +1 -1
  11. package/dist/installer/project-files.js +2 -3
  12. package/dist/installer/ralph-assets.js +8 -0
  13. package/dist/installer/template-files.js +25 -0
  14. package/dist/reset.js +2 -3
  15. package/dist/run/ralph-process.js +8 -3
  16. package/dist/run/run-dashboard.js +6 -4
  17. package/dist/transition/artifact-scan.js +3 -6
  18. package/dist/transition/context.js +1 -1
  19. package/dist/utils/constants.js +22 -0
  20. package/dist/utils/github.js +4 -3
  21. package/dist/utils/ralph-runtime-state.js +3 -13
  22. package/dist/utils/validate.js +4 -10
  23. package/dist/watch/dashboard.js +1 -0
  24. package/dist/watch/renderer.js +23 -0
  25. package/dist/watch/state-reader.js +20 -1
  26. package/package.json +8 -2
  27. package/ralph/ralph_loop.sh +168 -0
  28. package/ralph/templates/PROMPT.md +12 -0
  29. package/ralph/templates/REVIEW_PROMPT.md +60 -0
  30. package/ralph/templates/ralphrc.template +13 -0
  31. package/dist/cli.js.map +0 -1
  32. package/dist/commands/check-updates.js.map +0 -1
  33. package/dist/commands/doctor-checks.js.map +0 -1
  34. package/dist/commands/doctor-health-checks.js.map +0 -1
  35. package/dist/commands/doctor-runtime-checks.js.map +0 -1
  36. package/dist/commands/doctor.js.map +0 -1
  37. package/dist/commands/implement.js.map +0 -1
  38. package/dist/commands/init.js.map +0 -1
  39. package/dist/commands/reset.js.map +0 -1
  40. package/dist/commands/run.js.map +0 -1
  41. package/dist/commands/status.js.map +0 -1
  42. package/dist/commands/upgrade.js.map +0 -1
  43. package/dist/commands/watch.js.map +0 -1
  44. package/dist/installer/bmad-assets.js.map +0 -1
  45. package/dist/installer/commands.js.map +0 -1
  46. package/dist/installer/install.js.map +0 -1
  47. package/dist/installer/metadata.js.map +0 -1
  48. package/dist/installer/project-files.js.map +0 -1
  49. package/dist/installer/ralph-assets.js.map +0 -1
  50. package/dist/installer/template-files.js.map +0 -1
  51. package/dist/installer/types.js.map +0 -1
  52. package/dist/installer.js.map +0 -1
  53. package/dist/platform/aider.js.map +0 -1
  54. package/dist/platform/claude-code.js.map +0 -1
  55. package/dist/platform/codex.js.map +0 -1
  56. package/dist/platform/copilot.js.map +0 -1
  57. package/dist/platform/cursor-runtime-checks.js.map +0 -1
  58. package/dist/platform/cursor.js.map +0 -1
  59. package/dist/platform/detect.js.map +0 -1
  60. package/dist/platform/doctor-checks.js.map +0 -1
  61. package/dist/platform/guidance.js.map +0 -1
  62. package/dist/platform/instructions-snippet.js.map +0 -1
  63. package/dist/platform/opencode.js.map +0 -1
  64. package/dist/platform/registry.js.map +0 -1
  65. package/dist/platform/resolve.js.map +0 -1
  66. package/dist/platform/types.js.map +0 -1
  67. package/dist/platform/windsurf.js.map +0 -1
  68. package/dist/reset.js.map +0 -1
  69. package/dist/run/ralph-process.js.map +0 -1
  70. package/dist/run/run-dashboard.js.map +0 -1
  71. package/dist/run/types.js.map +0 -1
  72. package/dist/transition/artifact-collection.js.map +0 -1
  73. package/dist/transition/artifact-loading.js.map +0 -1
  74. package/dist/transition/artifact-scan.js.map +0 -1
  75. package/dist/transition/artifacts.js.map +0 -1
  76. package/dist/transition/context-output.js.map +0 -1
  77. package/dist/transition/context.js.map +0 -1
  78. package/dist/transition/fix-plan-sync.js.map +0 -1
  79. package/dist/transition/fix-plan.js.map +0 -1
  80. package/dist/transition/index.js.map +0 -1
  81. package/dist/transition/orchestration.js.map +0 -1
  82. package/dist/transition/preflight.js.map +0 -1
  83. package/dist/transition/section-patterns.js.map +0 -1
  84. package/dist/transition/specs-changelog.js.map +0 -1
  85. package/dist/transition/specs-index.js.map +0 -1
  86. package/dist/transition/specs-sync.js.map +0 -1
  87. package/dist/transition/sprint-status.js.map +0 -1
  88. package/dist/transition/story-id.js.map +0 -1
  89. package/dist/transition/story-parsing.js.map +0 -1
  90. package/dist/transition/tech-stack.js.map +0 -1
  91. package/dist/transition/types.js.map +0 -1
  92. package/dist/utils/artifact-definitions.js.map +0 -1
  93. package/dist/utils/config.js.map +0 -1
  94. package/dist/utils/constants.js.map +0 -1
  95. package/dist/utils/dryrun.js.map +0 -1
  96. package/dist/utils/errors.js.map +0 -1
  97. package/dist/utils/file-system.js.map +0 -1
  98. package/dist/utils/format-status.js.map +0 -1
  99. package/dist/utils/github.js.map +0 -1
  100. package/dist/utils/json.js.map +0 -1
  101. package/dist/utils/logger.js.map +0 -1
  102. package/dist/utils/ralph-runtime-state.js.map +0 -1
  103. package/dist/utils/state.js.map +0 -1
  104. package/dist/utils/validate.js.map +0 -1
  105. package/dist/watch/dashboard.js.map +0 -1
  106. package/dist/watch/file-watcher.js.map +0 -1
  107. package/dist/watch/frame-writer.js.map +0 -1
  108. package/dist/watch/renderer.js.map +0 -1
  109. package/dist/watch/state-reader.js.map +0 -1
  110. package/dist/watch/types.js.map +0 -1
@@ -1,22 +1,12 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
- import { RALPH_DIR, RALPH_STATUS_FILE } from "./constants.js";
3
+ import { RALPH_DIR, RALPH_STATUS_FILE, RALPH_STATUS_MAP } from "./constants.js";
4
4
  import { isEnoent } from "./errors.js";
5
5
  import { validateCircuitBreakerState, validateRalphLoopStatus, validateRalphSession, } from "./validate.js";
6
6
  const RALPH_SESSION_FILE = ".ralph_session";
7
7
  const CIRCUIT_BREAKER_STATE_FILE = ".circuit_breaker_state";
8
8
  const CAMEL_CASE_CORE_KEYS = ["loopCount", "tasksCompleted", "tasksTotal"];
9
9
  const SNAKE_CASE_CORE_KEYS = ["loop_count", "tasks_completed", "tasks_total"];
10
- const RAW_RALPH_STATUS_MAP = {
11
- running: "running",
12
- halted: "blocked",
13
- stopped: "blocked",
14
- completed: "completed",
15
- success: "completed",
16
- graceful_exit: "completed",
17
- paused: "blocked",
18
- error: "blocked",
19
- };
20
10
  export async function readRalphRuntimeStatus(projectDir) {
21
11
  const path = join(projectDir, RALPH_STATUS_FILE);
22
12
  const raw = await readRuntimeJson(path);
@@ -149,9 +139,9 @@ function validateRalphSnakeCaseStatus(data) {
149
139
  if (typeof data.status !== "string") {
150
140
  throw new Error("ralphSnakeCaseStatus.status must be a string");
151
141
  }
152
- const mappedStatus = RAW_RALPH_STATUS_MAP[data.status] ?? undefined;
142
+ const mappedStatus = RALPH_STATUS_MAP[data.status];
153
143
  if (mappedStatus === undefined) {
154
- throw new Error(`ralphSnakeCaseStatus.status must be one of: ${Object.keys(RAW_RALPH_STATUS_MAP).join(", ")}`);
144
+ throw new Error(`ralphSnakeCaseStatus.status must be one of: ${Object.keys(RALPH_STATUS_MAP).join(", ")}`);
155
145
  }
156
146
  if ("tasks_completed" in data && typeof data.tasks_completed !== "number") {
157
147
  throw new Error("ralphSnakeCaseStatus.tasks_completed must be a number");
@@ -1,5 +1,5 @@
1
1
  import { PLATFORM_IDS } from "../platform/types.js";
2
- import { DEFAULT_INTERVAL_MS, MAX_PROJECT_NAME_LENGTH, MIN_INTERVAL_MS } from "./constants.js";
2
+ import { DEFAULT_INTERVAL_MS, MAX_PROJECT_NAME_LENGTH, MIN_INTERVAL_MS, RALPH_STATUS_MAP, } from "./constants.js";
3
3
  const VALID_STATUSES = ["planning", "implementing", "completed"];
4
4
  // Invalid filesystem characters (Windows + POSIX)
5
5
  const INVALID_FS_CHARS = /[<>:"/\\|?*]/;
@@ -178,21 +178,15 @@ export function validateRalphLoopStatus(data) {
178
178
  tasksTotal: data.tasksTotal,
179
179
  };
180
180
  }
181
- const BASH_STATUS_MAP = {
182
- running: "running",
183
- halted: "blocked",
184
- stopped: "blocked",
185
- completed: "completed",
186
- success: "completed",
187
- graceful_exit: "completed",
188
- };
189
181
  // Loose normalization helper for non-runtime consumers and legacy tests.
190
182
  // Runtime-file parsing uses the stricter contract in ralph-runtime-state.ts.
191
183
  export function normalizeRalphStatus(data) {
192
184
  assertObject(data, "normalizeRalphStatus");
193
185
  const loopCount = typeof data.loop_count === "number" ? data.loop_count : 0;
194
186
  const rawStatus = typeof data.status === "string" ? data.status : undefined;
195
- const status = (rawStatus !== undefined ? BASH_STATUS_MAP[rawStatus] : undefined) ?? "unknown";
187
+ const status = (rawStatus !== undefined
188
+ ? RALPH_STATUS_MAP[rawStatus]
189
+ : undefined) ?? "unknown";
196
190
  return {
197
191
  loopCount,
198
192
  status,
@@ -72,6 +72,7 @@ export async function startDashboard(options) {
72
72
  }
73
73
  resolve();
74
74
  };
75
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- setRawMode absent in pseudo-TTY
75
76
  if (process.stdin.isTTY && process.stdin.setRawMode) {
76
77
  process.stdin.setRawMode(true);
77
78
  process.stdin.resume();
@@ -311,6 +311,23 @@ export function renderAnalysisPanel(analysis, cols) {
311
311
  ];
312
312
  return box("Last Analysis", lines, cols);
313
313
  }
314
+ export function renderReviewPanel(review, cols) {
315
+ if (!review) {
316
+ return "";
317
+ }
318
+ const safeSeverity = sanitizeExternalText(review.severity);
319
+ const severityColor = safeSeverity === "CRITICAL" || safeSeverity === "HIGH"
320
+ ? chalk.red
321
+ : safeSeverity === "MEDIUM"
322
+ ? chalk.yellow
323
+ : chalk.green;
324
+ const safeSummary = sanitizeExternalText(review.summary);
325
+ const lines = [
326
+ `Severity: ${severityColor(safeSeverity)} Issues: ${String(review.issuesFound)}`,
327
+ safeSummary ? chalk.dim(safeSummary.slice(0, 70)) : "",
328
+ ].filter(Boolean);
329
+ return box("Review Findings", lines, cols);
330
+ }
314
331
  export function renderLogsPanel(logs, cols) {
315
332
  if (logs.length === 0) {
316
333
  return box("Recent Activity", [chalk.dim("No activity yet")], cols);
@@ -358,10 +375,12 @@ function hasAnyData(state) {
358
375
  state.analysis !== null ||
359
376
  state.execution !== null ||
360
377
  state.session !== null ||
378
+ state.review !== null ||
361
379
  state.recentLogs.length > 0 ||
362
380
  state.liveLog.length > 0);
363
381
  }
364
382
  export function renderDashboard(state, cols, options = {}) {
383
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- columns is undefined in non-TTY
365
384
  const width = cols ?? process.stdout.columns ?? 80;
366
385
  const referenceTime = state.lastUpdated.getTime();
367
386
  const footerRenderer = options.footerRenderer ?? renderFooter;
@@ -381,6 +400,10 @@ export function renderDashboard(state, cols, options = {}) {
381
400
  const rightPanel = renderStoriesPanel(state.stories, width);
382
401
  sections.push(renderSideBySide(leftPanel, rightPanel, width));
383
402
  sections.push(renderAnalysisPanel(state.analysis, width));
403
+ const reviewPanel = renderReviewPanel(state.review, width);
404
+ if (reviewPanel) {
405
+ sections.push(reviewPanel);
406
+ }
384
407
  if (state.execution !== null) {
385
408
  sections.push(renderLiveLogPanel(state.liveLog, width));
386
409
  }
@@ -10,13 +10,14 @@ const LOG_LINE_PATTERN = /^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\] \[(\w+)\] (
10
10
  const DEFAULT_MAX_LOG_LINES = 8;
11
11
  const TAIL_BYTES = 4096;
12
12
  export async function readDashboardState(projectDir) {
13
- const [loop, circuitBreaker, stories, analysis, execution, session, recentLogs, liveLog] = await Promise.all([
13
+ const [loop, circuitBreaker, stories, analysis, execution, session, review, recentLogs, liveLog] = await Promise.all([
14
14
  readLoopInfo(projectDir),
15
15
  readCircuitBreakerInfo(projectDir),
16
16
  readStoryProgress(projectDir),
17
17
  readAnalysisInfo(projectDir),
18
18
  readExecutionProgress(projectDir),
19
19
  readSessionInfo(projectDir),
20
+ readReviewInfo(projectDir),
20
21
  readRecentLogs(projectDir),
21
22
  readLiveLog(projectDir),
22
23
  ]);
@@ -28,6 +29,7 @@ export async function readDashboardState(projectDir) {
28
29
  analysis,
29
30
  execution,
30
31
  session,
32
+ review,
31
33
  recentLogs,
32
34
  liveLog,
33
35
  ralphCompleted,
@@ -157,6 +159,23 @@ export async function readSessionInfo(projectDir) {
157
159
  lastUsed: result.value.last_used,
158
160
  };
159
161
  }
162
+ export async function readReviewInfo(projectDir) {
163
+ try {
164
+ const data = await readJsonFile(join(projectDir, RALPH_DIR, ".review_findings.json"));
165
+ if (data === null)
166
+ return null;
167
+ const issuesFound = typeof data.issues_found === "number" ? data.issues_found : 0;
168
+ if (issuesFound === 0)
169
+ return null;
170
+ const severity = typeof data.severity === "string" ? data.severity : "LOW";
171
+ const summary = typeof data.summary === "string" ? data.summary : "";
172
+ return { issuesFound, severity, summary };
173
+ }
174
+ catch (err) {
175
+ debug(`Failed to read review info: ${formatError(err)}`);
176
+ return null;
177
+ }
178
+ }
160
179
  const LIVE_LOG_MAX_LINES = 5;
161
180
  const LIVE_LOG_TAIL_BYTES = 2048;
162
181
  export async function readLiveLog(projectDir) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmalph",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "Unified AI Development Framework - BMAD phases with Ralph execution loop",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,6 +22,9 @@
22
22
  "fmt:fix": "prettier --write .",
23
23
  "type-check": "tsc --noEmit",
24
24
  "ci": "npm run type-check && npm run lint && npm run fmt:check && npm run build && npm run test:all",
25
+ "clean": "rm -rf dist",
26
+ "rebuild": "npm run clean && npm run build",
27
+ "prepack": "npm run build",
25
28
  "prepublishOnly": "npm run lint && npm run build && npm run test:all",
26
29
  "update-bundled": "bash scripts/update-bundled.sh"
27
30
  },
@@ -55,13 +58,16 @@
55
58
  "files": [
56
59
  "bin/",
57
60
  "dist/",
61
+ "!dist/**/*.map",
58
62
  "bmad/",
59
63
  "ralph/",
60
64
  "slash-commands/",
61
65
  "bundled-versions.json"
62
66
  ],
63
67
  "dependencies": {
64
- "@inquirer/prompts": "^8.3.0",
68
+ "@inquirer/confirm": "^5.1.9",
69
+ "@inquirer/input": "^4.1.9",
70
+ "@inquirer/select": "^4.2.0",
65
71
  "chalk": "^5.6.2",
66
72
  "commander": "^14.0.2"
67
73
  },
@@ -74,6 +74,8 @@ _env_QUALITY_GATES="${QUALITY_GATES:-}"
74
74
  _env_QUALITY_GATE_MODE="${QUALITY_GATE_MODE:-}"
75
75
  _env_QUALITY_GATE_TIMEOUT="${QUALITY_GATE_TIMEOUT:-}"
76
76
  _env_QUALITY_GATE_ON_COMPLETION_ONLY="${QUALITY_GATE_ON_COMPLETION_ONLY:-}"
77
+ _env_REVIEW_ENABLED="${REVIEW_ENABLED:-}"
78
+ _env_REVIEW_INTERVAL="${REVIEW_INTERVAL:-}"
77
79
 
78
80
  # Now set defaults (only if not already set by environment)
79
81
  MAX_CALLS_PER_HOUR="${MAX_CALLS_PER_HOUR:-100}"
@@ -107,6 +109,13 @@ QUALITY_GATE_TIMEOUT="${QUALITY_GATE_TIMEOUT:-120}"
107
109
  QUALITY_GATE_ON_COMPLETION_ONLY="${QUALITY_GATE_ON_COMPLETION_ONLY:-false}"
108
110
  QUALITY_GATE_RESULTS_FILE="$RALPH_DIR/.quality_gate_results"
109
111
 
112
+ # Periodic code review configuration
113
+ REVIEW_ENABLED="${REVIEW_ENABLED:-false}"
114
+ REVIEW_INTERVAL="${REVIEW_INTERVAL:-5}"
115
+ REVIEW_FINDINGS_FILE="$RALPH_DIR/.review_findings.json"
116
+ REVIEW_PROMPT_FILE="$RALPH_DIR/REVIEW_PROMPT.md"
117
+ REVIEW_LAST_SHA_FILE="$RALPH_DIR/.review_last_sha"
118
+
110
119
  # Valid tool patterns for --allowed-tools validation
111
120
  # Default: Claude Code tools. Platform driver overwrites via driver_valid_tools() in main().
112
121
  # Validation runs in main() after load_platform_driver so the correct patterns are in effect.
@@ -256,6 +265,8 @@ load_ralphrc() {
256
265
  [[ -n "$_env_QUALITY_GATE_MODE" ]] && QUALITY_GATE_MODE="$_env_QUALITY_GATE_MODE"
257
266
  [[ -n "$_env_QUALITY_GATE_TIMEOUT" ]] && QUALITY_GATE_TIMEOUT="$_env_QUALITY_GATE_TIMEOUT"
258
267
  [[ -n "$_env_QUALITY_GATE_ON_COMPLETION_ONLY" ]] && QUALITY_GATE_ON_COMPLETION_ONLY="$_env_QUALITY_GATE_ON_COMPLETION_ONLY"
268
+ [[ -n "$_env_REVIEW_ENABLED" ]] && REVIEW_ENABLED="$_env_REVIEW_ENABLED"
269
+ [[ -n "$_env_REVIEW_INTERVAL" ]] && REVIEW_INTERVAL="$_env_REVIEW_INTERVAL"
259
270
 
260
271
  normalize_claude_permission_mode
261
272
  RALPHRC_FILE="$config_file"
@@ -1271,6 +1282,151 @@ build_loop_context() {
1271
1282
  echo "${context:0:500}"
1272
1283
  }
1273
1284
 
1285
+ # Check if a periodic code review should run this iteration
1286
+ # Returns 0 (true) when review is due, 1 (false) otherwise
1287
+ should_run_review() {
1288
+ [[ "$REVIEW_ENABLED" != "true" ]] && return 1
1289
+ local loop_count=$1
1290
+ # Never review on first loop (no implementation yet)
1291
+ (( loop_count < 1 )) && return 1
1292
+ (( loop_count % REVIEW_INTERVAL != 0 )) && return 1
1293
+ # Skip if circuit breaker is not CLOSED
1294
+ if [[ -f "$RALPH_DIR/.circuit_breaker_state" ]]; then
1295
+ local cb_state
1296
+ cb_state=$(jq -r '.state // "CLOSED"' "$RALPH_DIR/.circuit_breaker_state" 2>/dev/null)
1297
+ [[ "$cb_state" != "CLOSED" ]] && return 1
1298
+ fi
1299
+ # Skip if no changes since last review (committed or uncommitted)
1300
+ if command -v git &>/dev/null && git rev-parse --git-dir &>/dev/null 2>&1; then
1301
+ local current_sha last_sha
1302
+ current_sha=$(git rev-parse HEAD 2>/dev/null || echo "unknown")
1303
+ last_sha=""
1304
+ [[ -f "$REVIEW_LAST_SHA_FILE" ]] && last_sha=$(cat "$REVIEW_LAST_SHA_FILE" 2>/dev/null)
1305
+ # Check for new commits OR uncommitted workspace changes
1306
+ local has_uncommitted
1307
+ has_uncommitted=$(git status --porcelain 2>/dev/null | head -1)
1308
+ if [[ "$current_sha" == "$last_sha" && -z "$has_uncommitted" ]]; then
1309
+ return 1
1310
+ fi
1311
+ fi
1312
+ return 0
1313
+ }
1314
+
1315
+ # Build review findings context for injection into the next implementation loop
1316
+ # Returns a compact string (max 500 chars) with unresolved findings
1317
+ build_review_context() {
1318
+ if [[ ! -f "$REVIEW_FINDINGS_FILE" ]]; then
1319
+ echo ""
1320
+ return
1321
+ fi
1322
+
1323
+ local severity issues_found summary
1324
+ severity=$(jq -r '.severity // ""' "$REVIEW_FINDINGS_FILE" 2>/dev/null)
1325
+ issues_found=$(jq -r '.issues_found // 0' "$REVIEW_FINDINGS_FILE" 2>/dev/null)
1326
+ summary=$(jq -r '.summary // ""' "$REVIEW_FINDINGS_FILE" 2>/dev/null | head -c 300)
1327
+
1328
+ if [[ "$issues_found" == "0" || -z "$severity" || "$severity" == "null" ]]; then
1329
+ echo ""
1330
+ return
1331
+ fi
1332
+
1333
+ local context="REVIEW FINDINGS ($severity, $issues_found issues): $summary"
1334
+ # Include top details if space allows
1335
+ local top_details
1336
+ top_details=$(jq -r '(.details[:2] // []) | map("- [\(.severity)] \(.file): \(.issue)") | join("; ")' "$REVIEW_FINDINGS_FILE" 2>/dev/null | head -c 150)
1337
+ if [[ -n "$top_details" && "$top_details" != "null" ]]; then
1338
+ context+=" Details: $top_details"
1339
+ fi
1340
+
1341
+ echo "${context:0:500}"
1342
+ }
1343
+
1344
+ # Execute a periodic code review loop (read-only, no file modifications)
1345
+ # Uses a fresh ephemeral session with restricted tool permissions
1346
+ run_review_loop() {
1347
+ local loop_count=$1
1348
+
1349
+ log_status "INFO" "Starting periodic code review (loop #$loop_count)"
1350
+
1351
+ # Get diff context (committed + uncommitted changes)
1352
+ local last_sha=""
1353
+ [[ -f "$REVIEW_LAST_SHA_FILE" ]] && last_sha=$(cat "$REVIEW_LAST_SHA_FILE" 2>/dev/null)
1354
+ local diff_context=""
1355
+ if command -v git &>/dev/null && git rev-parse --git-dir &>/dev/null 2>&1; then
1356
+ local committed_diff="" uncommitted_diff=""
1357
+ if [[ -n "$last_sha" ]]; then
1358
+ committed_diff=$(git diff "$last_sha"..HEAD --stat 2>/dev/null | head -20 || true)
1359
+ else
1360
+ committed_diff=$(git diff HEAD~5..HEAD --stat 2>/dev/null | head -20 || true)
1361
+ fi
1362
+ uncommitted_diff=$(git diff --stat 2>/dev/null | head -10 || true)
1363
+ diff_context="${committed_diff}"
1364
+ if [[ -n "$uncommitted_diff" ]]; then
1365
+ diff_context+=$'\nUncommitted:\n'"${uncommitted_diff}"
1366
+ fi
1367
+ [[ -z "$diff_context" ]] && diff_context="No recent changes"
1368
+ fi
1369
+
1370
+ # Check review prompt exists
1371
+ if [[ ! -f "$REVIEW_PROMPT_FILE" ]]; then
1372
+ log_status "WARN" "Review prompt file not found: $REVIEW_PROMPT_FILE — skipping review"
1373
+ return 0
1374
+ fi
1375
+
1376
+ # Build review-specific context
1377
+ local review_context="CODE REVIEW LOOP (read-only). Analyze changes since last review. Recent changes: $diff_context"
1378
+
1379
+ # Save and override CLAUDE_ALLOWED_TOOLS for read-only mode
1380
+ local saved_tools="$CLAUDE_ALLOWED_TOOLS"
1381
+ CLAUDE_ALLOWED_TOOLS="Read,Glob,Grep"
1382
+
1383
+ local timeout_seconds=$((CLAUDE_TIMEOUT_MINUTES * 60))
1384
+ local review_output_file="$LOG_DIR/review_loop_${loop_count}.log"
1385
+
1386
+ # Build command with review prompt and NO session resume (ephemeral)
1387
+ if driver_build_command "$REVIEW_PROMPT_FILE" "$review_context" ""; then
1388
+ # Execute review (capture output)
1389
+ portable_timeout "${timeout_seconds}s" "${CLAUDE_CMD_ARGS[@]}" \
1390
+ < /dev/null > "$review_output_file" 2>&1 || true
1391
+ fi
1392
+
1393
+ # Restore CLAUDE_ALLOWED_TOOLS
1394
+ CLAUDE_ALLOWED_TOOLS="$saved_tools"
1395
+
1396
+ # Parse review findings from output
1397
+ if [[ -f "$review_output_file" ]]; then
1398
+ # Review ran successfully — save SHA so we don't re-review the same state
1399
+ git rev-parse HEAD > "$REVIEW_LAST_SHA_FILE" 2>/dev/null || true
1400
+
1401
+ local findings_json=""
1402
+ # Extract JSON between ---REVIEW_FINDINGS--- and ---END_REVIEW_FINDINGS--- markers
1403
+ findings_json=$(sed -n '/---REVIEW_FINDINGS---/,/---END_REVIEW_FINDINGS---/{//!p;}' "$review_output_file" 2>/dev/null | tr -d '\n' | head -c 5000)
1404
+
1405
+ # If output is JSON format, try extracting from result field first
1406
+ if [[ -z "$findings_json" ]]; then
1407
+ local raw_text
1408
+ raw_text=$(jq -r '.result // .content // ""' "$review_output_file" 2>/dev/null || cat "$review_output_file" 2>/dev/null)
1409
+ findings_json=$(echo "$raw_text" | sed -n '/---REVIEW_FINDINGS---/,/---END_REVIEW_FINDINGS---/{//!p;}' 2>/dev/null | tr -d '\n' | head -c 5000)
1410
+ fi
1411
+
1412
+ if [[ -n "$findings_json" ]]; then
1413
+ # Validate it's valid JSON before writing
1414
+ if echo "$findings_json" | jq . > /dev/null 2>&1; then
1415
+ local tmp_findings="$REVIEW_FINDINGS_FILE.tmp"
1416
+ echo "$findings_json" > "$tmp_findings"
1417
+ mv "$tmp_findings" "$REVIEW_FINDINGS_FILE"
1418
+ local issue_count
1419
+ issue_count=$(echo "$findings_json" | jq -r '.issues_found // 0' 2>/dev/null)
1420
+ log_status "INFO" "Code review complete. $issue_count issue(s) found."
1421
+ else
1422
+ log_status "WARN" "Review findings JSON is malformed — skipping"
1423
+ fi
1424
+ else
1425
+ log_status "INFO" "Code review complete. No structured findings extracted."
1426
+ fi
1427
+ fi
1428
+ }
1429
+
1274
1430
  # Get session file age in seconds (cross-platform)
1275
1431
  # Returns: age in seconds on stdout, or -1 if stat fails
1276
1432
  get_session_file_age_seconds() {
@@ -1805,6 +1961,13 @@ execute_claude_code() {
1805
1961
  if build_claude_command "$PROMPT_FILE" "$loop_context" "$session_id"; then
1806
1962
  use_modern_cli=true
1807
1963
  log_status "INFO" "Using modern CLI mode (${CLAUDE_OUTPUT_FORMAT} output)"
1964
+
1965
+ # Build review findings context (separate from loop context)
1966
+ local review_context=""
1967
+ review_context=$(build_review_context)
1968
+ if [[ -n "$review_context" ]]; then
1969
+ CLAUDE_CMD_ARGS+=("--append-system-prompt" "$review_context")
1970
+ fi
1808
1971
  else
1809
1972
  log_status "WARN" "Failed to build modern CLI command, falling back to legacy mode"
1810
1973
  if [[ "$LIVE_OUTPUT" == "true" ]]; then
@@ -2336,6 +2499,11 @@ main() {
2336
2499
 
2337
2500
  update_status "$loop_count" "$(cat "$CALL_COUNT_FILE")" "completed" "success"
2338
2501
 
2502
+ # Periodic code review check
2503
+ if should_run_review "$loop_count"; then
2504
+ run_review_loop "$loop_count"
2505
+ fi
2506
+
2339
2507
  # Brief pause between successful executions
2340
2508
  sleep 5
2341
2509
  elif [ $exec_result -eq 3 ]; then
@@ -50,6 +50,18 @@ You are Ralph, an autonomous AI development agent working on a [YOUR PROJECT NAM
50
50
  - prefer small, reversible changes when requirements are ambiguous
51
51
  - surface blockers in the Ralph status block instead of starting a conversation
52
52
 
53
+ ## Self-Review Checklist (Before Reporting Status)
54
+
55
+ Before writing your RALPH_STATUS block, review your own work:
56
+
57
+ 1. Re-read the diff of files you modified this loop — check for obvious bugs, typos, missing error handling
58
+ 2. Verify you did not introduce regressions in existing functionality
59
+ 3. Confirm your changes match the spec in .ralph/specs/ for the story you worked on
60
+ 4. Check that new functions have proper error handling and edge case coverage
61
+ 5. Ensure you did not leave TODO/FIXME/HACK comments without justification
62
+
63
+ If you find issues, fix them before reporting status. This self-check costs nothing extra.
64
+
53
65
  ## 🎯 Status Reporting (CRITICAL - Ralph needs this!)
54
66
 
55
67
  **IMPORTANT**: At the end of your response, ALWAYS include this status block:
@@ -0,0 +1,60 @@
1
+ # Code Review Instructions
2
+
3
+ You are a code reviewer for [YOUR PROJECT NAME].
4
+ Your role is to analyze recent code changes and provide structured quality feedback.
5
+
6
+ ## CRITICAL RULES
7
+
8
+ - Do NOT modify any files
9
+ - Do NOT create any files
10
+ - Do NOT run any commands that change state
11
+ - ONLY read, analyze, and report
12
+
13
+ ## Review Checklist
14
+
15
+ 1. **Correctness**: Logic errors, off-by-one errors, missing edge cases
16
+ 2. **Error handling**: Errors properly caught and handled, no swallowed exceptions
17
+ 3. **Security**: Hardcoded secrets, injection vectors, unsafe patterns
18
+ 4. **Performance**: N+1 queries, unnecessary iterations, memory leaks
19
+ 5. **Code quality**: Dead code, duplicated logic, overly complex functions
20
+ 6. **Test coverage**: New features tested, tests meaningful (not testing implementation)
21
+ 7. **API contracts**: Public interfaces match their documentation and types
22
+
23
+ ## What to Analyze
24
+
25
+ - Read the git log and diff summary provided below
26
+ - Check .ralph/specs/ for specification compliance
27
+ - Review modified files for broader context
28
+ - Focus on substantive issues, not style nitpicks
29
+
30
+ ## Output Format
31
+
32
+ At the end of your analysis, include this block with a JSON payload:
33
+
34
+ ```
35
+ ---REVIEW_FINDINGS---
36
+ {"severity":"HIGH","issues_found":0,"summary":"No issues found.","details":[]}
37
+ ---END_REVIEW_FINDINGS---
38
+ ```
39
+
40
+ ### JSON Schema
41
+
42
+ ```json
43
+ {
44
+ "severity": "LOW | MEDIUM | HIGH | CRITICAL",
45
+ "issues_found": 0,
46
+ "summary": "One paragraph summary of findings",
47
+ "details": [
48
+ {
49
+ "severity": "HIGH",
50
+ "file": "src/example.ts",
51
+ "line": 42,
52
+ "issue": "Description of the issue",
53
+ "suggestion": "How to fix it"
54
+ }
55
+ ]
56
+ }
57
+ ```
58
+
59
+ The `severity` field at the top level reflects the highest severity among all issues found.
60
+ If no issues are found, set `severity` to `"LOW"`, `issues_found` to `0`, and `details` to `[]`.
@@ -125,6 +125,19 @@ QUALITY_GATE_TIMEOUT="${QUALITY_GATE_TIMEOUT:-120}"
125
125
  # Only run gates when the agent signals completion (EXIT_SIGNAL=true)
126
126
  QUALITY_GATE_ON_COMPLETION_ONLY="${QUALITY_GATE_ON_COMPLETION_ONLY:-false}"
127
127
 
128
+ # =============================================================================
129
+ # PERIODIC CODE REVIEW
130
+ # =============================================================================
131
+
132
+ # Enable periodic code review loops (set via 'bmalph run --review' or manually)
133
+ # When enabled, Ralph runs a read-only review session every REVIEW_INTERVAL loops.
134
+ # The review agent analyzes git diffs and outputs findings for the next implementation loop.
135
+ # Currently supported on Claude Code only.
136
+ REVIEW_ENABLED="${REVIEW_ENABLED:-false}"
137
+
138
+ # Number of implementation loops between review sessions (default: 5)
139
+ REVIEW_INTERVAL="${REVIEW_INTERVAL:-5}"
140
+
128
141
  # =============================================================================
129
142
  # ADVANCED SETTINGS
130
143
  # =============================================================================
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"check-updates.js","sourceRoot":"","sources":["../../src/commands/check-updates.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor-checks.js","sourceRoot":"","sources":["../../src/commands/doctor-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor-health-checks.js","sourceRoot":"","sources":["../../src/commands/doctor-health-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor-runtime-checks.js","sourceRoot":"","sources":["../../src/commands/doctor-runtime-checks.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement.js","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC9D,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAyB;IACnD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEtC,uDAAuD;IACvD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;YAC9C,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,6CAA6C;IAC7C,qBAAqB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE9C,iBAAiB;IACjB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,UAAU;IACV,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,YAAY,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,wCAAwC,wBAAwB,EAAE,KAAK;YACrE,qBAAqB,QAAQ,CAAC,WAAW,EAAE,CAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAqB;IACzC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAwB;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/commands/reset.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}