Skip to content

Fork the version line to 6.2.0-heyi.1 and guard drift in CI#15

Merged
liqiongyu merged 1 commit into
devfrom
fix/version-drift-heyi-line
Jul 8, 2026
Merged

Fork the version line to 6.2.0-heyi.1 and guard drift in CI#15
liqiongyu merged 1 commit into
devfrom
fix/version-drift-heyi-line

Conversation

@liqiongyu

Copy link
Copy Markdown

Targeting dev per the fork's dev-first convention (PR #14 restored dev-first; dev already contains main / v6.2.0, so this diff is just the seven-file version change plus the guard).

Who is submitting this PR? (required)

Field Value
Your model + version Claude Opus 4.8 (1M context), claude-opus-4-8[1m]
Harness + version Claude Code 2.1.204
All plugins installed superpowers@superpowers-dev (this fork) + claude-plugins-official set (commit-commands, code-review, context7, frontend-design, playwright, pr-review-toolkit, chrome-devtools-mcp, typescript-lsp, skill-creator, claude-md-management, ralph-loop)
Human partner who reviewed this diff Repo owner — reviewed the complete diff in-session and authorized commit + PR

What problem are you trying to solve?

Releasing v6.2.0 (the repository-claiming-protocol release) hand-edited only the two Claude manifests. The other five version-carrying files were left at 6.1.1:

package.json                6.1.1
.claude-plugin/plugin.json  6.2.0   <- only these two moved
.cursor-plugin/plugin.json  6.1.1
.codex-plugin/plugin.json   6.1.1
.kimi-plugin/plugin.json    6.1.1
.claude-plugin/marketplace  6.2.0
gemini-extension.json       6.1.1

Both Claude Code and Codex gate plugin updates on the version string changing — verified against Claude Code 2.1.204's update gate (o.version === v string equality) and openai/codex core-plugins source (IfVersionChanged string equality), neither uses SemVer precedence. Consequence: Codex / Cursor / Kimi / Gemini users installed at 6.1.1 never refresh to the 6.2.0 claiming-protocol content, because the version string they see never changed. The repo already ships scripts/bump-version.sh to keep all seven manifests in sync, but the release bypassed it and nothing in CI catches the drift.

Separately, the fork had been reusing upstream's clean SemVer line (6.1.2, 6.2.0). Upstream will eventually publish its own 6.1.2 / 6.2.0 with different content, so the numbers collide.

What does this PR change?

Runs bump-version.sh to sync all seven manifests onto an independent fork version line, 6.2.0-heyi.1, and adds a version-consistency gate to fork-tests CI plus a pre-commit hook, so a future partial bump fails loudly instead of silently shipping stale content.

Is this change appropriate for the core library?

This is fork-internal infrastructure (version line + drift guard) for heyi-co/superpowers. It is NOT proposed for upstream obra/superpowers. The -heyi.N scheme and the fork CI are fork-specific by design.

What alternatives did you consider?

Three options were weighed against verified Claude/Codex update mechanics:

  • X — sync only, keep 6.2.0. Stops the drift but keeps colliding with upstream's number line. Rejected: leaves the collision.
  • Z — full identity split (rename plugin to superpowers-heyi, own marketplace, own metadata/README). Rejected for now: the fork is self-use only; renaming the marketplace has no migration path, and renaming the plugin orphans existing Codex installs. A prior heyi-sp/heyi-sp-dev naming attempt was already reverted.
  • Y — sync + fork version line 6.2.0-heyi.N + CI guard (this PR). Chosen: kills the collision, keeps identity stable (no forced reinstall for users), low cost, and both harnesses accept the -heyi.N string verbatim.

Does this PR contain multiple unrelated changes?

No. Every change serves one goal: correct and guard the plugin version across manifests.

Existing PRs

Environment tested

Harness Harness version Model Model version/ID
Claude Code 2.1.204 Claude Opus 4.8 (1M context) claude-opus-4-8[1m]

Verification performed:

  • bash scripts/bump-version.sh --check -> exit 0, all 7 manifests in sync at 6.2.0-heyi.1.
  • pre-commit run version-sync-check --all-files -> Passed.
  • Drift-detection path confirmed: the same --check returned exit 1 on the pre-fix state (5x 6.1.1 vs 2x 6.2.0).

New harness support (required if this PR adds a new harness)

N/A — no new harness.

Evaluation

N/A — this is a version / infrastructure change, not a behavior-shaping skill change. No skill content is modified; verification is mechanical (see Environment tested).

Rigor

  • Skills change — N/A, no skill content touched.
  • Change was verified beyond the happy path (drift-detection exit-1 path confirmed, not just the in-sync path).
  • No carefully-tuned behavior-shaping content modified.

Human review

  • A human has reviewed the COMPLETE proposed diff before submission

v6.2.0 hand-edited only the Claude manifests, leaving .codex-plugin,
.cursor-plugin, .kimi-plugin, gemini-extension.json, and package.json
at 6.1.1. Both Claude Code and Codex gate updates on the version STRING
changing, so users installed at 6.1.1 never refreshed to the 6.2.0
claiming-protocol content.

- Sync all 7 manifests via bump-version.sh onto an independent fork
  version line (6.2.0-heyi.1) that no longer collides with upstream.
- Add a version-consistency check to fork-tests CI and a pre-commit
  hook so a future partial bump fails loudly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017pGrJ7Ai49UYKFjKVshoXy
@liqiongyu liqiongyu merged commit 8abe472 into dev Jul 8, 2026
1 check passed
@liqiongyu liqiongyu deleted the fix/version-drift-heyi-line branch July 8, 2026 09:12
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