Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
0417b54
feat(marketplace): distribute Magpie 0.2.0 via agent plugin marketplaces
potiuk Jul 19, 2026
a749ef5
feat(marketplace): auto-detect plugin updates and prompt for upgrade
potiuk Jul 19, 2026
e3a9006
feat(marketplace): prompt Codex and Gemini users to run upgrade
potiuk Jul 19, 2026
4f6223e
docs(readme): fold #901 README simplification; lead with install (ado…
potiuk Jul 19, 2026
94afe9f
docs(readme): project adopts Magpie; installation is the mechanism
potiuk Jul 19, 2026
4a9e1f5
docs(readme): explain adopt (relationship) vs install (process) in th…
potiuk Jul 19, 2026
a5cc86d
docs(marketplaces): detailed per-agent install steps from the GitHub …
potiuk Jul 19, 2026
558ece5
feat(marketplace): split into per-family plugins to cut always-on tok…
potiuk Jul 19, 2026
95fac77
build(prek): add check-family-plugins hook; document Windows symlink …
potiuk Jul 19, 2026
f98880f
docs(marketplaces): explain all-in-one vs per-family install trade-offs
potiuk Jul 19, 2026
047b71f
docs(marketplaces): flag marketplace support as experimental; point t…
potiuk Jul 19, 2026
05fa2e3
docs(marketplaces): explain skill-name differences across install met…
potiuk Jul 19, 2026
0bddcb6
fix(security): close files in check-family-plugins; use pathlib
potiuk Jul 19, 2026
d0f59ed
build(prek): validate all plugin manifests, not just family symlinks
potiuk Jul 19, 2026
1265aba
fix(marketplace): give family plugins version + author metadata
potiuk Jul 29, 2026
4189362
fix(marketplace): mirror pyproject's dev version in every manifest
potiuk Jul 30, 2026
cc86a20
feat(marketplace): support Agent Plugins 1.0 alongside the client man…
potiuk Aug 13, 2026
bc52210
fix(marketplace): close the open items from the review of #907
potiuk Aug 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"name": "apache-magpie",
"interface": { "displayName": "Apache Magpie" },
"plugins": [
{
"name": "magpie",
"source": { "source": "local", "path": "." },
"category": "maintenance",
"policy": { "installation": "manual", "authentication": "none" }
}
]
}
76 changes: 76 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"name": "apache-magpie",
"owner": {
"name": "Apache Magpie",
"url": "https://magpie.apache.org/"
},
"description": "Apache Magpie agentic skills for maintaining open-source projects. Install the all-in-one `magpie` plugin, or per-family plugins to load only what you use.",
"plugins": [
{
"name": "magpie",
"source": ".",
"version": "0.2.0.dev0",
"description": "All Apache Magpie skills (all 10 families; ~21.7k always-on tokens)."
},
{
"name": "magpie-contributor-growth",
"source": "./plugins/magpie-contributor-growth",
"version": "0.2.0.dev0",
"description": "Apache Magpie contributor-growth family (6 skills)."
},
{
"name": "magpie-issue",
"source": "./plugins/magpie-issue",
"version": "0.2.0.dev0",
"description": "Apache Magpie issue family (8 skills)."
},
{
"name": "magpie-mentoring",
"source": "./plugins/magpie-mentoring",
"version": "0.2.0.dev0",
"description": "Apache Magpie mentoring family (4 skills)."
},
{
"name": "magpie-pairing",
"source": "./plugins/magpie-pairing",
"version": "0.2.0.dev0",
"description": "Apache Magpie pairing family (2 skills)."
},
{
"name": "magpie-pr-management",
"source": "./plugins/magpie-pr-management",
"version": "0.2.0.dev0",
"description": "Apache Magpie pr-management family (8 skills)."
},
{
"name": "magpie-release-management",
"source": "./plugins/magpie-release-management",
"version": "0.2.0.dev0",
"description": "Apache Magpie release-management family (10 skills)."
},
{
"name": "magpie-repo-health",
"source": "./plugins/magpie-repo-health",
"version": "0.2.0.dev0",
"description": "Apache Magpie repo-health family (7 skills)."
},
{
"name": "magpie-security",
"source": "./plugins/magpie-security",
"version": "0.2.0.dev0",
"description": "Apache Magpie security family (12 skills)."
},
{
"name": "magpie-setup",
"source": "./plugins/magpie-setup",
"version": "0.2.0.dev0",
"description": "Apache Magpie setup family (9 skills)."
},
{
"name": "magpie-utilities",
"source": "./plugins/magpie-utilities",
"version": "0.2.0.dev0",
"description": "Apache Magpie utilities family (4 skills)."
}
]
}
33 changes: 33 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"name": "magpie",
"version": "0.2.0.dev0",
"description": "Apache Magpie — a reusable, governance-agnostic framework of agentic skills for maintaining open-source projects: release management, security triage, PR and issue workflows, contributor growth, and repo health.",
"author": { "name": "Apache Magpie", "url": "https://magpie.apache.org/" },
"homepage": "https://magpie.apache.org/",
"repository": "https://github.com/apache/magpie",
"license": "Apache-2.0",
"keywords": [
"apache",
"agent-skills",
"maintenance",
"release-management",
"security",
"pr-management",
"open-source"
],
"skills": "./skills",
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/check-upgrade.sh",
"timeout": 10
}
]
}
]
}
}
19 changes: 19 additions & 0 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "magpie",
"version": "0.2.0.dev0",
"description": "Apache Magpie — agentic skills for maintaining open-source projects.",
"skills": "./skills",
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "${PLUGIN_ROOT}/hooks/check-upgrade.sh",
"timeout": 10
}
]
}
]
}
}
16 changes: 16 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,22 @@ repos:
files: ^(\.gitattributes|\.(agents|claude|github|kiro)/skills/.*|skills/.*|projects/_template/.*)$
types_or: [symlink, file]
pass_filenames: false
# Marketplace-plugin consistency guard. Validates that every plugin is
# properly defined and in sync with the skills' `family:` frontmatter (the
# source of truth): the all-in-one `magpie` manifest + its upgrade-hook
# script, each per-family manifest (name / skills / description), every
# `.claude-plugin/marketplace.json` entry resolving to a matching, uniquely
# named plugin.json, and each family's skills present as single-hop symlinks
# into the shared skills/ tree. Catches a new skill, a changed family, a stale
# symlink, or a malformed manifest. `--fix` regenerates the family plugins.
- repo: local
hooks:
- id: check-family-plugins
name: check-family-plugins (marketplace plugins vs frontmatter)
language: system
entry: python3 tools/dev/check-family-plugins.py
files: ^(skills/.*/SKILL\.md|plugins/.*|\.claude-plugin/(marketplace|plugin)\.json|\.codex-plugin/plugin\.json|\.agents/plugins/marketplace\.json|(plugin|marketplace)\.json|gemini-extension\.json|apm\.yml|pyproject\.toml|hooks/check-upgrade\.sh)$
pass_filenames: false
# Workspace-membership guard. The single source of truth for
# which Python projects get pre-commit hooks + the CI pytest
# matrix is the `[tool.uv.workspace] members` array in the root
Expand Down
38 changes: 38 additions & 0 deletions GEMINI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*

- [Apache Magpie — Gemini CLI extension context](#apache-magpie--gemini-cli-extension-context)
- [Upgrade prompt](#upgrade-prompt)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

<!-- SPDX-License-Identifier: Apache-2.0
https://www.apache.org/licenses/LICENSE-2.0 -->

# Apache Magpie — Gemini CLI extension context

This context ships with the Apache Magpie Gemini CLI extension. Gemini has no
plugin update/lifecycle hook (unlike Claude Code), so this file is how the
extension prompts you to reconcile after an update.

## Upgrade prompt

The Magpie extension declares its version in `gemini-extension.json`. At the
start of a session, compare that `version` against the value you last recorded
in `magpie-plugin-version` under the extension's state directory (create the
file if it does not exist):

- If the version has **changed** since you last recorded it — the marketplace
updated the extension — tell the user, once and non-intrusively:

> Apache Magpie was updated to `<version>`. If this repo adopts Magpie, run
> `/magpie-setup upgrade` to reconcile the snapshot, agentic overrides, and
> drift.

Then record the new version.

- If the version is unchanged, say nothing.

Never run the upgrade yourself: `/magpie-setup upgrade` is a guided,
user-confirmed action, and Magpie never mutates an adopter repo unattended.
Loading