codex/skills/review-adjudication/SKILL.md
Discriminately adjudicate PR review comments before implementation. Treat each comment as a claim to test, preserve raw comment identity and input inventory, bind decisions to artifact state, build the strongest no-change countercase, separate valid concerns from valid proposed fixes, recover PR rationale with explicit `$seq` when needed, and emit a stale-proof gated ledger, resolve-selection map, adversarial action matrix, ablative/isomorphic counterproposal, resolution warrants, and surface budgets that decide what to address, validate only, resolve with proof only, rebut, defer, investigate, delete/collapse, or route. Trigger for `$review-adjudication`, review the review, adjudicate PR comments, are these comments relevant, which comments matter, should we act on these comments, gate review comments before implementation, refine this list to just those worth resolving, or select review comments to resolve. Not for implementing fixes, writing rebuttals only, or final merge closure.
npx skillsauth add tkersey/dotfiles review-adjudicationInstall 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.
Decide which PR review comments should change code, which should be rebutted, which are stale or out of scope, which require validation only, which should be resolved with proof only, and which should be reframed as a governing invariant instead of handled as isolated local fixes.
This skill is discriminative, not deferential. A reviewer comment is an input
claim, not an obligation. act is a conclusion that must be earned from current
artifact evidence, a defeated no-change countercase, an ablative surface check,
and explicit adversarial clearance for the downstream action.
Use Surface-Budgeted Ablative-Isomorphic v8 mode whenever the input contains real review comments. This mode is mandatory because automation needs:
Other modes are allowed only when they still satisfy the completion gate:
Operate in DISCRIMINATIVE, REBUTTAL-FIRST, ADVERSARIAL-BY-DEFAULT, PARALLEL-WHEN-MATERIAL, INVARIANT-SEEKING, ABLATIVE, ISOMORPHIC, CLONE-CLASSIFIED, ABSTRACTION-LADDERED, CANONICALIZING, DOMINANCE-TESTED, ANTI-RUBBER-STAMP, EVIDENCE-WEIGHTED, STALE-PROOF, and FAIL-CLOSED mode.
act is a conclusion, not the default.implementation_handoff_allowed: yes, every address row has adversarial
clearance, and every mutation-capable row has ablative-surface clearance.address mean "add code". Every mutation-capable warrant must carry
a surface budget, deletion/reuse/refactor/canonicalization probe obligation,
and expansion-warrant rule before downstream implementation.validate-first route.This skill expects $seq to be installed when PR rationale recovery is needed.
If $seq is unavailable, proceed only from current artifacts and mark PR
rationale fields as unknown instead of inventing intent.
Every row in Resolve Selection must receive one adversarial response. The
response is not decorative; it is a clearance attempt against the selected action.
It must either clear the action, preserve the no-change/defer decision, or block
handoff.
Adversarial responses should be parallelized when dimensions are independent and read-only. Use parallel lanes to reduce elapsed time for material batches, but keep final adjudication and all downstream writes single-rooted.
| selected action | adversarial response must challenge |
|---|---|
| address | no-change, validate-first, wrong-fix, scope/ownership, surface-budget, ablative route, isomorphism proof, fixed-point over-routing |
| validate-only | mutate-now, no-validation-value, wrong probe, production-mutation escape |
| resolve-thread-only | still-material, stale-proof insufficiency, proof-ref weakness, hidden implementation need |
| do-not-address | materiality, review-closure value, proof-only alternative, user/non-goal mismatch |
| delete-collapse-canonicalize | live contract loss, compatibility risk, missing isomorphism proof, wrong canonical owner, semantic-clone/accidental-rhyme merge |
| blocked | whether a narrower safe validation, reply, proof-only route, or user question can unblock |
Use exactly one parallelism mode per row in the Adversarial Action Matrix:
root-equivalent: root performed the adversarial challenge inline; allowed for
obvious narrow-local, proof-only, synthetic, or no-change rows.targeted-parallel: one or two independent read-only lanes challenged the row
or invariant cluster.full-fanout: evidence, scope/ownership, criticality, no-change, validation
value, fix-shape, ablative-surface, and isomorphism/proof lanes were assigned in parallel.swarm: six or more specialists were needed because the batch is large,
contentious, P2+, invariant-coupled, likely to reopen, deletion-sensitive, or behavior-preservation-sensitive.not-required: only for rows with resolve decision: blocked and no safe
downstream action to challenge; the missing evidence must be named.Use full fanout or swarm when any of these are true:
addressaddress or validate-only$fixed-point-driverDo not parallelize lanes that need writes, mutate fixtures, alter review threads, or depend on each other's outputs. Parallel adversaries are read-only evidence producers; the root adjudicator integrates them.
When possible, build a compact context pack before adjudication:
Review comments:
- raw id/thread:
- reviewer:
- file/location:
- exact excerpt:
- reviewer-suggested fix, if any:
Current artifacts:
- artifact_state_id:
- branch:
- base:
- head:
- diff_digest:
- comment_set_digest:
- ci_state:
- branch/diff summary:
- touched files:
- relevant tests:
- CI/local proof status:
- PR description or stated goal:
Rationale recovery:
- current-session plan/artifacts:
- `$seq` search used: yes/no
- memory support used: yes/no
- missing rationale:
Emit a stable row for every raw comment.
| id/thread | reviewer | excerpt | concern validity | proposed-fix validity | freshness | materiality | governing invariant candidate | resolve decision | handoff action | proof ref |
|---|---|---|---|---|---|---|---|---|---|
Allowed resolve decision values:
addressvalidate-onlyresolve-thread-onlydo-not-addressdelete-collapse-canonicalizeblockedAllowed handoff action values:
mutate-codeadd-validation-onlyresolve-threaddraft-replydefernoneFor every raw comment, construct the strongest countercase to the selected route.
| id/thread | selected route | strongest countercase | countercase status | evidence ref | route impact |
|---|---|---|---|---|---|
Allowed countercase status values:
defeatedpreserved-no-changepreserved-validate-firstpreserved-proof-onlyunresolvedblockedFor every address or delete-collapse-canonicalize row, emit an Ablative
Counterproposal before issuing a mutation-capable warrant.
| id/thread | valid concern | additive proposal | delete candidate | collapse/reuse candidate | canonical owner candidate | privatization candidate | clone classification | abstraction-ladder check | lower-surface route | why insufficient or selected | ablative clearance | isomorphism status | proof ref |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Allowed lower-surface route values:
deletecollapsereusecanonicalizeprivatizedecommissionvalidate-firstproof-onlynoneAllowed clone classification values:
exact-cloneparametric-clonegapped-clonesemantic-cloneaccidental-rhymenot-applicableunknownAllowed abstraction-ladder check values:
not-neededrung-validrung-skippedtoo-few-casestoo-many-variance-axesproof-missingunknownAllowed isomorphism status values:
passvalidate-firstmissingnot-requiredAllowed ablative clearance values:
clear-additiveselect-ablative-routevalidate-firstveto-additiveunresolvednot-requiredaddress with mutate-code is illegal unless ablative clearance is
clear-additive or select-ablative-route and the Resolution Warrant records the
selected route.
For every selected deletion, collapse, merge, reuse, or canonicalization route,
emit a compact behavior-preservation card before handoff. This is the lightweight
import from $simplify-and-refactor-code-isomorphically: prove behavior identical
before removing or merging surface.
Ablative Isomorphism Card:
- id/thread:
- surface:
- proposed action: delete | collapse | reuse | canonicalize | privatize | decommission
- behavior preserved:
- public contract preserved:
- error semantics preserved:
- ordering / side effects preserved:
- clone classification:
- abstraction-ladder check:
- compatibility risk: none | low | medium | high
- proof signal:
- deletion/collapse witness:
- card status: pass | validate-first | missing | not-required
If any relevant row cannot be filled, select validate-first or block handoff.
Every mutation-capable warrant must include a surface budget. See
references/surface-budget-warrants.md.
| warrant id | mode | target net loc | max positive loc | max new public symbols | max new files | max new helpers | max new flags/knobs | max new state variants | max new branches | duplicate path budget | ablative probes required | expansion warrant required | expansion status | proof required | notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Default mode for mutate-code warrants is ablative-first.
Deletion/collapse/canonicalization warrants must carry an Ablative Isomorphism Card unless the selected route is validate-first.
Emit after Resolve Countercases and before Resolution Warrants.
| id/thread | primary resolve decision | adversarial lanes | parallelism mode | strongest adversarial response | veto status | clearance | proof ref | decision impact |
|---|---|---|---|---|---|---|---|---|
Allowed veto status values:
clearedpreserved-no-changeunresolvedvetoedblockednot-requiredAllowed clearance values:
clearedpreservedrerouteddowngradedblockedRules:
address requires veto status: cleared, clearance: cleared, and a concrete
proof ref that defeats the strongest no-change / validate-first / wrong-fix /
scope / budget / ablative alternative.validate-only requires veto status: cleared, clearance: cleared or
downgraded, and proof that validation is the correct next action instead of
mutation or no action.resolve-thread-only requires veto status: cleared or
preserved-no-change, clearance: preserved, and a proof ref that makes code
mutation unnecessary.do-not-address requires veto status: preserved-no-change or cleared,
clearance: preserved, and a proof/ref explaining why no downstream action is
selected.delete-collapse-canonicalize requires live-contract preservation evidence and
an ablative clearance packet.blocked requires veto status: blocked or unresolved, clearance: blocked,
and a missing-evidence proof ref.Use custom read-only Codex agents when available. The package includes the
runnable authority panel under codex/agents/:
review_evidence_authorityreview_direction_ownership_authorityreview_criticality_authorityreview_no_change_advocatereview_validation_value_authorityreview_fix_shape_authorityreview_ablative_surface_authorityIf custom agents are unavailable, emit root-equivalent packets with the same role names and schema. Root-equivalent packets must be evidence-bearing and are not a license to skip the clearance matrix or veto ledger.
Resolution Warrants are scoped, expiring permissions. They are not general task instructions.
resolution_warrant:
warrant_id: "..."
raw_comment_ids: []
artifact_state_id: "..."
permitted_action: mutate-code | add-validation-only | resolve-thread | draft-reply | defer | none
selected_route: address | validate-only | resolve-thread-only | do-not-address | delete-collapse-canonicalize | blocked
permitted_scope: []
forbidden_actions: []
proof_required: "..."
surface_budget:
mode: ablative-first | additive-authorized | proof-only | validation-only | not-applicable
ablative_clearance: clear-additive | select-ablative-route | validate-first | veto-additive | unresolved | not-required
lower_surface_routes_defeated: []
clone_classification: exact-clone | parametric-clone | gapped-clone | semantic-clone | accidental-rhyme | not-applicable | unknown
abstraction_ladder_check: not-needed | rung-valid | rung-skipped | too-few-cases | too-many-variance-axes | proof-missing | unknown
isomorphism_status: pass | validate-first | missing | not-required
expansion_warrant_required: yes | no
expires_when: "artifact_state changes, comment set changes, or proof ref becomes stale"
Before final handoff, emit:
Adjudication Gate:
- raw_comment_inventory_complete: pass/fail
- artifact_state_bound: pass/fail
- resolve_selection_complete: pass/fail
- resolve_countercases_complete: pass/fail
- adversarial_action_coverage: pass/fail
- ablative_counterproposals_complete: pass/fail
- ablation_isomorphism_cards_complete: pass/fail/not-applicable
- clone_classification_complete: pass/fail/not-applicable
- abstraction_ladder_checks_complete: pass/fail/not-applicable
- authority_clearance_complete: pass/fail
- surface_budgets_complete: pass/fail/not-applicable
- resolution_warrants_current: pass/fail
- implementation_handoff_allowed: yes/no
- validation_handoff_allowed: yes/no
- reply_handoff_allowed: yes/no
End with these sections, in this order:
Act OnValidate OnlyDelete / Collapse / CanonicalizeRebut / Do Not AddressNeed Evidence / BlockedHandoff AgendaAdjudication Bottom LineAdjudication Bottom Line must be the final section and must include:
valid concern into add code without ablative clearance.mutate-code permission from a stale artifact state.address without an all-action skew audit.tools
Convert markdown plans into beads with dependencies using br CLI. Use when creating task graphs, polishing beads before implementation, or bridging planning to agent swarm execution.
development
Orchestrate Codex skill optimization during active sessions through $cas goal control, $shadow single-session evidence, $tune diagnosis/refinement briefs, and the skill-optimizer custom subagent. Trigger for $opt, skill optimization loops, session-driven skill tuning, meta-skill audits, or explicit validated skill edits. Do not use for general code optimization, product optimization, or performance tuning.
development
Run a targeted fresh-eyes blunder pass over code, specs, plans, adjudications, closure gates, skill edits, or negative-evidence ledgers. Trigger when asked to reread with fresh eyes, find obvious bugs, catch mistakes/oversights/omissions, check for embarrassing misses, or perform a second independent blunder pass before closure. Do not use as a substitute for implementation, adjudication, or verification; use it as the final falsification/check pass for those workflows.
development
Explicitly shadow, tail, watch, follow, monitor, supervise, or companion exactly one Codex session id/path through `$seq`, then apply a named target skill as an interpretation/reporting/proposal/action lens until the watched session stops.