Files
claude-plugins-official/.github/policy/schema.json
Tobin South 95cc50d132 Adopt validate-plugins action suite; pin all external SHAs (#1762)
* Adopt validate-plugins action suite; pin all external SHAs

Replaces the hand-rolled marketplace validator and bot-based bump
workflow with the shared composite actions (pinned at f846a0b).

marketplace.json:
- 62 external entries that were missing a `sha` are now pinned to
  their current upstream HEAD (resolved via git ls-remote).

Workflows:
- validate-plugins.yml: invariants I1-I11 + claude plugin validate +
  diff-gated clone-at-SHA validation of changed external entries.
  SHA-pin (I5) is a hard error. I8/I11 stay warnings until the 15
  known data issues (vendored dirs without manifests; one dotted
  name) are cleaned up.
- bump-plugin-shas.yml: bot-free weekly refresh. Validates each new
  SHA with claude plugin validate before opening one PR; works with
  the default GITHUB_TOKEN (contents:write + pull-requests:write).
- scan-plugins.yml: Claude policy scan of changed external entries.
  Non-blocking; graceful no-op if ANTHROPIC_API_KEY isn't set.

Removed:
- validate-marketplace.yml + the two TS helper scripts (superseded
  by step 11/20 of validate-plugins).

validate-frontmatter.yml is kept — it's complementary (targeted
checks on agent/skill/command files for in-repo plugins).

* Remove 5 external entries that fail validation at HEAD

Step 30 (clone at pinned SHA + claude plugin validate) fails for
these at their current HEAD:

  aiven                   Unrecognized key "logo" in plugin.json
  atlassian-forge-skills  skill YAML frontmatter parse error
  sagemaker-ai            skill YAML frontmatter parse error
  speakai                 no plugin manifest at repo root
  stagehand               no plugin manifest at repo root

These can be re-added once the upstream repos are fixed.

* Wire scan-plugins to the detailed policy prompt

Adds .github/policy/prompt.md and schema.json (the full security
review rubric — malicious code, privacy, deception, safety
circumvention, exfiltration; plus network-call and software-install
flags) and points scan-plugins at it via the policy-prompt input.

With ANTHROPIC_API_KEY now configured on the repo, scan-plugins runs
the actual policy review on changed external entries instead of
no-op'ing.

* Bump scan-plugins action pin to include L11/L12 fixes
2026-05-07 14:18:52 -05:00

33 lines
1.2 KiB
JSON

{
"type": "object",
"properties": {
"passes": {
"type": "boolean",
"description": "true if the plugin is safe and policy-compliant, false if there are violations"
},
"summary": {
"type": "string",
"description": "Brief summary of what the plugin does and whether it's safe"
},
"violations": {
"type": "string",
"description": "Description of any policy violations found, or empty string if none"
},
"may_make_external_network_calls": {
"type": "boolean",
"description": "true if the plugin makes or prompts the model to make external network calls (e.g. via MCP remote servers, curl, wget, fetch, HTTP requests, or instructs the model to make network requests)"
},
"may_download_additional_software": {
"type": "boolean",
"description": "true if the plugin may result in downloading or installing additional software (e.g. npm install, pip install, apt-get, brew install, cargo install, or instructs the model to install packages)"
}
},
"required": [
"passes",
"summary",
"violations",
"may_make_external_network_calls",
"may_download_additional_software"
]
}