Skip to content

release: stamp 4.6.0 and document every version-bump surface - #81

Merged
sumitake merged 3 commits into
mainfrom
dev/claude/pr-template-version-scope
Jul 30, 2026
Merged

release: stamp 4.6.0 and document every version-bump surface#81
sumitake merged 3 commits into
mainfrom
dev/claude/pr-template-version-scope

Conversation

@sumitake

Copy link
Copy Markdown
Owner

Summary

Closes #78 — by disproving its premise rather than acting on it, and by paying the version bump #77 should have carried.

#78 was wrong. It claimed the template's version-bump checkbox was unsatisfiable for a content PR, because check_release_consistency.py appeared to require the generated CHANGELOG.md to move with the version while the template reserves that file to release PRs. At PR time the version requirement is met by a changelog.d/ fragment naming the version; the generated CHANGELOG.md is only the post-release form. I verified this by performing the bump and getting RESULT: OK.

What actually happened on the first attempt was simpler: I missed three surfaces, saw 12 tests go red, and concluded the gate was impossible instead of finding them. That conclusion then propagated into #77's PR body and into #78.

Consequence

#77 changed distributed content and should have been released as a version bump. plugins/agent-collab/host_policy.py ships in the package. This PR pays that debt: 4.5.4 → 4.6.0, minor because #77 added an observation capability with no breaking change.

The seven surfaces

Discovered by doing it, not by reading:

  1. plugins/agent-collab/.claude-plugin/plugin.json
  2. plugins/agent-collab/.codex-plugin/plugin.json
  3. .claude-plugin/marketplace.base.json → re-run build_marketplace.py
  4. root README.md — summary-table row and ## What's new - vX.Y.Z heading (two separate edits)
  5. plugins/agent-collab/README.mdCurrent: **X.Y.Z** and the "this same X.Y.Z package" line
  6. scripts/skill-build-config.json — the nested skill_version → re-run build_skills.py, which restamps all 47 generated SKILL.md files
  7. a changelog.d/ fragment naming agent-collab X.Y.Z

Surface 6 surfaced only when test_current_distributed_version_is_consistent caught it. My first attempt at it added a new top-level skill_version key instead of editing the nested one, so the build silently no-opped and reported success — the template now warns about exactly that.

The checkbox is replaced with this enumerated list, both regeneration steps, and the nested-key warning.

Review note on the diff shape

56 files, but only 9 are hand-edited. The other 47 are SKILL.md version stamps produced by build_skills.py. Review the config plus one sample skill and the consistency script, not the churn line by line.

Verification

  • python3 -m unittest discover -s tests -t . — 658 tests, OK
  • python3 -m unittest discover -s scripts -p 'test_*.py' — 319 tests, OK
  • python3 scripts/check_release_consistency.py — OK, all ten surface assertions PASS at 4.6.0
  • python3 scripts/build_skills.py --check — all generated files match specs
  • python3 scripts/build_marketplace.py --check — OK
  • python3 scripts/secret_scan.py — clean
  • python3 scripts/check-public-export-safety.py --active-tree — SAFE
  • All seven surfaces confirmed present in the diff by explicit enumeration

Boundary declaration

  • No provider executor source, raw provider command, credential, private path, downloader, or post-install hook.
  • No native-runtime change; the runtime manifest and signed artifact are untouched.
  • No host-specific preset or provider-specific plugin.

Generated and release surfaces

  • Skill specs and generated SKILL.md in parity (regenerated, --check clean).
  • Claude and Codex marketplaces/manifests in parity.
  • changelog.d/ fragment present; generated CHANGELOG.md untouched.
  • Version metadata bumped — this PR is the bump.

Review and post-condition

Tier 2, cross-checked by Grok (xAI), verdict PROCEED. It confirmed the non-release bump is correct rather than something to defer to cut_release.py, confirmed 4.6.0 as the right increment for an additive capability, and judged the surface list accurate. Its two non-blocking suggestions are handled: all seven surfaces verified present in the diff by enumeration, and the changelog fragment's summary aligned with the template's seven.

Post-condition: check_release_consistency.py reports OK at 4.6.0 on the merge commit, and the next release cut starts from a correct version rather than one that silently lagged a shipped change.

author: claude
standing_directives: verify a premise before acting on it; pay the version debt a shipped change incurred; document a procedure discovered empirically rather than asserted; generated-file parity; no raw provider command or credential in the public tree
tier: 2
cross_check: PROCEED (grok, xai family, architecture route, read-only) - confirmed the non-release bump is correct and 4.6.0 the right increment, judged the seven-surface list accurate; both non-blocking suggestions integrated (all seven surfaces enumerated and verified present; changelog fragment aligned with the template)
post_condition: check_release_consistency.py OK at 4.6.0 with all ten surface assertions passing; 658 + 319 tests green; the next release cut starts from a version that reflects the shipped change
mcp_coverage_gap: NONE
contributor_rights: OWNER-AUTHORED
operator_reserved: no

Generated with Claude Code

sumitake and others added 2 commits July 29, 2026 21:16
Closes #78, by disproving its premise rather than acting on it.

#78 claimed the template's version-bump checkbox was unsatisfiable for a content
PR, because check_release_consistency.py appeared to require the generated
CHANGELOG.md to move with the version while the template reserves that file to
release PRs. That is wrong. At PR time the version requirement is met by a
changelog.d fragment naming the version; the generated CHANGELOG.md is only the
post-release form. Verified by performing the bump and getting a clean result.

What actually happened is that the first attempt missed three surfaces and I
concluded the gate was impossible instead of finding them. A fourth surface --
the nested skill_version in scripts/skill-build-config.json, which stamps all 47
generated SKILL.md files -- surfaced only when the distribution-contract test
caught it, and a fifth mistake (adding a NEW top-level key rather than editing
the nested one) made the build silently no-op.

So: bump to 4.6.0 across all seven surfaces, and replace the one-line checkbox
with the enumerated list plus the two regeneration steps and the nested-key
warning. #77 changed distributed content and should have carried this bump; it
did not, for the reason above.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Cross-check nit: the fragment listed fewer surfaces than the template, omitting
the nested skill_version and its SKILL.md fan-out.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f0cb31a3a4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
PR review bot, correctly. Bumping the whatsnew heading with a string replace
retitled the existing 4.5.4 entry as 4.6.0, so the section described the Gemini
containment change under the new version and the 4.5.4 section disappeared --
mislabelled release notes for both versions.

Add a 4.6.0 entry describing what actually shipped (the Claude-host active-model
observation from #77) and restore the 4.5.4 heading over the Gemini item.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sumitake
sumitake merged commit 278d54f into main Jul 30, 2026
16 checks passed
@sumitake
sumitake deleted the dev/claude/pr-template-version-scope branch July 30, 2026 04:28

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc62bbbf85

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +20 to +21
4. root `README.md` — the summary-table row **and** the `## What's new - vX.Y.Z` heading (two separate edits)
5. `plugins/agent-collab/README.md` — `Current: **X.Y.Z**` **and** the "this same X.Y.Z package" line

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge List every README version anchor in the bump procedure

When a contributor follows this new seven-surface procedure, these entries omit the package version in the root README introduction and the source-tree version in the package README. A repo-wide search for 4.5.4 demonstrates the regression in this commit: plugins/agent-collab/README.md:187 still says “This 4.5.4 source tree” while the manifests and other documentation declare 4.6.0, and check_release_consistency.py nevertheless passes. Include all README anchors in the procedure and consistency check so future bumps cannot leave contradictory distributed documentation.

Useful? React with 👍 / 👎.

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.

PR template's version-bump checkbox is unsatisfiable for content PRs

1 participant