@zigrivers/scaffold 3.23.0 → 3.24.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.
- package/README.md +23 -16
- package/content/knowledge/core/automated-review-tooling.md +3 -3
- package/content/knowledge/core/multi-model-review-dispatch.md +13 -4
- package/content/pipeline/build/multi-agent-resume.md +7 -6
- package/content/pipeline/build/multi-agent-start.md +7 -6
- package/content/pipeline/build/single-agent-resume.md +7 -6
- package/content/pipeline/build/single-agent-start.md +7 -6
- package/content/pipeline/environment/automated-pr-review.md +79 -27
- package/content/skills/mmr/SKILL.md +72 -2
- package/content/skills/scaffold-runner/SKILL.md +65 -19
- package/content/tools/review-code.md +74 -16
- package/content/tools/review-pr.md +25 -6
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +28 -17
- package/dist/cli/commands/check.js.map +1 -1
- package/package.json +1 -1
- package/skills/mmr/SKILL.md +72 -2
- package/skills/scaffold-runner/SKILL.md +65 -19
|
@@ -202,9 +202,9 @@ When the user asks "what tools are available?", "what can I build?", or "show me
|
|
|
202
202
|
| `scaffold run update` | Update scaffold to the latest version |
|
|
203
203
|
| `scaffold run dashboard` | Open a visual progress dashboard in your browser |
|
|
204
204
|
| `scaffold run prompt-pipeline` | Print the full pipeline reference table |
|
|
205
|
-
| `scaffold run review-code` | Run all 3
|
|
206
|
-
| `scaffold run review-pr` | Run all 3 code review channels (Codex CLI, Gemini CLI,
|
|
207
|
-
| `scaffold run post-implementation-review` | Full
|
|
205
|
+
| `scaffold run review-code` | Run all 3 CLI review channels (Codex CLI, Gemini CLI, Claude CLI) on tracked local code (committed branch diff + staged + unstaged — no untracked files) before commit or push, plus Superpowers code-reviewer as a complementary 4th channel |
|
|
206
|
+
| `scaffold run review-pr` | Run all 3 code review channels (Codex CLI, Gemini CLI, Claude CLI) on a PR, plus Superpowers code-reviewer as a complementary 4th channel |
|
|
207
|
+
| `scaffold run post-implementation-review` | Full codebase review (Codex CLI, Gemini CLI, Superpowers code-reviewer) after an AI agent completes all tasks |
|
|
208
208
|
| `scaffold run session-analyzer` | Analyze Claude Code session logs for patterns and insights |
|
|
209
209
|
|
|
210
210
|
**Display rules:**
|
|
@@ -240,7 +240,8 @@ Respond to these natural language requests:
|
|
|
240
240
|
| "Is X applicable?" / "Do I need X?" | Run `scaffold check <step>` to detect platform and brownfield status |
|
|
241
241
|
| "Set up memory" / "Configure AI memory" / "Add memory" | Run `scaffold run ai-memory-setup` — sets up modular rules, optional MCP memory server, and external context |
|
|
242
242
|
| "Set up testing" / "Add Playwright" / "Add Maestro" | Run `scaffold run add-e2e-testing` — auto-detects web/mobile and configures the right framework(s) |
|
|
243
|
-
| "Run multi-model review" / "Review
|
|
243
|
+
| "Run multi-model review" / "Review X with all three models" | Route by target — see [Multi-Model Review Routing](#multi-model-review-routing) |
|
|
244
|
+
| "Review stories with other models" | Run `scaffold run review-user-stories` at depth 5 (multi-model capabilities are built into review-user-stories) |
|
|
244
245
|
| "Skip X" | Run `scaffold skip <step> --reason "<user's reason>"` |
|
|
245
246
|
| "Skip X, Y, and Z" | Run `scaffold skip <step1> <step2> <step3> --reason "<reason>"` |
|
|
246
247
|
| "What's left?" / "Show remaining" | Run `scaffold status --compact`, show only pending/in-progress steps |
|
|
@@ -338,28 +339,73 @@ scaffold check add-e2e-testing
|
|
|
338
339
|
|
|
339
340
|
This is useful when the user asks "Do I need this step?" or when previewing which optional steps apply before running them.
|
|
340
341
|
|
|
342
|
+
### Multi-Model Review Routing
|
|
343
|
+
|
|
344
|
+
When the user asks for a "multi-model review", "review this with all three models",
|
|
345
|
+
"run MMR on X", or similar — **do not assume the target is a PR**. Route based on
|
|
346
|
+
what the user is pointing at:
|
|
347
|
+
|
|
348
|
+
| Target | Command |
|
|
349
|
+
|---|---|
|
|
350
|
+
| GitHub PR (explicit number or current branch's PR) | `scaffold run review-pr [<PR#>]` |
|
|
351
|
+
| Local uncommitted / staged code, before commit or push | `scaffold run review-code` |
|
|
352
|
+
| Pending edits to a tracked file (changes since HEAD) | `git diff HEAD -- <path> \| mmr review --diff - --sync --format json` |
|
|
353
|
+
| Current contents of any file (tracked-with-no-changes, untracked, or brand-new) | `(diff -u /dev/null <path> \|\| true) \| mmr review --diff - --sync --format json` |
|
|
354
|
+
| A branch diff against main (or another ref) | `mmr review --base <ref> --head <ref> --sync --format json` |
|
|
355
|
+
| An existing patch or diff file | `mmr review --diff <path.patch> --sync --format json` |
|
|
356
|
+
| A diff piped from another command | `<cmd> \| mmr review --diff - --sync --format json` (stdin) |
|
|
357
|
+
| A user-story review specifically at depth 5 | `scaffold run review-user-stories` |
|
|
358
|
+
|
|
359
|
+
If the user's target is ambiguous ("review this with MMR"), ask once which of
|
|
360
|
+
the above applies — don't default to `review-pr` just because it's the most
|
|
361
|
+
common entry point. Doc reviews and uncommitted-work reviews are equally
|
|
362
|
+
first-class.
|
|
363
|
+
|
|
364
|
+
Pass `--focus "..."` to MMR when the user describes what to evaluate (clarity,
|
|
365
|
+
completeness, security, performance, etc.). See the `mmr` skill for all input
|
|
366
|
+
modes and flags.
|
|
367
|
+
|
|
368
|
+
**Note on `--diff`:** the flag requires diff-format content (path to a
|
|
369
|
+
`.patch`/`.diff` file, or `-` for stdin). To review a regular document or
|
|
370
|
+
source file, wrap it in a diff first using `git diff HEAD -- <path>`
|
|
371
|
+
(tracked) or `(diff -u /dev/null <path> || true)` (untracked — the
|
|
372
|
+
`|| true` guard is required because `diff` exits 1 whenever files
|
|
373
|
+
differ, which breaks pipelines under `set -o pipefail`) and pipe the
|
|
374
|
+
result into `mmr review --diff -`.
|
|
375
|
+
|
|
341
376
|
### Multi-Model Review at Depth 4-5
|
|
342
377
|
|
|
343
|
-
All review and validation steps
|
|
378
|
+
All review and validation steps support independent multi-model validation at depth 4-5. Two distinct paths exist — **never mix them** — pick based on what step is running:
|
|
344
379
|
|
|
345
|
-
|
|
346
|
-
- **Gemini**: `NO_BROWSER=true gemini -p "prompt" --output-format json --approval-mode yolo 2>/dev/null`
|
|
380
|
+
#### Path A: MMR-backed review (PREFERRED — always use for these steps)
|
|
347
381
|
|
|
348
|
-
|
|
382
|
+
Applies to: `scaffold run review-pr`, `scaffold run review-code`, and any pipeline review step that invokes `mmr review` directly.
|
|
349
383
|
|
|
350
|
-
**
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
384
|
+
- **Channel model:** three CLIs (Codex + Gemini + Claude) dispatched and reconciled by the MMR CLI; scaffold wrappers add the Superpowers code-reviewer agent as a complementary 4th channel reconciled into the same MMR job via `mmr reconcile`.
|
|
385
|
+
- **Note:** `scaffold run post-implementation-review` follows a different channel layout (raw-CLI dispatch of Codex + Gemini + Superpowers, with optional `mmr reconcile` injection if a prior `mmr review` job exists). Treat it as its own path — consult `content/tools/post-implementation-review.md` for specifics.
|
|
386
|
+
- **Invocation:** go through the wrapper (`scaffold run …`) or call `mmr review …` directly. Do NOT shell out to `codex`/`gemini`/`claude` yourself for these steps — MMR handles dispatch, parsing, compensating passes, and verdict.
|
|
387
|
+
- **Auth pre-flight:** run `mmr config test` once per session — it probes all three CLIs and reports status in one call.
|
|
388
|
+
- **If auth fails** for any channel, surface recovery commands to the user: `! codex login`, `! gemini -p "hello"`, or `! claude login`. MMR will emit a compensating pass (via `claude -p`) for each missing external channel, labelled `[compensating: Codex-equivalent]` / `[compensating: Gemini-equivalent]`. Maximum achievable verdict in that case is `degraded-pass`.
|
|
389
|
+
- **Never silently skip a CLI due to auth failure** — surface it to the user.
|
|
390
|
+
|
|
391
|
+
#### Path B: Legacy / non-MMR direct dispatch
|
|
392
|
+
|
|
393
|
+
Applies to: some older depth-5 validation steps and any ad-hoc manual dispatch not routed through MMR. The `multi-model-dispatch` skill documents the raw invocation patterns:
|
|
394
|
+
|
|
395
|
+
- **Codex:** `codex exec --skip-git-repo-check -s read-only --ephemeral "prompt" 2>/dev/null` (NOT bare `codex`)
|
|
396
|
+
- **Gemini:** `NO_BROWSER=true gemini -p "prompt" --output-format json --approval-mode yolo 2>/dev/null`
|
|
397
|
+
- **Claude CLI:** `claude -p "prompt" --output-format json 2>/dev/null`
|
|
398
|
+
|
|
399
|
+
**`NO_BROWSER=true` is required for all Gemini invocations** from Claude Code's Bash tool. Without it, Gemini's child process relaunch shows a consent prompt that hangs in non-TTY shells.
|
|
355
400
|
|
|
356
|
-
|
|
357
|
-
1.
|
|
358
|
-
2.
|
|
359
|
-
3.
|
|
360
|
-
4. If
|
|
401
|
+
Auth pre-flight for Path B dispatch:
|
|
402
|
+
1. Codex: `codex login status`
|
|
403
|
+
2. Gemini: `NO_BROWSER=true gemini -p "respond with ok" -o json` (exit 41 = auth failure)
|
|
404
|
+
3. Claude CLI: `claude -p "respond with ok"` (typically uses the active Claude Code session)
|
|
405
|
+
4. If any fail: `! codex login`, `! gemini -p "hello"`, or `! claude login` (the `!` prefix runs it interactively with TTY access).
|
|
406
|
+
5. **Never silently skip a CLI due to auth failure** — surface it to the user.
|
|
361
407
|
|
|
362
|
-
The runner should surface the depth choice as a decision point for review steps, noting that depth 4-5 enables multi-model validation
|
|
408
|
+
The runner should surface the depth choice as a decision point for review steps, noting that depth 4-5 enables three-CLI multi-model validation when the CLIs are available.
|
|
363
409
|
|
|
364
410
|
## Batch Execution
|
|
365
411
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-code
|
|
3
3
|
description: Run all configured code review channels on local code before commit or push
|
|
4
|
-
summary: "Review the current local delivery candidate with Codex CLI, Gemini CLI,
|
|
4
|
+
summary: "Review the current local delivery candidate with the three MMR CLI channels (Codex CLI, Gemini CLI, Claude CLI) plus the Superpowers code-reviewer agent as a complementary 4th channel reconciled into the same MMR job, before committing or pushing. Supports staged changes, an explicit ref range, or the full local delivery candidate (committed branch diff + staged + unstaged); untracked files are not included."
|
|
5
5
|
phase: null
|
|
6
6
|
order: null
|
|
7
7
|
dependencies: []
|
|
@@ -15,15 +15,27 @@ argument-hint: "[--base <ref>] [--head <ref>] [--staged] [--report-only]"
|
|
|
15
15
|
|
|
16
16
|
## Purpose
|
|
17
17
|
|
|
18
|
-
Run the same
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
Run the same review stack used by `review-pr` (three MMR CLI channels plus
|
|
19
|
+
the Superpowers code-reviewer agent as a complementary 4th channel), but on
|
|
20
|
+
local code before commit or push. This is the preflight review entry point
|
|
21
|
+
for bug fixes, small features, and quick tasks when the user wants
|
|
22
|
+
multi-model review before anything leaves the machine.
|
|
22
23
|
|
|
23
|
-
The three channels are:
|
|
24
|
+
The three CLI channels are:
|
|
24
25
|
1. **Codex CLI** — implementation correctness, security, API contracts
|
|
25
26
|
2. **Gemini CLI** — architectural patterns, broad-context reasoning
|
|
26
|
-
3. **Claude CLI** —
|
|
27
|
+
3. **Claude CLI** — code quality, tests, and plan alignment
|
|
28
|
+
|
|
29
|
+
Plus the 4th channel:
|
|
30
|
+
4. **Superpowers code-reviewer** — agent-based review dispatched via the
|
|
31
|
+
`superpowers:code-reviewer` skill, reconciled into the same MMR job via
|
|
32
|
+
`mmr reconcile` for a unified verdict.
|
|
33
|
+
|
|
34
|
+
Scope: the full local delivery candidate (committed branch diff + staged +
|
|
35
|
+
unstaged changes) by default, or a narrower slice when `--staged` or
|
|
36
|
+
`--base`/`--head` flags are provided. **Untracked files are not reviewed** —
|
|
37
|
+
use `(diff -u /dev/null <path> || true) | mmr review --diff -` directly for
|
|
38
|
+
brand-new files.
|
|
27
39
|
|
|
28
40
|
## Inputs
|
|
29
41
|
|
|
@@ -40,7 +52,7 @@ The three channels are:
|
|
|
40
52
|
|
|
41
53
|
## Expected Outputs
|
|
42
54
|
|
|
43
|
-
- A
|
|
55
|
+
- A reconciled four-channel review summary for the local delivery candidate (three MMR CLI channels + Superpowers code-reviewer)
|
|
44
56
|
- One of these verdicts: `pass`, `degraded-pass`, `blocked`, `needs-user-decision`
|
|
45
57
|
- Fixed code when findings are resolved in normal mode
|
|
46
58
|
|
|
@@ -48,16 +60,58 @@ The three channels are:
|
|
|
48
60
|
|
|
49
61
|
### Primary: MMR CLI + Agent Reconcile
|
|
50
62
|
|
|
51
|
-
When the MMR CLI is installed, use it as the primary entry point
|
|
63
|
+
When the MMR CLI is installed, use it as the primary entry point. Pick the
|
|
64
|
+
invocation that matches the scope the user asked for:
|
|
52
65
|
|
|
53
66
|
```bash
|
|
54
|
-
#
|
|
67
|
+
# Default (no flags) — full local delivery candidate:
|
|
68
|
+
# committed branch diff (vs origin/main or main) + staged + unstaged.
|
|
69
|
+
# `mmr review` with no input flags defaults to `git diff` alone
|
|
70
|
+
# (unstaged only), so we MUST synthesize the combined bundle explicitly
|
|
71
|
+
# and pipe it in via --diff -:
|
|
72
|
+
# Resolve the TRUNK ref (not the branch's own upstream — we want the
|
|
73
|
+
# full delivery candidate, not just un-pushed work). Precedence:
|
|
74
|
+
# origin/HEAD (the remote's default branch) → origin/main → main →
|
|
75
|
+
# origin/master → master → HEAD~1 → HEAD (working-tree-only fallback).
|
|
76
|
+
# NOTE: do NOT use `@{u}` / branch upstream here — on a feature branch
|
|
77
|
+
# that tracks `origin/<branch>`, `@{u}` is that remote branch, so
|
|
78
|
+
# diffing against its merge-base would silently exclude already-pushed
|
|
79
|
+
# branch commits from the review.
|
|
80
|
+
BASE_REF=""
|
|
81
|
+
if ORIGIN_HEAD=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null); then BASE_REF="${ORIGIN_HEAD#refs/remotes/}"
|
|
82
|
+
elif git rev-parse --verify origin/main >/dev/null 2>&1; then BASE_REF=origin/main
|
|
83
|
+
elif git rev-parse --verify main >/dev/null 2>&1; then BASE_REF=main
|
|
84
|
+
elif git rev-parse --verify origin/master >/dev/null 2>&1; then BASE_REF=origin/master
|
|
85
|
+
elif git rev-parse --verify master >/dev/null 2>&1; then BASE_REF=master
|
|
86
|
+
elif git rev-parse --verify HEAD~1 >/dev/null 2>&1; then BASE_REF=HEAD~1
|
|
87
|
+
else BASE_REF=HEAD
|
|
88
|
+
fi
|
|
89
|
+
# Compute the merge-base so we only review the local delivery candidate,
|
|
90
|
+
# not unrelated upstream changes that have accumulated on BASE_REF since
|
|
91
|
+
# the branch diverged. `git diff <merge-base>` then compares that point
|
|
92
|
+
# to the working tree (including the index), giving one coherent patch
|
|
93
|
+
# that covers committed branch work + staged + unstaged edits, with
|
|
94
|
+
# repeated edits to the same file collapsed into a single final hunk.
|
|
95
|
+
MERGE_BASE=$(git merge-base "$BASE_REF" HEAD 2>/dev/null || echo "$BASE_REF")
|
|
96
|
+
git diff "$MERGE_BASE" | mmr review --diff - --sync --format json
|
|
97
|
+
|
|
98
|
+
# Staged changes only:
|
|
55
99
|
mmr review --staged --sync --format json
|
|
56
100
|
|
|
57
|
-
# Branch diff against main
|
|
101
|
+
# Branch diff against main (committed only, no staged/unstaged):
|
|
58
102
|
mmr review --base main --sync --format json
|
|
103
|
+
|
|
104
|
+
# Explicit ref range:
|
|
105
|
+
mmr review --base <base-ref> --head <head-ref> --sync --format json
|
|
59
106
|
```
|
|
60
107
|
|
|
108
|
+
Routing rules:
|
|
109
|
+
- If `--staged` flag passed to the tool → use the `--staged` MMR invocation
|
|
110
|
+
- If `--base`/`--head` flags passed → use the ref-range MMR invocation
|
|
111
|
+
- Otherwise (no flags) → use the synthesized full-delivery-candidate form
|
|
112
|
+
above. Do NOT fall back to bare `mmr review` — it would miss committed
|
|
113
|
+
and staged work.
|
|
114
|
+
|
|
61
115
|
After the CLI review completes, dispatch the agent's code-reviewer skill (4th channel) and inject findings into the MMR job for unified reconciliation:
|
|
62
116
|
|
|
63
117
|
```bash
|
|
@@ -89,11 +143,14 @@ Determine the delivery candidate to review.
|
|
|
89
143
|
|
|
90
144
|
#### Mode A: Explicit ref range
|
|
91
145
|
|
|
92
|
-
If
|
|
146
|
+
If `BASE_REF` is provided (with or without `HEAD_REF`):
|
|
93
147
|
|
|
94
148
|
```bash
|
|
95
149
|
git rev-parse --verify "$BASE_REF"
|
|
96
|
-
|
|
150
|
+
# When --head is omitted, default head to HEAD so the base-only form
|
|
151
|
+
# mirrors the MMR primary path (`mmr review --base <ref>`).
|
|
152
|
+
HEAD_REF="${HEAD_REF:-HEAD}"
|
|
153
|
+
[ "$HEAD_REF" != "HEAD" ] && git rev-parse --verify "$HEAD_REF"
|
|
97
154
|
REVIEW_DIFF=$(git diff "$BASE_REF...$HEAD_REF")
|
|
98
155
|
CHANGED_FILES=$(git diff --name-only "$BASE_REF...$HEAD_REF")
|
|
99
156
|
```
|
|
@@ -198,7 +255,7 @@ codex login status 2>/dev/null
|
|
|
198
255
|
- If `codex` is not installed: skip this channel and record root-cause `not_installed`
|
|
199
256
|
- If auth fails: tell the user to run `! codex login`, retry after recovery, and if recovery is not possible, record root-cause `auth_failed` and continue with the remaining channels
|
|
200
257
|
|
|
201
|
-
If auth cannot be recovered, or if Codex is not installed, queue a compensating Claude self-review pass focused on implementation correctness, security, and API contracts. Label findings as `[compensating: Codex-equivalent]`. If auth check times out (
|
|
258
|
+
If auth cannot be recovered, or if Codex is not installed, queue a compensating Claude self-review pass focused on implementation correctness, security, and API contracts. Label findings as `[compensating: Codex-equivalent]`. If the auth check times out (the configured `channels.codex.auth.timeout`; 5s by default since Codex's check is a local file probe), retry once; if still failing, record `timeout` and queue compensating pass. This pass runs after all channel dispatch attempts complete.
|
|
202
259
|
|
|
203
260
|
Build the prompt in a temporary file and pass it over stdin:
|
|
204
261
|
|
|
@@ -222,7 +279,7 @@ NO_BROWSER=true gemini -p "respond with ok" -o json 2>&1
|
|
|
222
279
|
- If `gemini` is not installed: skip this channel and record root-cause `not_installed`
|
|
223
280
|
- If auth fails (including exit 41): tell the user to run `! gemini -p "hello"`, retry after recovery, and if recovery is not possible, record root-cause `auth_failed` and continue with the remaining channels
|
|
224
281
|
|
|
225
|
-
If auth cannot be recovered, or if Gemini is not installed, queue a compensating Claude self-review pass focused on architectural patterns, design reasoning, and broad context. Label findings as `[compensating: Gemini-equivalent]`. If auth check times out (
|
|
282
|
+
If auth cannot be recovered, or if Gemini is not installed, queue a compensating Claude self-review pass focused on architectural patterns, design reasoning, and broad context. Label findings as `[compensating: Gemini-equivalent]`. If the auth check times out (the configured `channels.gemini.auth.timeout`; 20s by default since Gemini's check is a full LLM round-trip), retry once; if still failing, record `auth timeout` and queue compensating pass. This pass runs after all channel dispatch attempts complete.
|
|
226
283
|
|
|
227
284
|
Build the prompt in a temporary file and pass it as a single prompt string:
|
|
228
285
|
|
|
@@ -348,7 +405,8 @@ Output a concise summary in this format:
|
|
|
348
405
|
### Channels Executed
|
|
349
406
|
- Codex CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating (Codex-equivalent)]
|
|
350
407
|
- Gemini CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
|
|
351
|
-
- Claude CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full /
|
|
408
|
+
- Claude CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / none (Claude is never compensated — it IS the compensator for Codex/Gemini)]
|
|
409
|
+
- Agent review (Superpowers code-reviewer, 4th channel) — [completed / skipped], injected via `mmr reconcile`
|
|
352
410
|
|
|
353
411
|
### Findings
|
|
354
412
|
[consensus findings first, then single-source findings]
|
|
@@ -14,9 +14,28 @@ argument-hint: "<PR number or blank for current branch>"
|
|
|
14
14
|
|
|
15
15
|
## Purpose
|
|
16
16
|
|
|
17
|
-
Run
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
Run the three CLI review channels (Codex, Gemini, Claude) on a pull request
|
|
18
|
+
**plus** the Superpowers code-reviewer agent as a complementary 4th channel,
|
|
19
|
+
and reconcile all findings through MMR. This is the single entry point for
|
|
20
|
+
**PR-scoped** code review — agents call this once instead of remembering four
|
|
21
|
+
separate review invocations.
|
|
22
|
+
|
|
23
|
+
**For non-PR targets**, don't use this tool. Call `mmr review` directly with
|
|
24
|
+
the appropriate input mode, or use `scaffold run review-code` for local
|
|
25
|
+
pre-commit review:
|
|
26
|
+
|
|
27
|
+
- `mmr review --staged` — staged changes
|
|
28
|
+
- `mmr review --base <ref> --head <ref>` — branch diff
|
|
29
|
+
- `mmr review --diff <path.patch>` — existing diff/patch file
|
|
30
|
+
- `<git diff …> | mmr review --diff -` — any piped diff (including a single
|
|
31
|
+
tracked file via `git diff HEAD -- <path>`, or a new file via
|
|
32
|
+
`(diff -u /dev/null <path> || true)` — the `|| true` guard is required
|
|
33
|
+
because `diff` exits 1 whenever files differ, which breaks pipelines
|
|
34
|
+
under `set -o pipefail`)
|
|
35
|
+
|
|
36
|
+
The `--diff` flag expects diff-format content; it does not read raw document
|
|
37
|
+
content. The three-channel review itself is not PR-specific — this tool is
|
|
38
|
+
just the PR wrapper around the more general `mmr review` CLI.
|
|
20
39
|
|
|
21
40
|
The three channels are:
|
|
22
41
|
1. **Codex CLI** — OpenAI's code analysis (implementation correctness, security, API contracts)
|
|
@@ -34,7 +53,7 @@ in the review criteria config rather than read at dispatch time.
|
|
|
34
53
|
|
|
35
54
|
## Expected Outputs
|
|
36
55
|
|
|
37
|
-
- All three review channels executed (or fallback documented)
|
|
56
|
+
- All three CLI review channels executed (or fallback documented) plus the Superpowers code-reviewer 4th channel reconciled via `mmr reconcile`
|
|
38
57
|
- P0/P1/P2 findings fixed before proceeding
|
|
39
58
|
- Review summary with per-channel results and reconciliation
|
|
40
59
|
|
|
@@ -161,7 +180,7 @@ Output a review summary in this format:
|
|
|
161
180
|
### Channels Executed
|
|
162
181
|
- [ ] Codex CLI — root cause: [completed / not installed / auth failed / timeout / failed], coverage: [full / compensating (Codex-equivalent)]
|
|
163
182
|
- [ ] Gemini CLI — root cause: [completed / not installed / auth failed / timeout / failed], coverage: [full / compensating (Gemini-equivalent)]
|
|
164
|
-
- [ ] Claude CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full /
|
|
183
|
+
- [ ] Claude CLI — root cause: [completed / not_installed / auth_failed / timeout / failed], coverage: [full / none (Claude is never compensated — it IS the compensator for Codex/Gemini)]
|
|
165
184
|
- [ ] Agent review — [completed / skipped], injected via mmr reconcile
|
|
166
185
|
|
|
167
186
|
### Consensus Findings (High Confidence)
|
|
@@ -226,7 +245,7 @@ Do NOT proceed to the next task or merge until this confirmation is output.
|
|
|
226
245
|
## Process Rules
|
|
227
246
|
|
|
228
247
|
1. **Foreground only** — Always run Codex, Gemini, and Claude CLI commands as foreground Bash calls. Never use `run_in_background`, `&`, or `nohup`.
|
|
229
|
-
2. **All three channels are mandatory** — Codex CLI, Gemini CLI, and Claude CLI. Skip only when a tool is genuinely not installed
|
|
248
|
+
2. **All three CLI channels are mandatory** — Codex CLI, Gemini CLI, and Claude CLI. Plus the Superpowers code-reviewer agent as a complementary 4th channel reconciled via `mmr reconcile` (Step 3). Skip a CLI channel only when a tool is genuinely not installed or auth cannot be recovered (in which case MMR emits a compensating pass for missing Codex/Gemini channels; a missing Claude CLI has no compensator). Never skip by choice.
|
|
230
249
|
3. **Auth failures are not silent** — always surface to the user with the exact recovery command.
|
|
231
250
|
4. **Independence** — never share one channel's output with another. Each reviews the diff independently.
|
|
232
251
|
5. **Fix before proceeding** — P0/P1/P2 findings must be resolved before moving to the next task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAW1C,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AA+FD,QAAA,MAAM,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAW1C,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AA+FD,QAAA,MAAM,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAmOnE,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { discoverMetaPrompts } from '../../core/assembly/meta-prompt-loader.js';
|
|
@@ -18,7 +18,7 @@ const MOBILE_SIGNALS = new Set([
|
|
|
18
18
|
]);
|
|
19
19
|
function detectGithubRemote(projectRoot) {
|
|
20
20
|
try {
|
|
21
|
-
const output =
|
|
21
|
+
const output = execFileSync('git', ['remote', '-v'], { cwd: projectRoot, encoding: 'utf8', timeout: 5000 });
|
|
22
22
|
const hasGithub = output.includes('github.com');
|
|
23
23
|
return {
|
|
24
24
|
hasGithub,
|
|
@@ -158,21 +158,32 @@ const checkCommand = {
|
|
|
158
158
|
const applicable = hasGithub;
|
|
159
159
|
const hasAgentsMd = fs.existsSync(path.join(projectRoot, 'AGENTS.md'));
|
|
160
160
|
const mode = !applicable ? 'skip' : hasAgentsMd ? 'update' : 'fresh';
|
|
161
|
-
// Detect available CLIs for local review
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const availableClis = [
|
|
161
|
+
// Detect available CLIs for local review (three MMR channels)
|
|
162
|
+
const detectCli = (name) => {
|
|
163
|
+
try {
|
|
164
|
+
execFileSync('sh', ['-c', 'command -v "$1"', '--', name], { encoding: 'utf8', timeout: 3000 });
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const hasCodexCli = detectCli('codex');
|
|
172
|
+
const hasGeminiCli = detectCli('gemini');
|
|
173
|
+
const hasClaudeCli = detectCli('claude');
|
|
174
|
+
const availableClis = [
|
|
175
|
+
hasCodexCli && 'codex',
|
|
176
|
+
hasGeminiCli && 'gemini',
|
|
177
|
+
hasClaudeCli && 'claude',
|
|
178
|
+
].filter(Boolean);
|
|
175
179
|
const recommendedMode = availableClis.length > 0 ? 'local-cli' : 'external-bot';
|
|
180
|
+
let modeLabel = '';
|
|
181
|
+
if (availableClis.length >= 3)
|
|
182
|
+
modeLabel = ' (three-CLI MMR review)';
|
|
183
|
+
else if (availableClis.length === 2)
|
|
184
|
+
modeLabel = ' (two-CLI MMR review)';
|
|
185
|
+
else if (availableClis.length === 1)
|
|
186
|
+
modeLabel = ' (single-CLI review)';
|
|
176
187
|
if (outputMode === 'json') {
|
|
177
188
|
output.result({
|
|
178
189
|
step: argv.step,
|
|
@@ -192,7 +203,7 @@ const checkCommand = {
|
|
|
192
203
|
output.info(`GitHub remote: ${hasGithub ? 'yes' : 'no'}`);
|
|
193
204
|
output.info(`CI configured: ${hasCi ? 'yes' : 'no'}`);
|
|
194
205
|
output.info(`Available CLIs: ${availableClis.length > 0 ? availableClis.join(', ') : 'none'}`);
|
|
195
|
-
output.info(`Recommended: ${recommendedMode}${
|
|
206
|
+
output.info(`Recommended: ${recommendedMode}${modeLabel}`);
|
|
196
207
|
output.info(`Mode: ${mode}`);
|
|
197
208
|
output.info(`Reason: ${githubReason}`);
|
|
198
209
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAW7D,mDAAmD;AACnD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe;IAClE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;CACjE,CAAC,CAAA;AAEF,iDAAiD;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,MAAM,EAAE,cAAc;CACvB,CAAC,CAAA;AAEF,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3G,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC/C,OAAO;YACL,SAAS;YACT,MAAM,EAAE,SAAS;gBACf,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,gEAAgE;SACrE,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAA;IAClF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACtD,IAAI,IAAI,GAA2B,EAAE,CAAA;IACrC,IAAI,OAAO,GAA2B,EAAE,CAAA;IAExC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;YAC7B,OAAO,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7E,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,QAAQ,YAAY,iBAAiB,eAAe,4BAA4B;SACzF,CAAA;IACH,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,YAAY,mBAAmB,EAAE,CAAA;IAC/F,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,eAAe,mBAAmB,EAAE,CAAA;IACnG,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,oDAAoD,EAAE,CAAA;AAC3F,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,qBAAqB;IACrB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACvG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAEvG,yCAAyC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;YACxD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5D,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACrD,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,YAAY,GAAsD;IACtE,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,2DAA2D;IACrE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sCAAsC;YACnD,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAA;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAE9C,gBAAgB;QAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAA;QAC3E,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACvE,MAAM,GAAG,GAAG,UAAU;gBACpB,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,8BAA8B,UAAU,IAAI;gBAChE,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,aAAa,CAAA;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;YACxD,MAAM,UAAU,GAAG,QAAQ,KAAK,MAAM,CAAA;YACtC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;YAC/G,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;YAEnE,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU;oBACV,MAAM;oBACN,QAAQ;oBACR,UAAU;oBACV,iBAAiB,EAAE,OAAO;oBAC1B,IAAI;iBACL,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjC,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvD,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAA;gBACpC,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC/E,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;gBAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAA;YAClC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;YAC3E,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;YAC3E,MAAM,UAAU,GAAG,SAAS,CAAA;YAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;YACtE,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;YAEpE,8DAA8D;YAC9D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE;gBAC1C,IAAI,CAAC;oBACH,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC9F,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC,CAAA;YACD,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;YACtC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YACxC,MAAM,aAAa,GAAG;gBACpB,WAAW,IAAI,OAAO;gBACtB,YAAY,IAAI,QAAQ;gBACxB,YAAY,IAAI,QAAQ;aACzB,CAAC,MAAM,CAAC,OAAO,CAAa,CAAA;YAC7B,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAA;YAC/E,IAAI,SAAS,GAAG,EAAE,CAAA;YAClB,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC;gBAAE,SAAS,GAAG,yBAAyB,CAAA;iBAC/D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS,GAAG,uBAAuB,CAAA;iBACnE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS,GAAG,sBAAsB,CAAA;YAEvE,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU;oBACV,MAAM,EAAE,YAAY;oBACpB,eAAe,EAAE,SAAS;oBAC1B,KAAK;oBACL,UAAU,EAAE,WAAW;oBACvB,IAAI;oBACJ,aAAa;oBACb,qBAAqB,EAAE,eAAe;iBACvC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjC,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACvD,MAAM,CAAC,IAAI,CAAC,kBAAkB,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACzD,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACrD,MAAM,CAAC,IAAI,CAAC,mBAAmB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC9F,MAAM,CAAC,IAAI,CAAC,gBAAgB,eAAe,GAAG,SAAS,EAAE,CAAC,CAAA;gBAC1D,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;gBAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,YAAY,EAAE,CAAC,CAAA;YACxC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,wDAAwD;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;YAC1E,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;YAC/E,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,IAAI,aAAa,GAAG,MAAM,CAAA;YAC1B,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,MAAM,SAAS,GAAa,EAAE,CAAA;YAE9B,wDAAwD;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;YACvE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;oBAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAA;oBACzC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtD,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;wBAC5E,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACvD,YAAY,GAAG,IAAI,CAAA;4BACnB,aAAa,GAAG,IAAI,CAAA;4BACpB,MAAK;wBACP,CAAC;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAA;oBAClC,KAAK,MAAM,QAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;wBAC5D,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpF,QAAQ,GAAG,IAAI,CAAA;4BACf,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,UAAU,GAAG,QAAQ,IAAI,YAAY,IAAI,QAAQ,CAAA;YACvD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;YAE5C,mBAAmB;YACnB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;gBAC5E,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,sCAAsC;oBAC9C,QAAQ;oBACR,SAAS;oBACT,YAAY;oBACZ,aAAa;oBACb,QAAQ;oBACR,SAAS;oBACT,YAAY;oBACZ,IAAI;iBACL,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;gBAClD,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,QAAQ,SAAS,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBACrE,MAAM,CAAC,IAAI,CAAC,eAAe,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACnE,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;gBACjE,MAAM,CAAC,IAAI,CAAC,iBAAiB,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC3D,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;YAC9B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,+CAA+C;QAC/C,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAA;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GACV,SAAS,IAAI,CAAC,IAAI,qBAAqB,WAAW,KAAK;gBACvD,+CAA+C;gBAC/C,0CAA0C,CAAA;YAC5C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI;oBAChB,MAAM;oBACN,WAAW;iBACZ,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjC,MAAM,CAAC,IAAI,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAA;gBAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,IAAI,wDAAwD,CAAA;YACzF,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC;oBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI;oBAChB,MAAM;oBACN,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACjC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;CACF,CAAA;AAED,eAAe,YAAY,CAAA"}
|
package/package.json
CHANGED
package/skills/mmr/SKILL.md
CHANGED
|
@@ -14,10 +14,38 @@ Dispatch code reviews to multiple AI model CLIs, poll for results, and collect r
|
|
|
14
14
|
|
|
15
15
|
## Quick Reference
|
|
16
16
|
|
|
17
|
+
`mmr review` works for any review target — not just PRs. Pick the input mode
|
|
18
|
+
that matches what you want reviewed:
|
|
19
|
+
|
|
17
20
|
```bash
|
|
18
|
-
#
|
|
21
|
+
# GitHub PR (fetches diff via `gh pr diff`)
|
|
19
22
|
mmr review --pr <number> --focus "description of what to focus on"
|
|
20
23
|
|
|
24
|
+
# Staged git changes (pre-commit review)
|
|
25
|
+
mmr review --staged --focus "..."
|
|
26
|
+
|
|
27
|
+
# All tracked uncommitted changes (staged + unstaged) — excludes untracked
|
|
28
|
+
# files; use `scaffold run review-code` for full-worktree coverage
|
|
29
|
+
git diff HEAD | mmr review --diff - --focus "..."
|
|
30
|
+
|
|
31
|
+
# Branch diff / ref range
|
|
32
|
+
mmr review --base main --head <branch> --focus "..."
|
|
33
|
+
|
|
34
|
+
# Changes to a specific tracked file since HEAD (pending edits only).
|
|
35
|
+
# If the file has no local changes this pipeline sends an empty diff
|
|
36
|
+
# and MMR will refuse with "no diff content"; use the next form instead
|
|
37
|
+
# to review the file's current contents regardless of git state.
|
|
38
|
+
git diff HEAD -- path/to/file.md | mmr review --diff - --focus "..."
|
|
39
|
+
|
|
40
|
+
# A file's current contents, regardless of git state (tracked-with-no-
|
|
41
|
+
# changes, untracked, or brand-new). Synthesizes an "all added" diff.
|
|
42
|
+
# `|| true` is required: diff exits 1 whenever files differ, which breaks
|
|
43
|
+
# pipelines under `set -o pipefail`.
|
|
44
|
+
(diff -u /dev/null path/to/file.md || true) | mmr review --diff - --focus "..."
|
|
45
|
+
|
|
46
|
+
# Existing patch or diff file
|
|
47
|
+
mmr review --diff path/to/changes.patch --focus "..."
|
|
48
|
+
|
|
21
49
|
# Check progress
|
|
22
50
|
mmr status <job-id>
|
|
23
51
|
|
|
@@ -28,7 +56,20 @@ mmr results <job-id>
|
|
|
28
56
|
mmr config test
|
|
29
57
|
```
|
|
30
58
|
|
|
31
|
-
|
|
59
|
+
All input modes accept `--focus`, `--sync`, `--format`, and `--fix-threshold`
|
|
60
|
+
the same way. The "3-channel review" is not PR-specific — it reviews whatever
|
|
61
|
+
diff you point it at.
|
|
62
|
+
|
|
63
|
+
**`--diff` contract:** the flag expects diff-format content (a path to a
|
|
64
|
+
`.patch`/`.diff` file, or `-` for stdin). It does not read raw document
|
|
65
|
+
content — wrap the target in a diff first (see the `git diff …` and
|
|
66
|
+
`(diff -u /dev/null … || true)` patterns above). The `|| true` guard is
|
|
67
|
+
required because `diff` exits 1 whenever files differ, which breaks
|
|
68
|
+
pipelines under `set -o pipefail`.
|
|
69
|
+
|
|
70
|
+
## Common Workflows
|
|
71
|
+
|
|
72
|
+
**After creating a PR**
|
|
32
73
|
|
|
33
74
|
1. Run `mmr review --pr <number>`
|
|
34
75
|
2. Note the job ID from the output
|
|
@@ -38,6 +79,35 @@ mmr config test
|
|
|
38
79
|
6. If gate failed: fix findings at or above the threshold severity
|
|
39
80
|
7. If gate passed: proceed to merge
|
|
40
81
|
|
|
82
|
+
**Reviewing a document or arbitrary file**
|
|
83
|
+
|
|
84
|
+
Pick the case that matches what the user wants reviewed:
|
|
85
|
+
|
|
86
|
+
- **Just the pending edits** to a tracked file (what changed since last
|
|
87
|
+
commit): `git diff HEAD -- path/to/doc.md | mmr review --diff -
|
|
88
|
+
--focus "..."`. Fails with "no diff content" if the file has no
|
|
89
|
+
local changes.
|
|
90
|
+
- **The file's current contents**, whether it's tracked-with-no-
|
|
91
|
+
changes, untracked, or brand-new: wrap as a synthetic "all added"
|
|
92
|
+
diff first: `(diff -u /dev/null path/to/doc.md || true) |
|
|
93
|
+
mmr review --diff - --focus "..."`. The `|| true` guard avoids
|
|
94
|
+
`diff`'s exit-1-on-differences breaking the pipeline under
|
|
95
|
+
`set -o pipefail`.
|
|
96
|
+
|
|
97
|
+
Same dispatch / status / results flow as above.
|
|
98
|
+
|
|
99
|
+
**Reviewing uncommitted work before push**
|
|
100
|
+
|
|
101
|
+
1. `git add` the files you want reviewed
|
|
102
|
+
2. Run `mmr review --staged`
|
|
103
|
+
3. Fix findings at or above the gate threshold, re-stage, re-run as needed
|
|
104
|
+
|
|
105
|
+
Prefer the wrapper tools (`scaffold run review-pr`, `scaffold run review-code`)
|
|
106
|
+
when they cover your target — they add auth checks, compensating passes, and
|
|
107
|
+
the agent-review channel on top of `mmr review`. Call `mmr review` directly
|
|
108
|
+
for targets the wrappers don't cover (docs, arbitrary diffs, ref ranges
|
|
109
|
+
outside `main`).
|
|
110
|
+
|
|
41
111
|
## Auth Failures
|
|
42
112
|
|
|
43
113
|
If `mmr review` reports auth failures, follow the recovery instructions in the output:
|