aops-core/skills/strategic-review/SKILL.md
Unified multi-agent review of any artifact — a document, plan, proposal, or pull request. The calling agent deploys rbg, pauli, and marsha in parallel, then @james reconciles their findings into one verdict. Pass `comment` and/or `fix` to write the result back to the review surface. Use `--critic` for a fast pauli-only pre-hoc critique.
npx skillsauth add nicsuzor/academicops strategic-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review any artifact — a document, plan, proposal, or pull request — from several expert perspectives and return one reconciled verdict. Owned by james (reconciliation), but you, the invoking agent, own the orchestration: you deploy the reviewers yourself, because a subagent cannot spawn its own subagents. James is called only at the end, to reconcile.
owner/repo#N ref or URL).comment, fix, or both. With no flag the review is advisory —
you return the verdict to the caller and change nothing.Identify and load the artifact. If it is a PR, load the diff, description, and any prior
unresolved review comments (gh pr view, gh pr diff). Select the matching review-context
descriptor from review-contexts/ and pass it to every reviewer:
review-contexts/pr-code.md — code PRs.review-contexts/pr-framework.md — framework PRs (skills, agents, hooks, specs).Spawn all three in a single message (concurrent Agent calls). Give each the artifact, the
context, and the descriptor. You spawn them — not james. Subagents cannot spawn subagents, so
this fan-out must happen here, at the top level.
When all three return, dispatch @james with the original artifact plus all three reviewer outputs. James does not re-spawn anyone — it reconciles only. It carries the contradictions, resolves them honestly, and returns one verdict with a synthesis table:
| Agent | Issue | Feedback | Severity |
Merge convergent findings. Since rbg, pauli, and marsha review blind to each other, two or more can independently flag the same underlying defect from their own lens — that's agreement, not contradiction. Collapse it into a single synthesis-table row naming every concurring reviewer and their distinct rationale; never emit one row per reviewer restating the same defect. Reserve separate rows for genuinely distinct issues, and hold genuine disagreements in tension as before.
Severity ladder: REJECT (fundamental — close/redesign) · REVISE (substantial rework, in scope) · FIX (clear correct resolution exists) · TRIVIAL (cosmetic) · ADVISORY (non-blocking follow-up). Overall verdict: APPROVE / REVISE / REJECT.
Agent(subagent_type="aops-core:james",
prompt="Reconcile these three reviews into one verdict. Do NOT spawn subagents — synthesise only. [artifact + rbg/pauli/marsha outputs]")
comment: post james's synthesis to the artifact's natural review surface — a PR comment for
a PR, an inline note or PKB entry for a document. Scrub all personal info (names, private paths).fix: apply every FIX- and TRIVIAL-grade finding directly, without returning to the
author. If a fix is substantial, re-run the affected reviewer(s) and fold any new findings into
the table. REVISE/REJECT findings are reported, not silently reworked.Whatever the flags, never silently exit: if a write-back action fails, report it and print the full verdict to chat.
Missing evidence licenses "not supported by the available evidence" — never "false / failed / did not happen." A negative verdict requires a held falsifier the reviewer actually holds; where ground truth is unobservable (intent, off-record events, room dynamics), downgrade to ADVISORY (needs primary-source confirmation). Silence in a record is not failure. Apply the same discount symmetrically to flattering and unflattering claims alike. (Source incident: #1891.)
data-ai
Canonical session close — commit, push, PR, release_task, reflection blocks, handover. Use /dump for emergency bail (no commit/PR/reflection).
data-ai
Emergency session bail — fast resume task + short handover, no commit/PR/reflection. For when you (or the user) need a clean context now. Use /end-session for canonical close.
data-ai
Daily note lifecycle — compose and maintain a factual daily note. Reports the state of the day; does not prioritise or recommend. SSoT for daily note structure.
testing
Launder supervisor/worker task-log output into a Nic-facing narrative — what happened, where things are headed, and what (if anything) is genuinely his to decide. Never relays raw process detail (worker IDs, thread pointers, log paths) or verbatim task-log stream-of-consciousness.