release skill: own PGXS-target modifications, pin DEBUG exception, auto-sync preflight - #68
Merged
jnasbyupgrade merged 2 commits intoJul 31, 2026
Conversation
…to-sync preflight Three related improvements to the /release skill and its supporting definitions, found during 2.3.0 release prep: 1. Tighten the "User-Facing API Surface" known gap in CLAUDE.md: pgxntool's own modifications to PGXS-named targets (added/changed prerequisites, recipe bodies, EXTRA_CLEAN entries, etc.) are now explicitly in scope, rather than hiding behind "it's a PGXS target" because the old exclusion was by name alone. This has now caused two real misses (a stale README claim about test's prerequisites, and installcheck: install / issue #79 nearly being waved through during 2.3.0 prep) -- this settles the policy instead of leaving it as an open "revisit if it keeps happening" gap. 2. Make explicit that DEBUG's absence from README.asc/CLAUDE.md is an intentional, standing exception, not a finding -- API-documentation review agents must not re-flag it. This is the first entry in what's now a general pattern: intentional non-documentation decisions get recorded in the Terminology section so they aren't re-litigated release after release. SKILL.md's review-agent launch section now points at this list instead of duplicating it. 3. release-preflight.sh's sync check now self-heals instead of only warning: if local master is a clean fast-forward behind upstream, the script fast-forwards it (git merge --ff-only, never a plain merge) and pushes the result to origin (the fork). Master is only ever updated by fast-forward -- if --ff-only itself refuses, or local has commits upstream lacks, that's treated as a hard error requiring manual resolution, never auto-merged, rebased, or forced. Found during 2.3.0 prep, where both repos' local masters and forks had drifted behind upstream. SKILL.md's pre-flight section prose updated to match. Co-Authored-By: Claude <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
pgxntool's release PR body read "Companion (do-not-merge, CI trigger only): pgxntool-test release-VERSION" -- the do-not-merge parenthetical described the companion PR, but read in isolation it looked like it applied to the PR itself. During 2.3.0 this caused the reviewer to mistake the real release PR for a do-not-merge one. Both PR body templates now state plainly, as their own sentence, whether that PR should or shouldn't be merged, before ever mentioning the other one, and cross-reference each other's PR number.
Merged
3 tasks
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
Three related dev-tooling improvements to the
/releaseskill and itssupporting definitions, all found/decided during 2.3.0 release prep. No
changes to pgxntool-test's own test suite or template.
Tighten the "Known gap" in CLAUDE.md's User-Facing API Surface
definition. pgxntool's own modifications to PGXS-named targets (e.g.
installcheck: installfrom issue #79,test's prerequisites,clean'sEXTRA_CLEANadditions) are now explicitly IN SCOPE for API surfacetracking, rather than being excluded just because the target shares a
name with a PGXS target. The underlying PGXS behavior pgxntool didn't
touch stays out of scope; pgxntool's own authored changes to a
shared-name target no longer do. This has already caused two real misses
(a stale README claim, and
installcheck: install/#79 almost being wavedthrough) — this settles the policy instead of leaving it open-ended.
Pin down the DEBUG documentation exception. CLAUDE.md's item 5 now
states explicitly that DEBUG's absence from README.asc/CLAUDE.md
documentation is intentional and not itself a finding, so future
API-documentation review agents don't re-flag it. This is framed as the
first entry in a general pattern (standing exceptions get recorded here
rather than re-litigated release after release). SKILL.md's review-agent
launch section now points agents at this list instead of duplicating it.
Auto-sync in release-preflight.sh. The sync-status check no longer
just warns when local master is behind upstream — it self-heals: fetches
upstream, and if local is a clean fast-forward behind (verified via
git merge-base --is-ancestor), it fast-forwards withgit merge --ff-only(never a plain merge/rebase — master must only everfast-forward, never gain a merge commit) and pushes the result to
origin(the fork remote). If--ff-onlyitself refuses, or local hascommits upstream lacks (true divergence), that's a hard error requiring
manual resolution — never auto-merged, rebased, or forced. Found during
2.3.0 prep, where both pgxntool and pgxntool-test local masters and forks
had drifted behind upstream. SKILL.md's "Run Pre-flight Checks" prose
updated to match.
Test plan
bash -n .claude/skills/release/scripts/release-preflight.sh— syntax check passessync_repofunction and exercised it against throwaway local git repos simulating both scenarios:set -euo pipefaildoesn't abort the script on the expected non-zero exit frommerge-base --is-ancestoror a refusedmerge --ff-only🤖 Generated with Claude Code