swarm-pr-feedback · git:20260802.e6479e4 · 2026-08-02 · sha256 b603e039e205cfc2

swarm-pr-feedback git:20260802.e6479e4A

Immutable. This exact content is served forever at /api/v1/blob/b603e039e205cfc2.

---
name: swarm-pr-feedback
audience: swarm-plugin
description: >
  Codex adapter for closing known PR feedback in any repository. Use when asked
  to address pasted review feedback, GitHub review comments or threads,
  requested changes, CI/check failures, merge conflicts, stale PR branches, or
  follow-up work that must verify and close all known PR issues.
---

# Swarm PR Feedback

Read and follow `../../../.opencode/skills/swarm-pr-feedback/SKILL.md` as the canonical workflow.

## Codex Execution Notes

- Codex and ZCode sessions normally have no mechanical controller tools: that is canonical Profile B, not an error — both runtimes can spawn fresh-context subagents. Never report BLOCKED merely because those tools are absent — run verification lanes and every gate role as fresh independent subagents with the same one-row-per-item verdict contracts, and keep the ledger, ownership partition, and digest accounting yourself in working notes (never under `.swarm/`, which is plugin runtime state). Use Profile C strictly separated sequential passes, with the procedural independence disclosed in the closure ledger, only when the session genuinely lacks a subagent mechanism.
- Check out the PR branch locally before dispatching feedback lanes or verifying/fixing anything. Fetch the head ref if absent, preserve or surface all dirty tracked/untracked state, prove full HEAD equals the authoritative PR head SHA, and prove the final branch tracks the intended PR head remote/branch. In Profile A, a detached exact-head intake is valid because the first bind attaches only one unambiguous exact tracking ref; Profiles B/C must establish the branch themselves. Never use force or submodule-recursive checkout.
- Build the complete feedback ledger before editing: pasted feedback, GitHub comments/threads, requested changes, CI/check failures, merge conflicts, stale branch state, PR body claims, linked issues, commits, and any validated `swarm-pr-review` handoff artifact. Treat every item as a claim until source evidence proves or disproves it, and preserve original finding IDs and reviewer/critic provenance from handoff artifacts.
- For a Profile-A review continuation, require the exact user command `/swarm
  pr-feedback <PR_URL> continue from
  .swarm/pr-review/<run_id>/feedback-handoff.json`; its mechanical transition
  validates terminal review state and creates an unbound feedback gate. The
  artifact by itself does not authorize writes.
- Verification (Profiles B/C): every FB item is owned by exactly one verification lane or pass, each returning one `[FEEDBACK-VERIFIED]` row per owned item with the exact PR head SHA recorded. Under Profile A, when a lane result carries an `output_ref`, treat inline lane `output` as a preview and retrieve the full artifact via the runtime's lane-output retrieval capability before classifying; on any profile, degraded or incomplete lane outputs keep the affected items open as evidence gaps. No edits before verification settles.
- Do not resolve GitHub review threads unless the user explicitly instructs it.
- **Mandatory gates — Stage A and Stage B (+ closeout) on every profile.** Stage A always runs exact `git diff --check` plus one proof command — the exact failing CI/test reproduction when available, otherwise a repo-appropriate targeted regression/test command — plus every build, typecheck, and lint/format category mechanically discovered from the repository; it never invents a no-op category to reach a fixed count. On Profiles B/C run these commands yourself and record command+output receipts in the ledger; any content change invalidates the receipts and restarts Stage A. Stage B: an independent reviewer role, then a test-engineer role, on the Stage-A-green diff (fresh subagents on B; strictly separated re-derivation passes on C). Closeout: a separate reviewer + critic pair on the Stage-B-approved diff. One verdict row per FB ID at every gate; record both closeout verdicts in the session task-gates artifact per the durable-session guidance.
- Only if the session actually exposes the plugin's mechanical tools, run Profile A instead: `run_pr_feedback_stage_a`, then the exact ordered `swarm-pr-feedback:stage-b-reviewer`, `:stage-b-test`, `:closeout-reviewer`, and `:closeout-critic` structured modes, `complete_pr_workflow` arming, and the bound single-ref push. While that controller is active, direct subagent calls and free-form verdict prose are not equivalent evidence, and any edit restarts the sequence at Stage A.
- Publication (Profiles B/C): after all gates pass on the unchanged diff, create one reviewed commit on the PR branch, push exactly that commit with a single non-force push through the repository's commit/PR workflow, then verify read-only that the remote head equals the pushed commit before any PR comment/body/thread write.
- Load the repository's test-authoring guidance before changing tests and the repository's PR publication workflow before pushing or updating the PR.

Final responses must include a closure ledger for every original feedback item,
including conflicts, stale branch state, obsolete CI, and generated-output drift
when they affected the PR.