Review: Diff to Verified Verdict
WorkflowReviews the current unstaged changes against the request, independently verifies each finding, then branches on a deterministic verdict to an approval note or a prioritized fix list.
Usage
echo "<your request>" | octomind workflow review Reads your request from stdin. Add --dry-run to validate and print the plan without
running any steps.
Pipeline
-
Review the current unstaged git changes against this request. Read beyond the diff — open the callers, tests, and config the changed lines touch; real bugs live across them, not only on the changed lines. <request> {{in…
-
You are an independent verifier. Re-check each finding below against the actual current code — do not trust the prior reasoning. Open the anchored file:line and confirm the problem is real before keeping it. <request> {…
- 3 verdict Conditional
- approve developer:brief
The change is approved — only non-blocking findings remain. Write a short approval note: summarize what the change does and list any Recommended/Nit findings as optional follow-ups. <verified> {{verify}} </verified>
- fixes developer:general
The change needs work — at least one Blocking finding remains. Turn the verified findings into a concise, severity-ordered fix list a developer can act on directly: each item names the file:line, the problem, and the co…
Definition
# Title: Review: Diff to Verified Verdict
#
# Public workflow: review the current unstaged changes against the request in one
# structured pass, independently verify each finding to prune false positives,
# then branch on a deterministic verdict into an approval note or a prioritized
# fix list. Public roles only.
name = "review"
description = "Reviews the current unstaged changes against the request, independently verifies each finding, then branches on a deterministic verdict to an approval note or a prioritized fix list."
# ── 1. Review ────────────────────────────────────────────────────────────────
[[steps]]
name = "review"
role = "developer:general"
session = "fresh"
prompt = """
Review the current unstaged git changes against this request. Read beyond the
diff — open the callers, tests, and config the changed lines touch; real bugs
live across them, not only on the changed lines.
<request>
{{input}}
</request>
Scan in priority order: correctness/design first, then security, then tests,
then performance, then maintainability/naming/style. Lean toward recall — surface
every candidate; a later step prunes false positives.
Output ONLY a findings list, one block per finding, nothing else:
- DIMENSION: correctness | security | performance | maintainability | tests
SEVERITY: Blocking | Recommended | Nit
ANCHOR: path/to/file.ext:line
WHY: one concise sentence — the concrete problem
FIX: one concrete suggested change
If you find nothing, output exactly: NO FINDINGS
"""
# ── 2. Verify (independent precision gate) ───────────────────────────────────
[[steps]]
name = "verify"
role = "developer:general"
session = "fresh"
prompt = """
You are an independent verifier. Re-check each finding below against the actual
current code — do not trust the prior reasoning. Open the anchored file:line and
confirm the problem is real before keeping it.
<request>
{{input}}
</request>
<findings>
{{review}}
</findings>
For every finding decide KEEP or DROP with a one-line justification. DROP any
finding that is not provably anchored in the code, is a duplicate, or is pure
speculation. Then list only the KEPT findings, each with its DIMENSION, SEVERITY,
ANCHOR, WHY, and FIX.
Compute the verdict mechanically from the kept findings: if any kept finding has
SEVERITY Blocking, the verdict is REQUEST_CHANGES; otherwise it is APPROVED.
End with exactly one line: `VERDICT: APPROVED` or `VERDICT: REQUEST_CHANGES`.
Nothing after it.
"""
# ── 3. Conditional verdict ───────────────────────────────────────────────────
[[steps]]
name = "verdict"
conditional = true
condition = { output = "verify", matches = '(?m)^VERDICT: APPROVED' }
on_match = ["approve"]
on_no_match = ["fixes"]
[[steps.run]]
name = "approve"
role = "developer:brief"
session = "fresh"
prompt = """
The change is approved — only non-blocking findings remain. Write a short
approval note: summarize what the change does and list any Recommended/Nit
findings as optional follow-ups.
<verified>
{{verify}}
</verified>
"""
[[steps.run]]
name = "fixes"
role = "developer:general"
session = "fresh"
prompt = """
The change needs work — at least one Blocking finding remains. Turn the verified
findings into a concise, severity-ordered fix list a developer can act on
directly: each item names the file:line, the problem, and the concrete fix.
<verified>
{{verify}}
</verified>
"""