chore(skills): sync setup-repo and publish-release with handbook v0.1.0#75
Merged
chore(skills): sync setup-repo and publish-release with handbook v0.1.0#75
Conversation
Two related corrections to bring the canonical Claude Code skills in line with the conventions documented in amcheste/engineering-handbook v0.1.0. setup-repo ---------- Adds Step 6: verify CODEOWNERS routing. Without .github/CODEOWNERS, bot-authored PRs (via the amcheste-ai-agent GitHub App) don't auto- route to a human reviewer and disappear from review queues like Graphite. Step 6 checks for the file and surfaces the gap in the summary; setup-repo still doesn't write to the repo itself, so the remediation is a follow-up PR adding the file. This was discovered when overleaf-mcp PR #8 didn't show up in @amcheste's review queue — the repo had been through /setup-repo but never had CODEOWNERS added. publish-release --------------- Step 2 was opening a develop→main GitHub PR for the release promotion. That contradicts the rule baked into the engineering handbook (and into ~/.claude/CLAUDE.md): GitHub's merge button squash-merges by default, which collapses commit ancestry and causes merge conflicts on every subsequent release. The fix is a CLI --no-ff merge. Also adds a branch-protection note: with enforce_admins: true required-PR review, the CLI push to main is rejected. The skill now documents the toggle dance (disable, push, re-enable) and notes the App needs Administration: Read & Write to perform it. The v* tag ruleset has the same problem and same fix. Minor cleanup: hardcoded mac-dev-setup URL in the Summary section becomes <repo> placeholder. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: amcheste <13696614+amcheste@users.noreply.github.com>
Forks follow upstream's conventions, not mine. setup-repo applying my branching model, protection rules, and CODEOWNERS to a fork is a silent error — it changes a repo I don't own conceptually. Adds an isFork check at pre-flight that bails with a clear message. Also notes that any cross-repo audits should pass --source to gh repo list to skip forks. Found while auditing CODEOWNERS coverage across all repos — amcheste/traefik (a fork of upstream traefik) showed up in the "missing CODEOWNERS" list and was correctly excluded from the remediation PRs. The skill should enforce this rule next time without me having to remember it manually. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-Authored-By: amcheste <13696614+amcheste@users.noreply.github.com>
Owner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related corrections to the canonical Claude Code skills in this repo, bringing them in line with the conventions documented in amcheste/engineering-handbook v0.1.0.
`claude-skills/setup-repo/SKILL.md`
Adds Step 6: verify CODEOWNERS routing. Without `.github/CODEOWNERS`, bot-authored PRs (via the `amcheste-ai-agent` GitHub App) don't auto-route to a human reviewer and disappear from review queues like Graphite.
The new step checks for the file and surfaces the gap in the summary; `setup-repo` still doesn't write to the repo itself, so the remediation is a follow-up PR adding the file.
How this was found: overleaf-mcp#8 didn't show up in @amcheste's review queue. The repo had been through `/setup-repo` but never had `CODEOWNERS` added. overleaf-mcp#9 is the follow-up PR adding the file.
`claude-skills/publish-release/SKILL.md`
Step 2 was opening a `develop → main` GitHub PR for the release promotion. That contradicts the rule documented in the Branching Strategy philosophy §5 and in `~/.claude/CLAUDE.md`: GitHub's merge button squash-merges by default, which collapses commit ancestry and causes merge conflicts on every subsequent release.
The fix is a CLI `--no-ff` merge. Step 2 now documents:
```bash
git fetch origin
git checkout main && git pull
git merge --no-ff origin/develop -m "chore: release v"
git push origin main
```
Also adds a branch-protection note: with `enforce_admins: true` + required-PR review (the standard `setup-repo` config), the CLI push to `main` is rejected. The skill now documents the toggle dance (disable, push, re-enable) and notes the App needs `Administration: Read & Write` to perform it. Same dance applies to the `v*` tag ruleset for Step 3.
Minor cleanup: hardcoded `mac-dev-setup` URL in the Summary section becomes a `` placeholder.
Test plan
Related
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Co-Authored-By: amcheste 13696614+amcheste@users.noreply.github.com