This playground documents the two cc-watch workflow bugs fixed in this PR. There is no interactive component — these are CI-layer fixes to .github/workflows/claude-release-watch.yml.
Pull requests opened by the default GITHUB_TOKEN are authored by github-actions[bot], and bot pushes do not satisfy required-status-check rules — auto-merge never fires. The fix wires peter-evans/create-pull-request to a fine-grained PAT (SNAPSHOT_PR_TOKEN) when present, falling back to GITHUB_TOKEN until a repo admin creates the secret.
token: ${{ secrets.SNAPSHOT_PR_TOKEN || secrets.GITHUB_TOKEN }}
Required follow-up: a repo admin must create SNAPSHOT_PR_TOKEN as a fine-grained PAT scoped to this repo with Contents: write + Pull requests: write. Until then, snapshot PRs still need a manual rebase to kick CI.
Every snapshot PR was titled chore(cc-watch): snapshot upstream CHANGELOG. When auto-merge stalled (because of W1a), each daily cron created another PR with the same title — making triage impossible. The fix reads latest_new_version out of shared/gh-issue-args.json (already emitted by scripts/cc-release-watch.mjs) and stamps it into both the title and commit message.
chore(cc-watch): snapshot upstream CHANGELOG (2.1.138)
Multi-version cron runs use only the latest version in the title; the chore/cc-snapshot-${{ github.run_id }} branch suffix preserves run-level uniqueness.
actionlint .github/workflows/claude-release-watch.yml — passesnpm run test:manifests — passes.github/workflows/claude-release-watch.yml only