Skip to content

fix(marketplace): re-sync magpie-agent-guard, and make the prek hook self-correcting - #1174

Merged
potiuk merged 2 commits into
apache:mainfrom
potiuk:fix/family-plugin-version-sync
Sep 8, 2026
Merged

fix(marketplace): re-sync magpie-agent-guard, and make the prek hook self-correcting#1174
potiuk merged 2 commits into
apache:mainfrom
potiuk:fix/family-plugin-version-sync

Conversation

@potiuk

@potiuk potiuk commented Sep 8, 2026

Copy link
Copy Markdown
Member

Two commits.

1. Re-sync magpie-agent-guard. #1169 stamped the framework version to 0.2.0.dev202609081000 across every ecosystem manifest. #1170 landed right after it, adding the magpie-agent-guard plugin — a new file, branched before the bump and therefore carrying the previous stamp 0.2.0.dev202609080121. New files do not conflict, so both merged cleanly and main was left with a family plugin one stamp behind the root manifest it inherits from. check-family-plugins has failed on main ever since, which is what shows up as a red prek job on unrelated PRs such as #1167.

Contents are --fix output; no hand edits.

2. Run the hook as --fix. The hook was check-only, so drift handed the contributor an instruction instead of a fixed tree. The generated files are a pure function of the skills' family: frontmatter and pyproject.toml's version, so the fixer is the only correct response to any failure the check can report. prek fails a run whose hook modified files, so drift still stops the commit — it now arrives already corrected, needing only a re-stage, as end-of-file-fixer and add-license-headers already do here. --fix's own exit code is unchanged, since the release-bump procedure invokes it in plain shell blocks.

What this does not fix. The cross-PR case above — two PRs green in isolation, conflict-free on merge, out of sync in the result — is invisible to a local hook. Only a check on main or a merge queue catches it. Worth a follow-up.

🤖 Generated with Claude Code

https://claude.ai/code/session_015qpVgY8ADkD9c7vYZk5imP

`apache#1169` stamped the framework version to `0.2.0.dev202609081000` across
every ecosystem manifest. `apache#1170` landed right after it, adding the
`magpie-agent-guard` plugin — a *new* file, branched before the bump and
therefore carrying the previous stamp `0.2.0.dev202609080121`. New files
do not conflict, so both merged cleanly and `main` was left with a family
plugin one stamp behind the root manifest it inherits from.

`check-family-plugins` has failed on `main` ever since, which is why an
unrelated dependabot PR (apache#1167) shows a red `prek` job it did not cause.

`python3 tools/dev/check-family-plugins.py --fix` output; no hand edits.

Generated-by: Claude Code (Opus 5)
The `check-family-plugins` hook ran check-only, so a contributor whose
manifests drifted got an instruction — "run
`tools/dev/check-family-plugins.py --fix`" — rather than a fixed tree. The
generated files are a pure function of the skills' `family:` frontmatter and
`pyproject.toml`'s version, so there is nothing for them to decide: the fixer
is the only correct response to every failure the check can report.

Run the hook as `--fix`. prek fails a run whose hook modified files, so drift
still stops the commit; it now arrives already corrected, needing only a
re-stage — the same convention `end-of-file-fixer`, `trailing-whitespace`, and
`add-license-headers` already follow here.

`--fix`'s exit code is deliberately left alone: the release-bump procedure
invokes it directly in plain shell blocks, where returning non-zero on a
successful regeneration would read as failure.

Scope note: this closes the hand-fix gap for anyone who runs the hooks, but it
cannot catch the cross-PR case that broke `main` this morning — two PRs green
in isolation, conflict-free on merge, out of sync in the result. Only a check
on `main` (or a merge queue) sees that.

Docs describing the hook as check-only updated to match.

Generated-by: Claude Code (Opus 5)
@potiuk potiuk changed the title fix(marketplace): re-sync magpie-agent-guard with the dev version stamp fix(marketplace): re-sync magpie-agent-guard, and make the prek hook self-correcting Sep 8, 2026
@potiuk
potiuk merged commit 6a1e37e into apache:main Sep 8, 2026
9 checks passed
potiuk added a commit to potiuk/magpie that referenced this pull request Sep 9, 2026
Seven changes have landed behind the previous stamp: the agent-guard plugin
move (apache#1170), the doctoc URL fix (apache#1171), the marketplace re-sync plus the
self-correcting prek hook (apache#1174), the vetted command surface (apache#1176), and the
three PRs that extended its catalogue from 19 to 58 operations (apache#1177, apache#1178,
apache#1179). `claude plugin update` compares version strings, so none of that
reaches an adopter until the stamp moves.

Mechanical: `project.version` edited, then
`tools/dev/check-family-plugins.py --fix` propagated it to the five ecosystem
manifests and the eleven per-family plugin manifests plus the marketplace
entries, and `uv lock` refreshed the workspace's own package version.

Generated-by: Claude Code (Opus 5)
potiuk added a commit that referenced this pull request Sep 9, 2026
Seven changes have landed behind the previous stamp: the agent-guard plugin
move (#1170), the doctoc URL fix (#1171), the marketplace re-sync plus the
self-correcting prek hook (#1174), the vetted command surface (#1176), and the
three PRs that extended its catalogue from 19 to 58 operations (#1177, #1178,
#1179). `claude plugin update` compares version strings, so none of that
reaches an adopter until the stamp moves.

Mechanical: `project.version` edited, then
`tools/dev/check-family-plugins.py --fix` propagated it to the five ecosystem
manifests and the eleven per-family plugin manifests plus the marketplace
entries, and `uv lock` refreshed the workspace's own package version.

Generated-by: Claude Code (Opus 5)
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