Skip to content

chore(skills): sync setup-repo and publish-release with handbook v0.1.0#75

Merged
amcheste merged 2 commits intodevelopfrom
chore/setup-repo-codeowners-check
Apr 26, 2026
Merged

chore(skills): sync setup-repo and publish-release with handbook v0.1.0#75
amcheste merged 2 commits intodevelopfrom
chore/setup-repo-codeowners-check

Conversation

@amcheste-ai-agent
Copy link
Copy Markdown

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

  • CI (`Lint`, `Commit Lint`) passes.
  • Skills render cleanly when read by Claude Code.
  • After merge: re-sync local `~/.claude/skills/` from this repo (via your usual setup script) and run `/setup-repo amcheste/` to confirm Step 6 fires.

Related

  • engineering-handbook v0.1.0 — release that codified these conventions.
  • overleaf-mcp#9 — concrete PR adding CODEOWNERS to a repo that was missing it.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
Co-Authored-By: amcheste 13696614+amcheste@users.noreply.github.com

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>
@amcheste-ai-agent amcheste-ai-agent Bot requested a review from amcheste as a code owner April 25, 2026 19:22
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>
Copy link
Copy Markdown
Owner

amcheste commented Apr 26, 2026

Merge activity

  • Apr 26, 2:22 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Apr 26, 2:22 AM UTC: @amcheste merged this pull request with Graphite.

@amcheste amcheste merged commit f34627b into develop Apr 26, 2026
8 checks passed
@amcheste amcheste deleted the chore/setup-repo-codeowners-check branch April 26, 2026 02:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants