Run the cadence check on this branch's PR (review evidence, squash, CI, ledger, worktree, pushed, deploy) — do the independent review and post its evidence comment if missing, then merge only when every row passes. Pass a PR number to check another PR, or "week" for every PR merged in the last 7 days.
Instal·la
npx skillscat add eyecantell/agentorc/cadence Instal·la des del registre de SkillsCat.
Cadence — check a PR against cadence.md §1–§5 before merging
Thin wrapper around scripts/check_cadence.py — never reimplement its rows here. The script
is a detector, not a gate (cadence §7): nothing stops a gh pr merge that skipped it, and
that is deliberate — a gate that gets bypassed disables itself. The backstop is/stranded-work, which runs the same script over the week's merges (--since 7d), so a
skipped check is found, not prevented.
Steps
Find the PR: the current branch's (
gh pr view --json number), or the number given as
the argument.weekmeans--since 7d(report only, steps 3–5 do not apply).Run
python3 scripts/check_cadence.py --pr <n>and read every row. Exit 0 = every row
pass or n/a; 1 = a fail; 2 = nothing could be checked (nogh, no PR, or every rowunknown). A row markedunknownis evidence gh could not give (a deleted head's check runs, a rate limit) — say
so, never call it a pass.reviewfails and no review has been done: do it now — a cheaper-model agent
(Sonnet) reviews the diff for correctness (code) or fact-checks it against the repo
(docs). Fix the findings, re-verify, and then post the evidence comment (§4):gh pr comment <n> --body "$(cat <<'MSG' cadence-review: FIXED · sonnet · code · 3 findings - <finding 1 and what changed> - ... MSG )"First line exactly in that shape —
SHIP(nothing to change),FIXED(findings fixed
before merge), orBLOCK(do not merge) — then<reviewer model>,<code|docs>,<n> findings, separated by·. Findings in prose below. Never edit the comment
afterwards (an edit after the merge fails the row: GitHub stampsupdated_at). Post a
new comment if there is more to say. The script'sREVIEW_REreads this line — the two
are a parity pair (cadence §7): change the shape in both or in neither.Any other row fails: fix the cause, not the row — a
ledgerfail means the TD named
in the title needs its status line or archive move in this PR (§2);pushedmeans
commits exist only on this machine (§3);worktreeafter a merge means scratch or
unlanded commits are sitting in the worktree (§1).Merge only on exit 0 (
gh pr merge <n> --squash— no--delete-branchfrom a worktree,
cadence §1), then re-run with--pr <n>once merged if you want the record: thepr,review(created and last edited before the merge) andworktree(gone or reapable)
rows change meaning after the merge.
What the rows prove, and what they don't
review is self-attested: the session that ran the review posted the comment. Green means
the ritual was recorded. An orchestrator that nudges or escalates on this check, and a sweep
that reports a clean week, should say "recorded", not "verified". pr's squash is inferred
from the merge commit having one parent — GitHub records no merge method. deploy runs the
consumer's own scripts/cadence_deploy_check.sh <pr> <sha> if one exists (exit 0 pass,
1 fail, 2 n/a; cadence §5, adapt per repo) and is n/a otherwise.