Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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",
"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",
"description": "Apache Magpie contributor-growth family (6 skills)."
},
{
"name": "magpie-issue",
"source": "./plugins/magpie-issue",
"version": "0.2.0",
"description": "Apache Magpie issue family (8 skills)."
},
{
"name": "magpie-mentoring",
"source": "./plugins/magpie-mentoring",
"version": "0.2.0",
"description": "Apache Magpie mentoring family (4 skills)."
},
{
"name": "magpie-pairing",
"source": "./plugins/magpie-pairing",
"version": "0.2.0",
"description": "Apache Magpie pairing family (2 skills)."
},
{
"name": "magpie-pr-management",
"source": "./plugins/magpie-pr-management",
"version": "0.2.0",
"description": "Apache Magpie pr-management family (8 skills)."
},
{
"name": "magpie-release-management",
"source": "./plugins/magpie-release-management",
"version": "0.2.0",
"description": "Apache Magpie release-management family (10 skills)."
},
{
"name": "magpie-repo-health",
"source": "./plugins/magpie-repo-health",
"version": "0.2.0",
"description": "Apache Magpie repo-health family (7 skills)."
},
{
"name": "magpie-security",
"source": "./plugins/magpie-security",
"version": "0.2.0",
"description": "Apache Magpie security family (12 skills)."
},
{
"name": "magpie-setup",
"source": "./plugins/magpie-setup",
"version": "0.2.0",
"description": "Apache Magpie setup family (9 skills)."
},
{
"name": "magpie-utilities",
"source": "./plugins/magpie-utilities",
"version": "0.2.0",
"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",
"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",
"description": "Apache Magpie — agentic skills for maintaining open-source projects.",
"skills": "./skills",
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "${CODEX_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|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