Skip to content

fix(rulestead): replace core-inherited changelog with the package's own - #86

Merged
szTheory merged 1 commit into
mainfrom
fix/rulestead-changelog-companion-history
Jul 28, 2026
Merged

fix(rulestead): replace core-inherited changelog with the package's own#86
szTheory merged 1 commit into
mainfrom
fix/rulestead-changelog-companion-history

Conversation

@szTheory

Copy link
Copy Markdown
Owner

What was wrong

packages/crosswake_rulestead/CHANGELOG.md was core's changelog, verbatim. It documented:

  • the route policy DSL, bounded bridge contract, offline islands, commerce corridors
  • SwiftPM / Maven Central shell-core publishing
  • the RevenueCat provider seam
  • the v9.0 brandbook

None of which are rulestead. Its compare links pointed at core's v0.1.0 / v0.1.2 tags rather than any crosswake_rulestead-v* tag, and it asserted "The current published Hex release is 0.1.2" — for a package that has never published at all.

Why it matters

CHANGELOG.md is in that package's files: allowlist:

files: ~w(lib mix.exs README.md LICENSE CHANGELOG.md)

So this file ships in the tarball and renders as rulestead's changelog on hex.pm. Hex publishes are irreversible. Had crosswake_rulestead gone out — and its Release PR #39 is open right now — core's entire release history would be permanently public under the companion's name.

This is the blocker I flagged on #84 as must-fix-before-any-future-publish. Fixing it now, while it's still cheap.

The fix

Replaced with a clean companion changelog mirroring the crosswake_rindle precedent: independent-versioning note + a single [Unreleased] extraction entry, plus a plain statement that the package is not yet on Hex.

Worth noting this was known: .planning/STATE.md records that rindle was deliberately given "a clean [Unreleased] skeleton, not core-inherited rulestead history" — rulestead's was simply never gone back and fixed.

Why it survived

No gate asserted on this file. grep across test/, script/, lib/, .github/ finds zero references to any per-package CHANGELOG.md content. Worth considering a publish-readiness check that a companion's changelog doesn't mention core-only surfaces — noted, not done here.

Tests

phase42_rulestead_companion + phase43_rulestead_advisory + phase130_extraction_guards + phase52_operator_truth22 tests, 0 failures.

🤖 Generated with Claude Code

`packages/crosswake_rulestead/CHANGELOG.md` was core's changelog, verbatim. It
documented the route policy DSL, the bounded bridge contract, commerce corridors,
SwiftPM/Maven shell-core publishing, the RevenueCat seam, and the v9.0 brandbook —
none of which are rulestead. Its compare links pointed at core's `v0.1.0`/`v0.1.2`
tags rather than any `crosswake_rulestead-v*` tag, and it asserted "the current
published Hex release is 0.1.2" for a package that has never published at all.

`CHANGELOG.md` is in that package's `files:` allowlist, so this file ships in the
tarball and renders as rulestead's changelog on hex.pm. Hex publishes are
irreversible — had `crosswake_rulestead` gone out, core's release history would be
permanently public under the companion's name.

Replaced with a clean companion changelog mirroring the `crosswake_rindle`
precedent (independent-versioning note + a single `[Unreleased]` extraction entry),
and stated plainly that the package is not yet on Hex.

This was flagged but never fixed when rindle was given its clean skeleton — see
`.planning/STATE.md`, which notes rindle got "a clean [Unreleased] skeleton, not
core-inherited rulestead history."

No gate asserted on this file, which is why it survived.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@szTheory
szTheory enabled auto-merge July 28, 2026 17:36
@szTheory
szTheory merged commit a36779e into main Jul 28, 2026
73 checks passed
@szTheory
szTheory deleted the fix/rulestead-changelog-companion-history branch July 28, 2026 18:17
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