Best for
- After the work is "done" and before merging — the final gate once review-change
- When you want one defensible answer to "is this PR actually ready?" rather than
gtrabanco/agentic-workflow/skills/audit-pr/SKILL.md
Audit a whole PR against the delivery contract and return MERGE-READY or evidenced blockers with the full URL. Consumes the current review-change REVIEW-PASS receipt instead of re-running review axes; posts a SHA-bound ready comment; never edits or merges. Triggers: "audit-pr", "is this PR ready", "merge gate".
Decision brief
The manager's "can this ship?" gate. A read-first audit over the entire PR — its SPEC, all phases, docs, CI status, and review receipt — that returns a single verdict: merge-ready or a ranked list of blockers. Never edits, refactors, or merges. The human merges, or an active shi…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/gtrabanco/agentic-workflow --skill "skills/audit-pr"Inspect the Agent Skill "audit-pr" from https://github.com/gtrabanco/agentic-workflow/blob/e84db167d6b608e991d68e98bc31f1f91f42cf85/skills/audit-pr/SKILL.md at commit e84db167d6b608e991d68e98bc31f1f91f42cf85. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Project contract. Per the agent guide's Workflow conventions + documentation map, then read what THIS skill needs: the roadmap and the project's verification gate (type-check / tests / build / CI). Do not load full feature/fix templates — the SPEC below is the only planning a…
The review evidence is the SHA-bound REVIEW-PASS receipt review-change posts on the PR — never a re-review composed here. Fetch headRefOid and the PR's comments together, then find the newest comment carrying the marker contract=v1 --:
About to end the turn with any box unchecked? The turn is NOT done — complete the missing box first (weak models drop end-of-document duties; this list is first on purpose).
review-change reviews the diff for quality and posts its SHA-bound receipt; audit-pr consumes that receipt and audits the PR as a unit of delivery — that everything the SPEC promised is present, traceable, and green. A missing or stale receipt is a blocker routed back to /review…
The whole pull request: the branch vs. the default base, plus its SPEC and planning artifacts, the roadmap entry, the doc map, the PR body, issue links, and CI. Default target is the current branch's PR; accept a PR number to target another.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 19 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
The manager's "can this ship?" gate. A read-first audit over the entire PR —
its SPEC, all phases, docs, CI status, and review receipt — that returns a single
verdict: merge-ready or a ranked list of blockers. Never edits,
refactors, or merges. The human merges, or an active
ship-roadmap --fullauto invocation consumes the SHA-bound verdict and performs
its separate fail-closed merge step.
audit-pr does not re-review the diff. It consumes the current SHA-bound
review-change receipt (the REVIEW-PASS comment marker) as the review
evidence, blocks on a missing or stale receipt routed to /review-change, and
independently evaluates only the delivery gates below.
✓ The review receipt was consumed from one PR snapshot: `headRefOid` + newest
matching `review-change:pass` marker fetched together; absent or any SHA
mismatch → blocker routed to `/review-change`, current → its scope/axes/
acceptance coverage/manual checks acknowledged without re-review
✓ The verdict block was printed in the fixed format: `VERDICT: MERGE-READY | BLOCKED` with ranked, evidenced blockers
✓ The PR's FULL URL is printed in the verdict header (the user may be juggling
several projects and agents without a CI monitor — the link in the chat is
the contract, never "PR #N" alone)
✓ MERGE-READY verdict? Then the MERGE-READY comment was POSTED on the PR
(`gh pr comment --body-file` RUN, idempotent by SHA marker) — a comment,
never a commit-message tag. BLOCKED → no comment posted
✓ Nothing was edited, refactored, or merged; merge authorization is outside
this skill and cannot be inherited from docs or an earlier session
✓ No review pass was composed or reconstructed: a missing/stale receipt is a
blocker, never a prompt to re-run review axes from this skill
✓ Closure integrity was evaluated and its result stated explicitly: pass /
blocker / warning / n-a (fix-governed PRs are always n-a; never skipped
silently)
✓ Scope integrity (descope) was evaluated and its result stated explicitly:
pass / blocker / n-a (no unit-referencing issues born on the branch → n-a;
never skipped silently)
✓ Architectural-invariant preservation was evaluated and its result stated
explicitly: pass / blocker / n-a (no project document → n-a; never skipped)
✓ The closing `→ Next:` block is printed as the ABSOLUTE last output
About to end the turn with any box unchecked? The turn is NOT done — complete the missing box first (weak models drop end-of-document duties; this list is first on purpose).
review-change
is clean (its REVIEW-PASS receipt is posted) and all phases are committed.review-change reviews the diff for quality and posts its SHA-bound receipt;
audit-pr consumes that receipt and audits the PR as a unit of delivery — that
everything the SPEC promised is present, traceable, and green. A missing or stale
receipt is a blocker routed back to /review-change, never re-litigated here.
The whole pull request: the branch vs. the default base, plus its SPEC and planning artifacts, the roadmap entry, the doc map, the PR body, issue links, and CI. Default target is the current branch's PR; accept a PR number to target another.
gh):
gh pr view <N> --json number,url,title,body,baseRefName,headRefName,headRefOid,isDraft,mergeable,mergeStateStatus,files,commits,statusCheckRollup,closingIssuesReferences
If no PR number is given, resolve the current branch's PR
(gh pr view --json ...). If none exists yet, audit the branch vs. the default
base and say "no PR open yet" — the contract still applies.docs/features/<NN>-<slug>/ (feature)
or docs/fix/<n>-<topic>/ (fix) — and its planning artifacts (PLAN.md,
TASKS.md, progress.md, testing.md, known-issues.md, decisions.md) when
present. The SPEC is the source of truth for what "done" means.The review evidence is the SHA-bound REVIEW-PASS receipt review-change posts
on the PR — never a re-review composed here. Fetch headRefOid and the PR's
comments together, then find the newest comment carrying the marker
<!-- review-change:pass sha=<40-hex> contract=v1 -->:
gh pr view <N> --json headRefOid,comments
sha equals that snapshot's headRefOid (the current
head SHA). Acknowledge
its scope/axes, acceptance coverage, invariant result, and manual checks as the
review evidence, then evaluate the delivery gates below./review-change.sha does not equal headRefOid. Any SHA
mismatch voids the receipt → BLOCKER: route to /review-change for a
re-review. Do not use a local git diff to override the PR-head comparison.Never compose, reconstruct, or "spot-check" the review from the diff to clear a
missing/stale receipt — that is review-change's turn, and re-litigating axes
here is exactly what the receipt gate removes (AC 13).
The reference allowlist is exactly the six linked paths below. Never invent or
read another references/ path. After discovery and the Step 1 receipt check,
every audit loads and applies exactly these five mandatory resources in order:
docs/workflow/REPOSITORY_STATE.md evidence
rules and Architectural invariants gate.Read portability only when the declared forge or
agent actually lacks a named primitive; otherwise skip it. The project artifact
docs/workflow/REPOSITORY_STATE.md is evidence, not a skill reference. All
resources are one hop from this file. Missing evidence or a missing required
resource is a blocker; never infer a pass.
This skill never merges, including when project docs contain merge: auto,
the user previously approved a merge, or a tool retained an earlier permission.
Those signals cannot change this skill's read-first boundary.
The sole automated merge authority is the AUDIT stage of an actively invoked
ship-roadmap --continue --fullauto run. Its MERGE-READY comment is evidence,
not permission; the repository wrapper independently verifies that comment,
the forge's current head/default base, green checks, and the merge: fullauto
decision fetched at that head. The wrapper owns fresh sync checks, transient
state, merge execution, cleanup, and the automerge PR comment. A standalone/
manual call to this skill always hands the MERGE-READY URL to the human.
Translate forge commands, never the gate semantics. Use the explicit fallbacks in portability.
execute-phase (all phases done) ─▶ review-change (REVIEW-PASS receipt posted) ─▶ audit-pr ─▶ merge
│
blockers ─┬─ receipt absent/stale ──▶ /review-change ──────┘ (re-review, re-audit)
├─ in-scope ──▶ execute-phase ────────┘ (fold, re-audit)
├─ out-of-scope ──▶ plan-fix
└─ deferral ──▶ triage-issue
review-change REVIEW-PASS receipt (its scope/axes, acceptance
coverage, invariant result, manual checks) plus the artifacts of plan-feature /
plan-fix / execute-phase (SPEC, phases, docs, Closes #N).audit-docs is the cross-document coherence check; audit-pr is per-PR merge
readiness; product-audit is the periodic, product-wide full sweep./review-change (never re-reviewed
here).ship-roadmap --fullauto AUDIT stage receives the
SHA-bound verdict and owns every later merge check.→ Next: block is printed (merge link → then the next unit via
/plan-feature --next or /triage-issue; BLOCKED → the routed fix, then re-audit).Frequently asked questions
The manager's "can this ship?" gate. A read-first audit over the entire PR — its SPEC, all phases, docs, CI status, and review receipt — that returns a single verdict: merge-ready or a ranked list of blockers. Never edits, refactors, or merges. The human merges, or an active shi…
The source record exposes this install command: npx skills add https://github.com/gtrabanco/agentic-workflow --skill "skills/audit-pr". Inspect the command and pinned source before running it.