$npx -y skills add gtrabanco/agentic-workflow --skill audit-prPR-level merge gate. Audits the WHOLE pull request (not just the diff) against a merge-readiness contract: SPEC acceptance criteria met, all phases complete, docs updated per the doc map, Closes #N present when issue-born, tests added at the right layer, CI green, branch off the
| 1 | # Audit PR |
| 2 | |
| 3 | The manager's **"can this ship?"** gate. A read-first audit over the *entire* PR — |
| 4 | its SPEC, all phases, docs, tests, CI, and review axes — that returns a single |
| 5 | verdict: **merge-ready** or a ranked list of **blockers**. **Never edits, never |
| 6 | refactors.** By default it never merges either — the human decides and merges. |
| 7 | The one exception is the **opt-in auto-merge** below: a documented policy (or an |
| 8 | explicit user instruction) plus a fail-closed pre-merge checklist. |
| 9 | |
| 10 | ## Turn contract — verify before ending the turn |
| 11 | |
| 12 | ``` |
| 13 | ✓ The verdict block was printed in the fixed format: `VERDICT: MERGE-READY | BLOCKED` with ranked, evidenced blockers |
| 14 | ✓ The PR's FULL URL is printed in the verdict header (the user may be juggling |
| 15 | several projects and agents without a CI monitor — the link in the chat is |
| 16 | the contract, never "PR #N" alone) |
| 17 | ✓ MERGE-READY verdict? Then the MERGE-READY comment was POSTED on the PR |
| 18 | (`gh pr comment --body-file` RUN, idempotent by SHA marker) — a comment, |
| 19 | never a commit-message tag. BLOCKED → no comment posted |
| 20 | ✓ Nothing was edited or refactored; nothing was merged UNLESS the auto-merge |
| 21 | policy applied AND the pre-merge checklist was RUN with its output pasted |
| 22 | ✓ Closure integrity was evaluated and its result stated explicitly: pass / |
| 23 | blocker / warning / n-a (fix-governed PRs are always n-a; never skipped |
| 24 | silently) |
| 25 | ✓ Scope integrity (descope) was evaluated and its result stated explicitly: |
| 26 | pass / blocker / n-a (no unit-referencing issues born on the branch → n-a; |
| 27 | never skipped silently) |
| 28 | ✓ The closing `→ Next:` block is printed as the ABSOLUTE last output |
| 29 | ``` |
| 30 | |
| 31 | About to end the turn with any box unchecked? The turn is NOT done — complete |
| 32 | the missing box first (weak models drop end-of-document duties; this list is |
| 33 | first on purpose). |
| 34 | |
| 35 | ## When to use |
| 36 | |
| 37 | - After the work is "done" and before merging — the final gate once `review-change` |
| 38 | is clean and all phases are committed. |
| 39 | - When you want one defensible answer to "is this PR actually ready?" rather than |
| 40 | trusting that every loose end was tied off. |
| 41 | |
| 42 | `review-change` reviews the *diff* for quality; `audit-pr` audits the *PR as a unit |
| 43 | of delivery* — that everything the SPEC promised is present, traceable, and green. |
| 44 | |
| 45 | ## Scope |
| 46 | |
| 47 | The whole pull request: the branch vs. the default base, **plus** its SPEC and |
| 48 | planning artifacts, the roadmap entry, the doc map, the PR body, issue links, and |
| 49 | CI. Default target is the current branch's PR; accept a PR number to target another. |
| 50 | |
| 51 | ## Step 0 — Discover the project & the PR (always first) |
| 52 | |
| 53 | 1. **Project contract.** Per the agent guide's **Workflow conventions** + |
| 54 | **documentation map**, then read what THIS skill needs: the roadmap, the |
| 55 | feature/fix templates, and the project's verification gate (type-check / tests |
| 56 | / build / CI). |
| 57 | 2. **The PR.** Identify it and read it in full (forge CLI per the project's |
| 58 | Workflow conventions — examples use `gh`): |
| 59 | ```sh |
| 60 | gh pr view <N> --json number,title,body,baseRefName,headRefName,isDraft,mergeable,mergeStateStatus,files,commits,statusCheckRollup,closingIssuesReferences |
| 61 | ``` |
| 62 | If no PR number is given, resolve the current branch's PR |
| 63 | (`gh pr view --json ...`). If none exists yet, audit the branch vs. the default |
| 64 | base and say "no PR open yet" — the contract still applies. |
| 65 | 3. **The SPEC.** Locate the governing SPEC — `docs/features/<NN>-<slug>/` (feature) |