Skip to content

Drop the repo's duplicate pr skill - #182

Merged
bazauto merged 1 commit into
mainfrom
chore/single-pr-skill
Aug 26, 2026
Merged

bazauto merged 1 commit into
mainfrom
chore/single-pr-skill

Conversation

@bazauto

@bazauto bazauto commented Aug 26, 2026

Copy link
Copy Markdown
Owner

What

Deletes .claude/skills/pr/SKILL.md. The global ~/.claude/skills/pr is now the only pr
skill 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 pr skill overrides this one — use that
instead."

That handoff does not work. Invoking /pr in this repo today loaded the global skill, so
the repo-specific content in this file never arrived: run npm test from the root and why,
run /docs-sync, use the /verify agent. The flow only went right because CLAUDE.md
already 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

  • The root-vs-workspace npm test trap is in CLAUDE.md §Commands, in more detail than
    it 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 in
    the global skill ("if the repo has a /docs-sync skill", "prefer the repo's /verify
    agent", and the rebase rule).
  • .git/pr-body.md as 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:

  • Write the body file with the Write tool — never a heredoc. A cat > … <<'EOF' with
    <tags> and backticks in the body was executed as commands rather than written this
    session: 20k characters of shell errors, a stray git reset --hard, an npm install and a
    full 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 --auto instead of watching CI. Verified safe here:
    allow_auto_merge: true, and main requires test-and-lint with strict: true, so GitHub
    will not merge a red or stale PR. Same guarantee, zero further turns. The skill records the
    precondition, because without required status checks --auto merges immediately.
  • Prefer /verify over inline suites, and filter the summary when running inline. One
    test:e2e run dumped 20k characters of vite ECONNREFUSED noise into a context that then
    re-reads it on every later turn.

gh pr checks --json is also now called out as unsafe: the field set varies by gh version
and 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.md is the same duplication, and its CLAUDE.md already
carries 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 lint clean; the suites are
unaffected and were run in full on #181 immediately before this branch (1500 backend, 328
frontend, 71 e2e).

@bazauto
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>
@bazauto bazauto closed this Aug 26, 2026
auto-merge was automatically disabled August 26, 2026 17:07

Pull request was closed

@bazauto bazauto reopened this Aug 26, 2026
@bazauto
bazauto enabled auto-merge (squash) August 26, 2026 17:07
@bazauto
bazauto merged commit fc3ad0c into main Aug 26, 2026
1 of 2 checks passed
@bazauto
bazauto deleted the chore/single-pr-skill branch August 26, 2026 17:14
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.

1 participant