Drop the repo's duplicate pr skill - #182
Merged
Merged
Conversation
bazauto
enabled auto-merge (squash)
August 26, 2026 16:49
The global ~/.claude/skills/pr and this one were ~80% identical text, and the global one carried "a repo with its own pr skill overrides this one". In practice the global one loaded anyway, so the repo-specific content here never reached the session at all — a silent loss, not a saving. Everything this file added is already carried elsewhere: - running npm test from the repo root, and why a workspace-level run reads as a false pass, is in CLAUDE.md §Commands in more detail than it was here - /docs-sync, /verify and "merge commits are disabled" are now stated generically in the global skill The global skill also gained the fixes this session's PR flow argued for: write the body file with the Write tool rather than a heredoc, prefer /verify over inline suites, and set --auto merge instead of watching CI. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bazauto
added a commit
to bazauto/PicoDCC
that referenced
this pull request
Aug 26, 2026
* Drop the repo's duplicate pr skill The global ~/.claude/skills/pr and this one were near-identical prose, and the global one carried "a repo with its own pr skill overrides this one". In practice the global one loads anyway, so the repo-specific content here never reached the session — a silent loss, not a saving. Same removal as bazauto/layout-orchestration#182. Everything it added is already in CLAUDE.md: both cmake presets, and the rule that CI does not cross-build firmware so the pico preset must be run locally. One term was about to be narrowed by the deletion. The skill's trigger list for that firmware build named PicoDCCDisplay; CLAUDE.md's named lib/*/CMakeLists.txt. Neither was a superset, and quietly narrowing a rule about hardware-mode breakage reaching main is not on, so CLAUDE.md now carries the union — plus the skill's note that the pico preset builds into its own tree and needs no clearing afterwards. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Carry the deleted skill's firmware-build trigger into CLAUDE.md The skill's trigger list for the pico preset named PicoDCCDisplay; CLAUDE.md's named lib/*/CMakeLists.txt. Neither was a superset, so deleting the skill would have narrowed a rule about hardware-mode breakage reaching main. CLAUDE.md now carries the union, plus the skill's note that the pico preset builds into its own tree and needs no clearing afterwards. Belongs with the deletion in the previous commit; squashed on merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
auto-merge was automatically disabled
August 26, 2026 17:07
Pull request was closed
bazauto
enabled auto-merge (squash)
August 26, 2026 17:07
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.
What
Deletes
.claude/skills/pr/SKILL.md. The global~/.claude/skills/pris now the onlyprskill for these repos.
Why
The two files were ~80% identical text — 3,533 bytes here against 3,614 globally — and the
global one opened with "A repo with its own
prskill overrides this one — use thatinstead."
That handoff does not work. Invoking
/prin this repo today loaded the global skill, sothe repo-specific content in this file never arrived: run
npm testfrom the root and why,run
/docs-sync, use the/verifyagent. The flow only went right becauseCLAUDE.mdalready says the same things. So the duplication was not buying repo-specific guidance, it was
either costing a second read or silently losing it.
Nothing is lost
npm testtrap is inCLAUDE.md§Commands, in more detail thanit was here — including that a backend-only run succeeds while the frontend suite never
executes, which is the part that matters.
/docs-sync,/verify, and "merge commits are disabled" are now stated generically inthe global skill ("if the repo has a
/docs-syncskill", "prefer the repo's/verifyagent", and the rebase rule).
.git/pr-body.mdas the body location is in the global skill.The global skill also changed
Not in this repo, but this PR is the reason, so it is recorded here. Measured across nine days
of transcripts, the PR flow was costing ~11 turns at peak context. Three fixes:
Writetool — never a heredoc. Acat > … <<'EOF'with<tags>and backticks in the body was executed as commands rather than written thissession: 20k characters of shell errors, a stray
git reset --hard, annpm installand afull e2e re-run. The single most expensive event in the flow, and the old skill warned that
heredocs misbehave without ever saying what to use instead.
gh pr merge --squash --autoinstead of watching CI. Verified safe here:allow_auto_merge: true, andmainrequirestest-and-lintwithstrict: true, so GitHubwill not merge a red or stale PR. Same guarantee, zero further turns. The skill records the
precondition, because without required status checks
--automerges immediately./verifyover inline suites, and filter the summary when running inline. Onetest:e2erun dumped 20k characters of viteECONNREFUSEDnoise into a context that thenre-reads it on every later turn.
gh pr checks --jsonis also now called out as unsafe: the field set varies byghversionand an unsupported field fails silently, which reads as "no checks reported" while CI is
passing. That happened today and hid a green run for 13 minutes.
Not done here
PicoDCC/.claude/skills/pr/SKILL.mdis the same duplication, and its CLAUDE.md alreadycarries both the CMake presets and the "CI does not cross-build firmware" rule that its skill
adds. It is safe to delete the same way, but it is a different repo and a separate PR.
Tests
No code change — documentation and tooling only.
npm run lintclean; the suites areunaffected and were run in full on #181 immediately before this branch (1500 backend, 328
frontend, 71 e2e).