draft-prlisted
Install: claude install-skill jacobrees-canoncore/CanonCore
Open a **draft** pull request for the current branch. `/review-pr` lands it afterwards.
**This body is self-sufficient — run it without reading anything else.** The pointers name where an
argument or a piece of evidence lives, for when a step surprises you:
`docs/agents/workflow.md` is the standing policy, `docs/agents/issue-tracker.md` the tracker's, and
`docs/incidents.md` the observation behind any rule that has one.
`WS=ad2669ec-93a5-4ce1-97fa-c7d9247a1452` throughout.
**In a Provider repository three things differ, and the steps below hold otherwise.** The pointers'
root is `${CLAUDE_PLUGIN_ROOT}` rather than the working directory, because this skill arrived as a
Claude Code plugin. The issue step 3 finds is that repository's own: one ticket per repository is the rule,
since two pull requests carrying one identifier both drive it and the first to merge closes it
(`docs/agents/workflow.md` → *Work that spans two repositories*). And **step 7's migration is
CanonCore's** — `scripts/migrate-worktree-database.ts` is in this repository and a Provider has no
Neon branch to migrate, so push and say you skipped it.
## Steps
1. **Refuse to run on `main`.** `git branch --show-current`. If it is `main`, stop — there would be
nothing left to open a PR against.
Do not just refuse. The likely cause is that `/implement` ran without a branch being created
first, so there are now commits on `main` that were meant for one. Report what
`git log origin/main..main` shows, th