| { |
| "_comment": "GENERATED by scripts/gen-tools.mjs — do not edit by hand. Derives from apache/magpie tools/, spec-loop specs, skills/, docs/, and organizations/.", |
| "capabilities": { |
| "triage": "Sweep a queue, classify candidates, propose dispositions for human confirmation.", |
| "review": "Deep per-item code review of a PR or local diff; also contributor mentoring (single-item teaching intervention).", |
| "fix": "Implement a code change against an upstream repo to resolve a triaged issue.", |
| "intake": "Import external signal (mailing list, scan report, public PR) into a tracker entry, or keep an existing entry reconciled with one of those sources.", |
| "reconciliation": "Compare tracker state against an external inventory (e.g. ASF security dashboard, organization-wide issue registry); surface drift; propose corrections. Does **not** write to either source.", |
| "resolve": "Close-out actions: invalidate, dedupe, CVE-allocate, post-announcement housekeeping.", |
| "reassess": "Re-run resolved or end-of-life issues against current code to verify still-fixed / still-broken.", |
| "stats": "Read-only dashboards, metrics, governance evidence, contributor nomination briefs.", |
| "platform": "Framework / agent substrate skills: install, verify, update, doctor, override-upstream, status, shared-config-sync, the `setup` bootstrap.", |
| "authoring": "Skills that author or maintain other skills: `write-skill`, `optimize-skill`." |
| }, |
| "contracts": { |
| "tracker": "Issue / board / label backend.", |
| "source-control": "Branch / commit / diff / push (VCS).", |
| "change-request": "Proposed-change review + merge gate (pull request / merge request / Gerrit change).", |
| "mail-archive": "Mailing-list / forum archive reads.", |
| "mail-source": "Inbound-mail ingestion (mbox / IMAP / …).", |
| "mail-create": "Outbound mail composition. Always produces an editable draft; sending is a separate human-approved step on that draft (draft mode = default and the only mode implemented today; send mode declared but unimplemented — no autonomous send).", |
| "cve-authority": "CVE allocation / record management / publication.", |
| "report-relay": "Inbound security-report relay detection.", |
| "scan-format": "Security-scanner report parsing.", |
| "project-metadata": "Governance rosters / people / releases." |
| }, |
| "substrates": { |
| "analytics": "Read-only metrics / dashboards / renderers.", |
| "sandbox": "Agent isolation, egress control, settings audit.", |
| "action-guard": "Deterministic pre-tool-use command guards.", |
| "privacy": "PII redaction / approved-LLM gating.", |
| "framework-dev": "Build / validate / eval the framework itself." |
| }, |
| "tools": [ |
| { |
| "name": "agent-guard", |
| "title": "agent-guard", |
| "description": "A deterministic pre-execution guard dispatcher. It inspects every shell command rule — protections that must not depend on the model remembering a SKILL.md instruction.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "action-guard" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "Claude Code, OpenCode, Kiro", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/agent-guard" |
| }, |
| { |
| "name": "agent-isolation", |
| "title": "agent-isolation", |
| "description": "This directory ships the moving pieces the framework's docs/setup/secure-agent-setup.md document references. It is not a Python project (unlike the sibling tools under tools/cve-tool-vulnogram/ and tools/gmail/oauth-draft/) — these are…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "sandbox" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/agent-isolation" |
| }, |
| { |
| "name": "apache-projects", |
| "title": "apache-projects", |
| "description": "ASF project-metadata substrate. Read-only, unauthenticated client for the official apache/comdev apache-projects-mcp server, which wraps the public projects.apache.org/json feeds (committee / committer rosters, people + Apache IDs,…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "project-metadata" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "ASF", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": { |
| "server": "apache-projects — apache/comdev", |
| "prefix": "mcp__apache-projects__*" |
| }, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/apache-projects" |
| }, |
| { |
| "name": "asf-svn", |
| "title": "asf-svn", |
| "description": "ASF SVN tool adapter — the Subversion counterpart to tools/github/. Where the GitHub tool covers forge issues, project boards, and Git-backed source control, this adapter covers the SVN surfaces that every ASF project uses regardless of…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "source-control" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Subversion", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/asf-svn" |
| }, |
| { |
| "name": "bitbucket", |
| "title": "Bitbucket forge bridge", |
| "description": "Bitbucket Cloud and Bitbucket Data Center bridge for Magpie adopters that use Bitbucket as a forge, pull-request review surface, or Jira-paired Atlassian backend.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "change-request" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Atlassian", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/bitbucket" |
| }, |
| { |
| "name": "change-request", |
| "title": "change-request", |
| "description": "The framework's change-proposal adapter contract: the seam that lets a project drive PR-shaped review-and-merge work over a backend that is *not* a GitHub pull request. Today every pr-management-* skill is hardwired to gh pr — gh pr…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "change-request" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/change-request" |
| }, |
| { |
| "name": "cve-org", |
| "title": "cve-org", |
| "description": "CVE.org publication client. Submits CVE records via the CVE.org REST API; consumed by security-cve-allocate once a CVE has been allocated via the ASF Vulnogram path. See tool.md for the protocol detail and cve.org field mapping.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "cve-authority" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "CVE.org", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/cve-org" |
| }, |
| { |
| "name": "cve-tool", |
| "title": "cve-tool", |
| "description": "The framework's CVE-tooling adapter contract. Today every CVE-aware skill in this repository — security-cve-allocate, security-issue-sync, security-issue-invalidate, security-issue-deduplicate — speaks Vulnogram. They embed Vulnogram's…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "cve-authority" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": null, |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/cve-tool" |
| }, |
| { |
| "name": "cve-tool-vulnogram", |
| "title": "cve-tool-vulnogram", |
| "description": "ASF Vulnogram CVE-allocation client. OAuth-authenticated API that allocates a CVE ID through the ASF's Vulnogram instance and publishes the CVE record. Consumed by security-cve-allocate. See allocation.md, record.md, and…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "cve-authority" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Vulnogram", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/cve-tool-vulnogram" |
| }, |
| { |
| "name": "dashboard-generator", |
| "title": "Dashboard generator", |
| "description": "Deterministic reference implementations of the dashboard that issue-reassess-stats produces. Adopters who want CI-rendered dashboards (refreshed on schedule, published as a build artefact) use one of these reference scripts instead of…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/dashboard-generator" |
| }, |
| { |
| "name": "dev", |
| "title": "dev", |
| "description": "Framework dev-loop helpers (placeholder check, agent pre-commit hook). Invoked by prek and CI; not consumed by any skill directly. See the individual scripts in this directory for usage.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/dev" |
| }, |
| { |
| "name": "egress-gateway", |
| "title": "egress-gateway", |
| "description": "A local host-allowlisting HTTP(S) forward proxy for the Magpie framework. It is the egress-control chokepoint: framework tools point HTTPS_PROXY/HTTP_PROXY at it, and the gateway rejects any connection to a host that is not on its…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "sandbox" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/egress-gateway" |
| }, |
| { |
| "name": "forwarder-relay", |
| "title": "forwarder-relay", |
| "description": "A forwarder-relay adapter is a pluggable seam that teaches the security skills how to recognise an inbound report that arrived reporter's message to the project), how to extract the original-reporter credit from the relayed body, and…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "report-relay" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/forwarder-relay" |
| }, |
| { |
| "name": "fossil", |
| "title": "Fossil Forge Bridge", |
| "description": "Fossil SCM forge and tracker bridge implementation for the Apache Magpie framework. It integrates version-control checks, ticket tracking, wiki reads, and forum thread reads.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| }, |
| { |
| "kind": "contract", |
| "name": "source-control" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Fossil", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": null, |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/fossil" |
| }, |
| { |
| "name": "github", |
| "title": "github", |
| "description": "GitHub REST + GraphQL substrate. Pure read/write wrapper used by every lifecycle phase (triage / intake / fix / resolve / stats). See tool.md for the operation catalogue and the per-area files (issue-template.md, labels.md,…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| }, |
| { |
| "kind": "contract", |
| "name": "source-control" |
| }, |
| { |
| "kind": "contract", |
| "name": "change-request" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "GitHub", |
| "harness": null, |
| "organization": null, |
| "mcp": { |
| "server": "GitHub MCP", |
| "prefix": "mcp__github__*" |
| }, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/github" |
| }, |
| { |
| "name": "github-body-field", |
| "title": "github-body-field", |
| "description": "Read or rewrite a single ### Field section of a GitHub issue body without bringing the body into agent context.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "GitHub", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/github-body-field" |
| }, |
| { |
| "name": "github-rollup", |
| "title": "github-rollup", |
| "description": "Append to (or create) the status-rollup comment on a GitHub issue without bringing the rollup body into agent context.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "GitHub", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/github-rollup" |
| }, |
| { |
| "name": "gmail", |
| "title": "gmail", |
| "description": "Gmail API substrate. Read + draft-only — never sends. Provides two contracts: mail-source for inbound report intake (search / read a uniform thread/message view) and mail-create for outbound courtesy-reply composition. It implements…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "mail-source" |
| }, |
| { |
| "kind": "contract", |
| "name": "mail-create" |
| }, |
| { |
| "kind": "contract", |
| "name": "mail-archive" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Google", |
| "harness": null, |
| "organization": null, |
| "mcp": { |
| "server": "Gmail — claude.ai", |
| "prefix": "mcp__claude_ai_Gmail__*" |
| }, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/gmail" |
| }, |
| { |
| "name": "jira", |
| "title": "JIRA bridge", |
| "description": "JIRA REST helpers for the issue-* skill family. Adopters with JIRA-based issue trackers wire this in as their tracker bridge; adopters using GitHub Issues or other trackers contribute a parallel tools/<tracker>/ directory.", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Atlassian", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/jira" |
| }, |
| { |
| "name": "jira-patch", |
| "title": "jira-patch", |
| "description": "JIRA-patch change-request adapter — the backend that lets a JIRA-tracker, SVN-hosted project drive the pr-management-* skills over patches attached to JIRA issues instead of GitHub pull requests. It implements the tools/change-request/…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "change-request" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Atlassian", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/jira-patch" |
| }, |
| { |
| "name": "mail-archive", |
| "title": "mail-archive", |
| "description": "This file defines the adapter contract for public mail-archive backends — the seam that lets adopting projects plug a non-ASF archive system (Hyperkitty, Discourse, Google Groups, GitHub Discussions, or none at all) into the same skills…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "mail-archive" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/mail-archive" |
| }, |
| { |
| "name": "mail-patch", |
| "title": "mail-patch", |
| "description": "[PATCH]-mail change-request adapter — the backend that lets a project driving code review over its developer mailing list use the pr-management-* skills. It implements the tools/change-request/ contract for the oldest review mechanism…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "change-request" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "email", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/mail-patch" |
| }, |
| { |
| "name": "mail-source", |
| "title": "mail-source", |
| "description": "Mail-source backend abstraction. Pluggable backends (mbox, IMAP, the Gmail API via tools/gmail, future Mailman 3 / Hyperkitty) that feed the security-issue-import intake pipeline a uniform thread/message view. See contract.md for the…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "mail-source" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/mail-source" |
| }, |
| { |
| "name": "maildir", |
| "title": "maildir", |
| "description": "The local-files mail backend: one vendor-neutral substrate that serves both mail directions the framework needs, using nothing but the on-disk Maildir / mbox formats and the Python standard library. No cloud provider, no account, no…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "mail-source" |
| }, |
| { |
| "kind": "contract", |
| "name": "mail-create" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Maildir", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/maildir" |
| }, |
| { |
| "name": "permission-audit", |
| "title": "permission-audit", |
| "description": "Audit + atomically edit Claude Code's permissions.allow[] entries in <repo>/.claude/settings.json and <repo>/.claude/settings.local.json.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "sandbox" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "Claude Code, OpenCode, Kiro", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/permission-audit" |
| }, |
| { |
| "name": "pilot-report-validator", |
| "title": "pilot-report-validator", |
| "description": "Validates adopter pilot-report files against the required schema defined in docs/pilot-report-template.md. Pilot reports are the feedback artefact that documents an adopter's end-to-end run of an experimental skill family, and are the…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/pilot-report-validator" |
| }, |
| { |
| "name": "ponymail", |
| "title": "ponymail", |
| "description": "PonyMail archive substrate. Read-only ASF mailing-list archive client; complements gmail for threads not present in the inbox. Used by security-issue-import + sync to cross-reference public mailing-list discussions. See tool.md for the…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "mail-archive" |
| }, |
| { |
| "kind": "contract", |
| "name": "mail-source" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "ASF", |
| "harness": null, |
| "organization": "ASF", |
| "mcp": { |
| "server": "PonyMail — apache/comdev", |
| "prefix": "mcp__ponymail__*" |
| }, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/ponymail" |
| }, |
| { |
| "name": "pr-management-stats", |
| "title": "pr-management-stats reference implementation", |
| "description": "Deterministic reference implementation of the data-fetch + classification contract that backs the pr-management-stats skill.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "experimental", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/pr-management-stats" |
| }, |
| { |
| "name": "preflight-audit", |
| "title": "preflight-audit", |
| "description": "Dry-run the bulk-mode pre-flight classifier against a real or replayed tracker. Use to measure skip-rate before / after any rule change — closes the tune-then-verify loop so rule edits are made against evidence, not guesswork.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/preflight-audit" |
| }, |
| { |
| "name": "privacy-llm", |
| "title": "privacy-llm", |
| "description": "Privacy-LLM PII-scrubbing gate. Standalone redactor / checker pair that screens content for PII before it reaches an external LLM. See tool.md and wiring.md for integration details, models.md for the model catalogue, and pii.md for the…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "privacy" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/privacy-llm" |
| }, |
| { |
| "name": "probe-templates", |
| "title": "Probe templates", |
| "description": "Runnable cross-family probe scripts that the issue-reproducer skill copies from when its Step 9 (optional cross-family probe) runs against an issue.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "sandbox" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/probe-templates" |
| }, |
| { |
| "name": "sandbox-lint", |
| "title": "sandbox-lint", |
| "description": "Lints .claude/settings.json against the shipped baseline at tools/sandbox-lint/expected.json, and against the security invariants documented in docs/security/threat-model.md (mitigation M.29). The threat-model document lands in a…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "sandbox" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "Claude Code, OpenCode, Kiro", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/sandbox-lint" |
| }, |
| { |
| "name": "scan-format", |
| "title": "scan-format", |
| "description": "A scan-format adapter teaches security-issue-import-from-scan how to read one security scanner's report layout. The skill is scanner-agnostic; everything format-specific — how to recognise a scan folder, how to enumerate findings, how…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "scan-format" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "interface", |
| "vendor": "agnostic", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/scan-format" |
| }, |
| { |
| "name": "security-tracker-stats-dashboard", |
| "title": "security-tracker-stats-dashboard", |
| "description": "Generate a self-contained HTML dashboard of <tracker> repository statistics — issue-lifecycle bands (untriaged / triaged / PR-merged / fixed-released / closed-other), opened-vs-untriaged backlog, cumulative opened/closed, and…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/security-tracker-stats-dashboard" |
| }, |
| { |
| "name": "skill-and-tool-validator", |
| "title": "skill-and-tool-validator", |
| "description": "Validate framework skill definitions — YAML frontmatter, internal link integrity, and placeholder conventions.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/skill-and-tool-validator" |
| }, |
| { |
| "name": "skill-evals", |
| "title": "skill-evals", |
| "description": "Behavioral eval harness for Apache Magpie skills. Each eval suite tests a skill pipeline step by step, verifying that the model produces the correct structured JSON output for a fixed set of fixture cases.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/skill-evals" |
| }, |
| { |
| "name": "skill-reconciler-diff", |
| "title": "skill-reconciler-diff", |
| "description": "A deterministic uv tool that parses two SKILL.md skill trees into normalised structural representations and emits a JSON diff. The output grounds the skill-reconciler skill's ALLOWED / DRIFT / SAFETY-BASELINE classification decisions in…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/skill-reconciler-diff" |
| }, |
| { |
| "name": "sourcehut", |
| "title": "SourceHut (sr.ht) Forge Bridge", |
| "description": "SourceHut (sr.ht) forge bridge implementation for the Apache Magpie framework. It integrates ticket tracking (todo.sr.ht), mailing list patchset review (lists.sr.ht), CI builds (builds.sr.ht), and repository reads (git.sr.ht & hg.sr.ht)…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "tracker" |
| }, |
| { |
| "kind": "contract", |
| "name": "source-control" |
| }, |
| { |
| "kind": "contract", |
| "name": "mail-archive" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "SourceHut", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/sourcehut" |
| }, |
| { |
| "name": "spec-inventory", |
| "title": "spec-inventory", |
| "description": "A deterministic uv tool that emits a compact routing inventory for the spec-loop prompts. It summarizes spec frontmatter, where-it-lives hints, validation commands, known gaps, skill frontmatter, and tool/test presence so agents can…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| }, |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/spec-inventory" |
| }, |
| { |
| "name": "spec-loop", |
| "title": "spec-loop", |
| "description": "A spec-driven build loop for this framework, in the general Ralph style (run a fresh agent context against a fixed prompt, repeat), adapted to the framework's human-in-the-loop posture. The full write-up is in…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Kiro", |
| "organization": null, |
| "mcp": null, |
| "hasCode": false, |
| "maturity": "stable", |
| "state": "adapter", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/spec-loop" |
| }, |
| { |
| "name": "spec-status-index", |
| "title": "spec-status-index", |
| "description": "A deterministic uv tool that reads spec-loop specs from tools/spec-loop/specs/ and prints them grouped by status, so build iterations can choose the next work item mechanically.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| }, |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/spec-status-index" |
| }, |
| { |
| "name": "spec-validator", |
| "title": "spec-validator", |
| "description": "Validates spec files in tools/spec-loop/specs/ — the counterpart to tools/skill-and-tool-validator/ for the spec side of the framework.", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/spec-validator" |
| }, |
| { |
| "name": "symlink-lint", |
| "title": "symlink-lint", |
| "description": "Lints the framework's self-adoption skill symlinks — the canonical .agents/skills/ links and their relays — against two invariants. This is the single place the rationale lives; the module, the prek hook, and the error output all point…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/symlink-lint" |
| }, |
| { |
| "name": "vcs", |
| "title": "magpie-vcs", |
| "description": "Runnable implementation of the source-control (VCS) capability documented in tools/github/source-control.md. It extracts the abstraction the dev-loop skills assume — branch, stage, commit, diff, log, fetch, push, working-tree reset —…", |
| "labels": [ |
| { |
| "kind": "contract", |
| "name": "source-control" |
| } |
| ], |
| "kind": "contract", |
| "vendorKind": "implementation", |
| "vendor": "Git", |
| "harness": null, |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "experimental", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/vcs" |
| }, |
| { |
| "name": "vendor-neutrality-score", |
| "title": "vendor-neutrality-score", |
| "description": "A deterministic uv tool that scores Magpie's vendor neutrality from repository metadata alone — no network, no judgement at runtime. It answers the question raised in apache/magpie-site#17: *for each capability contract, does Magpie…", |
| "labels": [ |
| { |
| "kind": "substrate", |
| "name": "framework-dev" |
| }, |
| { |
| "kind": "substrate", |
| "name": "analytics" |
| } |
| ], |
| "kind": "substrate", |
| "vendorKind": null, |
| "vendor": null, |
| "harness": "agnostic", |
| "organization": null, |
| "mcp": null, |
| "hasCode": true, |
| "maturity": "stable", |
| "state": "implemented", |
| "docUrl": "https://github.com/apache/magpie/tree/main/tools/vendor-neutrality-score" |
| } |
| ], |
| "toolsTotal": 45, |
| "implementedTotal": 24, |
| "contractsTotal": 23, |
| "substratesTotal": 22, |
| "mcpTotal": 4, |
| "organizations": [ |
| { |
| "id": "ASF", |
| "name": "Apache Software Foundation", |
| "url": "https://www.apache.org/", |
| "logo": "https://www.apache.org/foundation/press/kit/asf_logo.svg", |
| "tools": [ |
| "apache-projects", |
| "asf-svn", |
| "cve-tool-vulnogram", |
| "jira-patch", |
| "mail-patch", |
| "ponymail" |
| ], |
| "families": [ |
| "contributor-growth", |
| "release-management" |
| ] |
| }, |
| { |
| "id": "independent", |
| "name": "Independent (no formal organization)", |
| "url": null, |
| "logo": null, |
| "tools": [], |
| "families": [] |
| } |
| ], |
| "orgFamilies": { |
| "contributor-growth": "ASF", |
| "release-management": "ASF" |
| }, |
| "asfFamilies": [ |
| "contributor-growth", |
| "release-management" |
| ], |
| "vendorNeutrality": { |
| "minVendors": 2, |
| "overall": { |
| "green": 10, |
| "total": 10, |
| "percent": 100 |
| }, |
| "contracts": [ |
| { |
| "contract": "contract:tracker", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "4 backend vendors: Atlassian, Fossil, GitHub, SourceHut", |
| "vendors": [ |
| "Atlassian", |
| "Fossil", |
| "GitHub", |
| "SourceHut" |
| ], |
| "interfaces": [], |
| "implementations": [ |
| { |
| "tool": "jira", |
| "vendor": "Atlassian" |
| }, |
| { |
| "tool": "fossil", |
| "vendor": "Fossil" |
| }, |
| { |
| "tool": "github", |
| "vendor": "GitHub" |
| }, |
| { |
| "tool": "github-body-field", |
| "vendor": "GitHub" |
| }, |
| { |
| "tool": "github-rollup", |
| "vendor": "GitHub" |
| }, |
| { |
| "tool": "sourcehut", |
| "vendor": "SourceHut" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:source-control", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "5 backend vendors: Fossil, Git, GitHub, SourceHut, Subversion", |
| "vendors": [ |
| "Fossil", |
| "Git", |
| "GitHub", |
| "SourceHut", |
| "Subversion" |
| ], |
| "interfaces": [], |
| "implementations": [ |
| { |
| "tool": "fossil", |
| "vendor": "Fossil" |
| }, |
| { |
| "tool": "vcs", |
| "vendor": "Git" |
| }, |
| { |
| "tool": "github", |
| "vendor": "GitHub" |
| }, |
| { |
| "tool": "sourcehut", |
| "vendor": "SourceHut" |
| }, |
| { |
| "tool": "asf-svn", |
| "vendor": "Subversion" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:change-request", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "3 backend vendors: Atlassian, GitHub, email", |
| "vendors": [ |
| "Atlassian", |
| "GitHub", |
| "email" |
| ], |
| "interfaces": [ |
| "change-request" |
| ], |
| "implementations": [ |
| { |
| "tool": "bitbucket", |
| "vendor": "Atlassian" |
| }, |
| { |
| "tool": "jira-patch", |
| "vendor": "Atlassian" |
| }, |
| { |
| "tool": "mail-patch", |
| "vendor": "email" |
| }, |
| { |
| "tool": "github", |
| "vendor": "GitHub" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:mail-archive", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "3 backend vendors: ASF, Google, SourceHut", |
| "vendors": [ |
| "ASF", |
| "Google", |
| "SourceHut" |
| ], |
| "interfaces": [ |
| "mail-archive" |
| ], |
| "implementations": [ |
| { |
| "tool": "ponymail", |
| "vendor": "ASF" |
| }, |
| { |
| "tool": "gmail", |
| "vendor": "Google" |
| }, |
| { |
| "tool": "sourcehut", |
| "vendor": "SourceHut" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:mail-source", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "3 backend vendors: ASF, Google, Maildir", |
| "vendors": [ |
| "ASF", |
| "Google", |
| "Maildir" |
| ], |
| "interfaces": [ |
| "mail-source" |
| ], |
| "implementations": [ |
| { |
| "tool": "ponymail", |
| "vendor": "ASF" |
| }, |
| { |
| "tool": "gmail", |
| "vendor": "Google" |
| }, |
| { |
| "tool": "maildir", |
| "vendor": "Maildir" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:mail-create", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "2 backend vendors: Google, Maildir", |
| "vendors": [ |
| "Google", |
| "Maildir" |
| ], |
| "interfaces": [], |
| "implementations": [ |
| { |
| "tool": "gmail", |
| "vendor": "Google" |
| }, |
| { |
| "tool": "maildir", |
| "vendor": "Maildir" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:cve-authority", |
| "class": "vendor-backed", |
| "green": true, |
| "basis": "2 backend vendors: CVE.org, Vulnogram", |
| "vendors": [ |
| "CVE.org", |
| "Vulnogram" |
| ], |
| "interfaces": [ |
| "cve-tool" |
| ], |
| "implementations": [ |
| { |
| "tool": "cve-org", |
| "vendor": "CVE.org" |
| }, |
| { |
| "tool": "cve-tool-vulnogram", |
| "vendor": "Vulnogram" |
| } |
| ] |
| }, |
| { |
| "contract": "contract:report-relay", |
| "class": "agnostic", |
| "green": true, |
| "basis": "vendor-neutral by construction — one spec serves every backend", |
| "vendors": [], |
| "interfaces": [ |
| "forwarder-relay" |
| ], |
| "implementations": [] |
| }, |
| { |
| "contract": "contract:scan-format", |
| "class": "agnostic", |
| "green": true, |
| "basis": "vendor-neutral by construction — one spec serves every backend", |
| "vendors": [], |
| "interfaces": [ |
| "scan-format" |
| ], |
| "implementations": [] |
| }, |
| { |
| "contract": "contract:project-metadata", |
| "class": "single-org", |
| "green": true, |
| "basis": "single-organisation capability (ASF); no vendor choice to make", |
| "vendors": [ |
| "ASF" |
| ], |
| "interfaces": [], |
| "implementations": [ |
| { |
| "tool": "apache-projects", |
| "vendor": "ASF" |
| } |
| ] |
| } |
| ], |
| "harness": { |
| "neutral": 22, |
| "total": 22, |
| "percent": 100, |
| "tools": [ |
| { |
| "tool": "agent-guard", |
| "substrates": [ |
| "substrate:action-guard" |
| ], |
| "harnesses": [ |
| "Claude Code", |
| "Kiro", |
| "OpenCode" |
| ], |
| "verdict": "portable" |
| }, |
| { |
| "tool": "agent-isolation", |
| "substrates": [ |
| "substrate:sandbox" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "dashboard-generator", |
| "substrates": [ |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "dev", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "egress-gateway", |
| "substrates": [ |
| "substrate:sandbox" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "permission-audit", |
| "substrates": [ |
| "substrate:sandbox" |
| ], |
| "harnesses": [ |
| "Claude Code", |
| "Kiro", |
| "OpenCode" |
| ], |
| "verdict": "portable" |
| }, |
| { |
| "tool": "pilot-report-validator", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "pr-management-stats", |
| "substrates": [ |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "preflight-audit", |
| "substrates": [ |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "privacy-llm", |
| "substrates": [ |
| "substrate:privacy" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "probe-templates", |
| "substrates": [ |
| "substrate:sandbox" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "sandbox-lint", |
| "substrates": [ |
| "substrate:sandbox" |
| ], |
| "harnesses": [ |
| "Claude Code", |
| "Kiro", |
| "OpenCode" |
| ], |
| "verdict": "portable" |
| }, |
| { |
| "tool": "security-tracker-stats-dashboard", |
| "substrates": [ |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "skill-and-tool-validator", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "skill-evals", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "skill-reconciler-diff", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "spec-inventory", |
| "substrates": [ |
| "substrate:framework-dev", |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "spec-loop", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [ |
| "Claude Code", |
| "Codex", |
| "Cursor", |
| "Gemini CLI", |
| "Kiro", |
| "OpenCode" |
| ], |
| "verdict": "portable" |
| }, |
| { |
| "tool": "spec-status-index", |
| "substrates": [ |
| "substrate:framework-dev", |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "spec-validator", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "symlink-lint", |
| "substrates": [ |
| "substrate:framework-dev" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| }, |
| { |
| "tool": "vendor-neutrality-score", |
| "substrates": [ |
| "substrate:framework-dev", |
| "substrate:analytics" |
| ], |
| "harnesses": [], |
| "verdict": "agnostic" |
| } |
| ], |
| "matrix": { |
| "Claude Code": [ |
| "agent-guard", |
| "permission-audit", |
| "sandbox-lint", |
| "spec-loop" |
| ], |
| "Kiro": [ |
| "agent-guard", |
| "permission-audit", |
| "sandbox-lint", |
| "spec-loop" |
| ], |
| "OpenCode": [ |
| "agent-guard", |
| "permission-audit", |
| "sandbox-lint", |
| "spec-loop" |
| ], |
| "agnostic": [ |
| "agent-isolation", |
| "dashboard-generator", |
| "dev", |
| "egress-gateway", |
| "pilot-report-validator", |
| "pr-management-stats", |
| "preflight-audit", |
| "privacy-llm", |
| "probe-templates", |
| "security-tracker-stats-dashboard", |
| "skill-and-tool-validator", |
| "skill-evals", |
| "skill-reconciler-diff", |
| "spec-inventory", |
| "spec-status-index", |
| "spec-validator", |
| "symlink-lint", |
| "vendor-neutrality-score" |
| ], |
| "Codex": [ |
| "spec-loop" |
| ], |
| "Cursor": [ |
| "spec-loop" |
| ], |
| "Gemini CLI": [ |
| "spec-loop" |
| ] |
| } |
| }, |
| "llm": { |
| "defaultApproved": [ |
| { |
| "class": "Claude Code itself", |
| "examples": "The agent invoking the skill" |
| }, |
| { |
| "class": "*.apache.org-hosted endpoints", |
| "examples": "A future ASF-hosted inference endpoint at e.g. `inference.apache.org`; an in-tracker endpoint at `<project>.apache.org/llm/`" |
| }, |
| { |
| "class": "Local-only inference", |
| "examples": "Ollama serving a local model, vLLM on the user's workstation, llama.cpp embedded in a CLI helper" |
| }, |
| { |
| "class": "Air-gapped on-prem", |
| "examples": "A PMC-hosted inference appliance on a private VLAN" |
| } |
| ], |
| "optIn": "adopter-declared in <project-config>/privacy-llm.md (no fixed list)" |
| }, |
| "skills": { |
| "total": 70, |
| "neutral": 70, |
| "byVerdict": { |
| "capability-pure": 11, |
| "portable": 59, |
| "vendor-coupled": 0 |
| }, |
| "byOrg": { |
| "agnostic": 56, |
| "ASF": 14 |
| }, |
| "coupled": [], |
| "list": [ |
| { |
| "skill": "audit-finding-fix", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "ci-runner-audit", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "committer-onboarding", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "contributor-activity-sweep", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "contributor-nomination", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:project-metadata", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "contributor-sentiment", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "contributor-to-committer", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "dependency-audit", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "dependency-license-audit", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "flaky-test-triage", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "good-first-issue-author", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "good-first-issue-sweep", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-backlog-stats", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-deduplicate", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-fix-workflow", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-reassess", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-reassess-stats", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-reproducer", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-stale-sweep", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "issue-triage", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "license-compliance-audit", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "list-skills", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "mentoring-welcome", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "newcomer-issue-explainer", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "onboarding-concierge", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "optimize-skill", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "pairing-multi-agent-review", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pairing-self-review", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-management-code-review", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-management-mentor", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-management-quick-merge", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-management-stats", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-management-triage", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pr-stale-sweep", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "pre-first-pr-check", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-announce-draft", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-archive-sweep", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-audit-report", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:change-request" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-keys-sync", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-prepare", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-promote", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-rc-cut", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-verify-rc", |
| "verdict": "capability-pure", |
| "organization": "ASF", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-vote-draft", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "release-vote-tally", |
| "verdict": "portable", |
| "organization": "ASF", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "reviewer-routing", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-cve-allocate", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:cve-authority", |
| "contract:mail-archive", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-deduplicate", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:cve-authority", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-fix", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-import", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:mail-archive", |
| "contract:mail-create", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-import-from-md", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-import-from-pr", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-import-from-scan", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-import-via-forwarder", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:mail-create" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-invalidate", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:cve-authority", |
| "contract:mail-archive", |
| "contract:mail-create", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-sync", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:cve-authority", |
| "contract:mail-archive", |
| "contract:mail-create", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-issue-triage", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:mail-archive", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "security-tracker-stats-dashboard", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-isolated-setup-doctor", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-isolated-setup-install", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-isolated-setup-update", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-isolated-setup-verify", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-override-upstream", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-shared-config-sync", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-status", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:source-control" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "setup-upstream-fix", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:change-request", |
| "contract:source-control", |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "skill-reconciler", |
| "verdict": "capability-pure", |
| "organization": "agnostic", |
| "contractsUsed": [], |
| "coupled": [] |
| }, |
| { |
| "skill": "workflow-security-audit", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| }, |
| { |
| "skill": "write-skill", |
| "verdict": "portable", |
| "organization": "agnostic", |
| "contractsUsed": [ |
| "contract:tracker" |
| ], |
| "coupled": [] |
| } |
| ] |
| } |
| }, |
| "skills": { |
| "total": 70, |
| "apacheLicensed": 70, |
| "allApache": true, |
| "license": "Apache-2.0", |
| "byOrg": { |
| "ASF": 14 |
| } |
| } |
| } |