Skip to content

feat(marketplace): distribute Magpie 0.2.0 via agent marketplaces + auto-upgrade hook#907

Draft
potiuk wants to merge 3 commits into
apache:mainfrom
potiuk:feat/marketplace-distribution-0.2.0
Draft

feat(marketplace): distribute Magpie 0.2.0 via agent marketplaces + auto-upgrade hook#907
potiuk wants to merge 3 commits into
apache:mainfrom
potiuk:feat/marketplace-distribution-0.2.0

Conversation

@potiuk

@potiuk potiuk commented Jul 19, 2026

Copy link
Copy Markdown
Member

Prepares Apache Magpie 0.2.0 for release through existing agent-skill marketplaces, and wires automatic upgrade detection. Refs #518.

Approach

Package the whole framework as a single magpie plugin whose skills points at the existing ./skills tree — no file moves, no vendored copies, no symlinks (PRINCIPLES §13 intact). The marketplace path is positioned as a discovery/trial channel alongside /magpie-setup full adoption; the canonical release stays the signed ASF source artefact on dist.apache.org.

Manifests added (one plugin, referenced by each ecosystem)

Ecosystem Files Confidence
Claude Code .claude-plugin/marketplace.json, .claude-plugin/plugin.json authoritative (current docs)
Gemini CLI gemini-extension.json (skills auto-discovered) authoritative
Codex CLI .codex-plugin/plugin.json, .agents/plugins/marketplace.json best-effort — verify
GitHub Copilot marketplace.json (repo root) best-effort — verify
microsoft/apm apm.yml (type: skill, multiplexes to Claude/Cursor/Codex/Copilot/Gemini) best-effort, schema v0.1 — verify
Cursor / Kiro / OpenCode consume the above / native SKILL.md git-install docs only
Windsurf / Goose no SKILL.md path (documented)

Plus docs/setup/marketplaces.md (per-agent install + the non-mappings) and version_manifest_files wiring so release-prepare keeps the manifest versions in sync with pyproject.toml.

Auto-upgrade detection

A Claude Code SessionStart hook (hooks/check-upgrade.sh) detects when the marketplace updated the plugin to a new version and prompts /magpie-setup upgrade to reconcile snapshot/overrides/drift. Detect-and-prompt, not auto-run — Claude Code hooks cannot invoke a slash command, and Magpie never mutates an adopter repo without the guided skill's confirmation (also avoids the auto-running-hook risk raised on #518). Claude Code-only; Codex/Gemini have no equivalent lifecycle hook.

Reviewer notes

  • Supersedes docs(readme): mark public skill marketplace as not yet implemented #905's README wording — this makes the "public skill marketplace" real, so the "planned but not yet implemented" note becomes "installable via …". docs(readme): mark public skill marketplace as not yet implemented #905 can be closed as superseded (or merged first and this rebased).
  • Namespacing to verify: skills carry name: magpie-<x> frontmatter, so under a plugin named magpie invocation may double up (/magpie:magpie-release-vote-tally). Test against a live install; if so, we either drop the magpie- frontmatter prefix or rename the plugin.
  • The best-effort manifests should be validated against each vendor's current tool before an actual marketplace publish — none of them affect how the ASF source release is built or signed.

Opened as draft pending that live validation.

potiuk added 3 commits July 19, 2026 05:31
Package the framework as a single 'magpie' plugin (skills: ./skills, all 70)
and add the manifests each agent marketplace needs, referencing the existing
skills tree with no vendored copies:

- Claude Code:  .claude-plugin/marketplace.json + plugin.json
- Codex CLI:    .codex-plugin/plugin.json + .agents/plugins/marketplace.json
- Copilot:      marketplace.json (repo root)
- Gemini CLI:   gemini-extension.json (skills auto-discovered)
- microsoft/apm: apm.yml (type: skill; multiplexes to Claude/Cursor/Codex/Copilot/Gemini)

Adds docs/setup/marketplaces.md (per-agent install, incl. Kiro/OpenCode
git-install and the Windsurf/Goose non-mappings), positions the marketplace
path as a discovery/trial channel alongside /magpie-setup, keeps the ASF
source release canonical, and wires the version-bearing manifests into
version_manifest_files so release-prepare keeps them in sync.

Refs apache#518.
Add a Claude Code SessionStart hook (hooks/check-upgrade.sh, wired via the
plugin's hooks block) that detects when the marketplace has updated the
Magpie plugin to a new version and prompts the user to run
`/magpie-setup upgrade` to reconcile the snapshot, agentic overrides, and
drift.

Detect-and-prompt, not auto-run: Claude Code hooks cannot invoke a slash
command, and Magpie never mutates an adopter repo without the guided skill's
confirmation, so the trigger is automatic while the changes stay confirmed.
Claude Code-only; Codex/Gemini have no equivalent lifecycle hook.
Extend the update-detection prompt beyond Claude Code:

- Make hooks/check-upgrade.sh agent-neutral (resolves CLAUDE_/CODEX_ plugin
  root+data env vars; reads version from whichever plugin manifest is present).
- Codex CLI: wire the same script via the plugin's hooks block (schema
  best-effort, flagged for verification before publish).
- Gemini CLI: ship GEMINI.md extension context (contextFileName) instructing
  the agent to compare the extension version to a recorded marker and prompt
  for /magpie-setup upgrade on change — Gemini has no lifecycle hook.

Documented per-agent in docs/setup/marketplaces.md.
@potiuk
potiuk force-pushed the feat/marketplace-distribution-0.2.0 branch from 4864c08 to 1ecaade Compare July 19, 2026 03:32
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