Commit Graph

397 Commits

Author SHA1 Message Date
Mohamed Hegazy
bef2b9b246 Merge pull request #1935 from anthropics/fix/quote-claude-plugin-root-paths
fix: quote ${CLAUDE_PLUGIN_ROOT} in hookify and security-guidance hook commands
2026-05-19 17:54:18 -07:00
Mohamed Hegazy
b58bdbf551 fix: quote \${CLAUDE_PLUGIN_ROOT} in hookify and security-guidance hook commands
Paths containing spaces (common on Windows, e.g. C:\Users\Some User\...)
cause shell word-splitting when CLAUDE_PLUGIN_ROOT is unquoted, resulting
in hooks erroring with "No such file or directory" on every tool call.

Wraps the path in double quotes for all five affected hook commands.
Fixes the pattern reported in issue #57946. Closes the fix surfaced in PR #1921.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 17:53:52 -07:00
Bryan Thompson
ae21a93679 Bump snowflake-cortex-code to v3.1.0 (#1932) 2026-05-19 18:55:48 +01:00
Tobin South
6a05dc286d Add 24 first-party plugins from major-brand orgs (#1919)
Promote first-party plugins from recognizable companies that publish
deep, actively-maintained Claude Code plugins from their official GitHub
orgs. All entries are SHA-pinned to current default-branch HEAD.

Development:
- apollo-skills (Apollo GraphQL): 14 GraphQL skills + Apollo MCP server
- appwrite (Appwrite): 11 SDK skills + 2 commands + dual MCP
- forge-skills (Atlassian): Forge scaffold/review/debug + 2 hosted MCPs
- buildkite (Buildkite): 6 CI/CD skills + hosted MCP
- circle-skills (Circle): 16 USDC/stablecoin dev skills + hosted MCP
- codspeed (CodSpeed): perf profiling skills + remote MCP
- dominodatalab (Domino Data Lab): 22 skills + 3 agents + bundled MCP
- lumen (Ory): local semantic code-search MCP + auto-index hooks
- mcp-apps (Model Context Protocol): MCP Apps SDK skills
- resend (Resend): email API/CLI/React Email skills + bundled MCP
- teamcity-cli (JetBrains): TeamCity CI/CD CLI agent skill
- togetherai-skills (Together AI): 12 inference/training/GPU skills

Database:
- clickhouse-best-practices (ClickHouse): 28 schema/query/ingestion rules
- datahub-skills (DataHub): 12 catalog/lineage/quality skills + 4 agents
- duckdb-skills (DuckDB): 9 file-query/docs/extension skills
- redis-development (Redis): data structures, query engine, vector search

Security:
- duende-skills (Duende): 22 OAuth/OIDC/IdentityServer skills + 2 agents
- workos (WorkOS): AuthKit/SSO/Directory Sync/RBAC router skill

Monitoring:
- rootly (Rootly): 18 incident-management skills + 3 agents + hosted MCP
- sentry-cli (Sentry): Sentry CLI agent skill

Design:
- hyperframes (HeyGen): 15 HTML-to-video framework skills
- runway-api (Runway): 17 video/image/audio generation skills

Productivity / Location:
- hunter (Hunter.io): 9 prospecting skills + remote MCP
- mapbox (Mapbox): 19 geospatial skills + 3 remote MCP servers

Source structure: 19 repo-root plugins (url source), 5 subdirectory
plugins (git-subdir source). All cross-referenced against existing
entries to avoid duplicates.

Two candidates excluded pending upstream fixes:
- launchdarkly: plugin.json has unrecognized 'logo' key (schema error)
- medusa-dev: skill has malformed YAML frontmatter
2026-05-19 08:20:20 -05:00
Tobin South
d42e163958 Bump 25 plugin SHA pins to upstream HEAD (huggingface–railway) (#1914)
* Bump 26 plugin SHA pins to upstream HEAD

* Revert mercadopago SHA bump

The new upstream SHA adds a PreToolUse hook that fires on every
Bash/Edit/Write/Read in all sessions and globally blocks reading .env
files, regardless of project relevance. The policy scan flags this as
out of scope for what the plugin description advertises. Leave at the
prior pin until the upstream gates the hook on project relevance.
2026-05-19 08:19:35 -05:00
Bryan Thompson
4bf08583c3 Add carta-crm and carta-investors plugins (#1877) 2026-05-19 05:04:40 +01:00
Tobin South
9f0275ae44 Add convex-backend plugin (#1918) 2026-05-18 16:56:50 -07:00
Tobin South
0b9a622ecb Fix broken plugin source configs and bump their SHAs (#1915)
* Fix broken plugin source configs and bump their SHAs

Several external plugins had source configs that no longer matched the
upstream layout, so the automated SHA bump skipped them indefinitely.
Add the missing path field where the manifest moved into a subdirectory,
correct stale ref/commit metadata, and update the skills list for the
one strict:false skills-only entry.

- rc, revenuecat: upstream moved the plugin from repo root into
  revenuecat/. Add path and bump SHA.
- zilliz: plugin moved from repo root into plugins/zilliz/. Add path
  and bump SHA.
- sumup: plugin lives at providers/claude/plugin/ (declared by the
  upstream marketplace.json) but our entry never had a path. Add it
  and bump SHA.
- mintlify: pure SHA bump. Repo layout unchanged between SHAs; the
  upstream remains a marketplace-style repo with no plugin.json, same
  as the currently pinned SHA.
- netsuite-suitecloud (strict:false skills entry): bump SHA and add
  the four new skill directories upstream added since the last pin.
- 42crunch-api-security-testing: ref said v1.0.1 but the pinned SHA
  is actually v1.5.5. Correct the label; the SHA is already current.
- jfrog: commit and sha fields had drifted apart. Set both to
  upstream HEAD.

Each new SHA verified to be on the upstream default branch and the
referenced manifest validated with claude plugin validate.

* Revert mintlify and netsuite-suitecloud changes

The validate-plugins check requires a plugin manifest at the pinned SHA
even for strict:false entries. Neither repo has one at any SHA, so a
SHA bump fails CI. Leave them at the existing pin until either the
upstream adds a manifest or the validator learns to honor strict:false.
2026-05-18 23:33:38 +01:00
Tobin South
b7c0654137 Raise bump cap with verdict cache and skip-and-revert (#1913)
* Cache scan verdicts and drop policy-failing entries from bump PRs

Three changes that together let the nightly bump clear any backlog in a
single run without blocking on a single bad upstream or re-burning Claude
time on already-scanned SHAs:

- bump-plugin-shas.yml: raise max-bumps default 20 -> 130 (above the
  external entry count, so a single run can clear a full backlog) and add
  an explicit 60-min job timeout. The cap was the only thing bounding the
  blast radius of a single policy failure; the changes below take over
  that role so the cap can be lifted.

- scan-plugins.yml: add a verdict cache keyed on (plugin, sha, policy
  hash). The bump action force-resets bump/plugin-shas every night, which
  makes the same SHAs reappear in the diff on consecutive nights — without
  the cache the scan would re-burn ~90s of Claude time per entry per
  night. Cached verdicts (pass and fail) are served from disk; only
  uncached SHAs are scanned. The job still fails on cached failures so
  the required check stays honest.

- revert-failed-bumps.yml (new): after a Scan Plugins workflow_run on
  bump/plugin-shas concludes with a failure, drop just the failing
  entries' source.sha back to main's pin via a follow-up signed commit
  and re-dispatch the scan. The re-dispatch finds only cached-pass
  entries and goes green in seconds. Bounded at 3 passes/night, restricted
  to SHA-only diffs, and aborts if the bump branch was tampered with.

* Harden bump cache and revert workflows after review

- revert-failed-bumps: replace the time-based revert budget (anchored on
  the PR head, which a revert commit immediately replaces — never
  accumulating past 1) with a commit count: every nightly bump force-
  resets to one commit and every revert pass adds exactly one, so
  commits > MAX+1 is the budget without date math, pagination, or
  exposure to comment spoofing.
- revert-failed-bumps: filter the bump PR by head owner so a fork PR
  with a branch named bump/plugin-shas can't be selected.
- revert-failed-bumps: continue-on-error on the artifact download so a
  scan that died before uploading (infra error) doesn't fail the revert
  job — the missing-file guard downstream handles it.
- scan-plugins: add a per-ref concurrency group so concurrent scans
  don't lose one another's cache writes; key the cache on run_attempt
  so a re-run can save its own verdicts.
- scan-plugins: store the full source object in the cache and require
  source equality on lookup, so a repo/path change at the same SHA
  misses the cache instead of getting a stale verdict.
- scan-plugins / revert-failed-bumps: strip markdown control chars,
  wrap model-generated text in code spans (neutralizes auto-linked
  URLs), and redact key-shaped tokens before they reach the step
  summary, artifact, cache, or PR comment.
2026-05-18 20:55:20 +01:00
Tobin South
af4e1ad69e Bump 21 plugin SHA pins to upstream HEAD (#1911) 2026-05-18 20:55:03 +01:00
Tobin South
de2bcc9411 Bump 27 plugin SHA pins to upstream HEAD (#1912) 2026-05-18 20:52:54 +01:00
Tobin South
e98784f00e Run plugin SHA bump nightly instead of weekly (#1909)
Upstream plugins move daily; a weekly sweep with a 20-bump cap can fall
behind. Each run force-resets the bump branch, so stale unmerged PRs are
replaced rather than piling up.
2026-05-18 19:53:59 +01:00
Tobin South
237a6b9707 Add CI check for HTTP MCP server URL liveness (#1910)
Walks marketplace.json for vendored plugins, extracts http/sse MCP
server URLs from .mcp.json / mcp.json / plugin.json, and probes each
with HEAD then a JSON-RPC POST fallback. Fails on 404/410 and
connection errors; passes on auth/method errors (expected without
credentials). Runs on PR, daily schedule, and manual dispatch.

External (SHA-pinned) plugins are out of scope — their .mcp.json
isn't checked out here.
2026-05-18 13:24:31 -05:00
github-actions[bot]
0c54d4ac15 Bump 20 plugin SHA pin(s) to upstream HEAD (#1904)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-18 18:52:12 +01:00
Bryan Thompson
61b760aafc Add save-to-spotify plugin (#1905) 2026-05-18 08:59:59 -07:00
Bryan Thompson
f475d3ce58 Add zoominfo plugin (#1885) 2026-05-17 17:49:38 -07:00
Bryan Thompson
d7b273d2b4 Bump crowdstrike-falcon-foundry SHA to v1.0.0 (#1842)
Pins to the v1.0.0 tag (a6a500c) instead of pre-release HEAD (e7fa026).
2026-05-17 17:49:15 -07:00
Bryan Thompson
b5a156b6ec Add carta-cap-table plugin (#1876) 2026-05-16 07:55:29 -05:00
Tobin South
32b176e6aa Bump pagerduty plugin to latest upstream SHA (#1862)
Picks up v1.1.0: new /create-pagerduty-skill command (Early Access).
2026-05-16 07:55:14 -05:00
Bryan Thompson
d8e4105231 Bump vanta-mcp-plugin SHA to 345d86b5 (#1843) 2026-05-16 07:55:04 -05:00
Bryan Thompson
5dbfa0fade Bump box plugin SHA and enumerate skills (#1845) 2026-05-15 23:54:38 +01:00
Twisha Bansal
1a2f18b05c chore: modify data-agent-kit-starter-pack plugin details (#1826)
* chore: modify data-agent-kit-starter-pack plugin details

Updated the description and homepage of the data-agent-kit-starter-pack plugin, and changed the SHA.

* update sha for latest commit
2026-05-12 22:59:22 +01:00
Dickson Tsai
1cf022eba1 Fix servicenow-sdk ref: ServiceNow/sdk uses master, not main (#1830)
The ServiceNow/sdk repository's default branch is 'master' and there is
no 'main' branch. The pinned SHA (06adf37) is the current head of
'master'. Update the ref so future SHA bumps target the correct branch.
2026-05-12 18:05:45 +01:00
Morgan Lunt
573ecf32cd Merge pull request #1820 from anthropics/morganl/code-modernization-plugin
code-modernization: fix pipeline gaps, redesign harden, dry-run hardening
2026-05-12 09:58:41 -07:00
Morgan Lunt
5e4a45001d code-modernization: harden writes a patch instead of editing legacy; make map/security guidance language-agnostic
- modernize-harden: never edits legacy/ anymore. Writes findings plus a
  reviewed unified diff to analysis/<system>/security_remediation.patch.
  A second security-auditor pass reviews each hunk (RESOLVES / PARTIAL /
  INTRODUCES-RISK) before presenting. The user reviews and applies the
  patch deliberately, then re-runs to verify. This makes every command
  consistent with the recommended deny Edit(legacy/**) workspace setting,
  so the README's exception note is gone.
- modernize-map: restructure the parse-target list around three stack-
  agnostic principles (dispatcher targets are variables; code-storage
  joins live in config; entry points live in deployment descriptors), with
  COBOL/Java/web/CLI examples on equal footing rather than COBOL-dominant.
  Same protections against false dead-code findings, less stack-specific.
- security-auditor agent: rephrase coverage items in stack-neutral terms
  (record layouts/temp datasets, resource ACLs, deployment scripts/job
  definitions, batch input records) so the checklist reads naturally for
  COBOL, Java EE, .NET, and web targets alike.
- README: drop the harden exception note; describe the patch workflow.
2026-05-11 16:46:03 -07:00
Morgan Lunt
22a1b25977 Harden code-modernization plugin from a real CardDemo dry run
Fixes found by running the discovery workflow against the AWS CardDemo
mainframe sample (~50 KLOC of COBOL/CICS/JCL/BMS/VSAM):

- modernize-assess: add scc -> cloc -> find/wc fallback chain with the
  COCOMO-II formula so Step 1 works when scc isn't installed; same for
  portfolio-mode cloc/lizard. Drop the reference to a specific
  agent-spawning tool name (just "in parallel"). Sharpen the structural-
  map subagent prompt: 5-12 domains, subgraph clustering, ~40-edge cap,
  repo-relative paths, dangling-reference check.
- modernize-map: expand the parse-target list with the things a
  literal-minded reader would miss on a real mainframe codebase — CICS
  CSD DEFINE TRANSACTION/FILE for entry points and online file I/O,
  EXEC CICS file ops, SELECT...ASSIGN TO joined with JCL DD,
  EXEC SQL table refs (not JCL DD), SEND/RECEIVE MAP, dynamic
  data-name XCTL resolution, COBOL fixed-format column slicing. Without
  these the dead-code list is wrong (most CICS programs look unreachable).
  Also write a machine-readable topology.json alongside the summary.
- modernize-extract-rules: add a Priority (P0/P1/P2) field with a
  heuristic, and an optional Suspected-defect field. modernize-brief
  reads P0 rules to build the behavior contract, but the Rule Card had
  no priority slot — the chain was broken.
- modernize-brief: read the new P0 tags; flag low-confidence P0 rules as
  SME blockers.
- modernize-reimagine: drop "for the demo" wording.
- security-auditor agent: add mainframe/COBOL coverage items (RACF,
  JCL/PROC creds, BMS field validation, DB2 dynamic SQL, copybook PII)
  and mark web-only items as such so it adapts to the target stack.
- README: add Optional Tooling section and a symlink example for the
  expected layout.
2026-05-11 16:28:27 -07:00
Morgan Lunt
718818146e Fix code-modernization plugin: align README with commands, fix pipeline gaps
- modernize-brief: read TOPOLOGY.html (what modernize-map actually
  produces) instead of nonexistent TOPOLOGY.md, and tell the user which
  command produces each missing input.
- README: rewrite the Commands section to match actual command behavior —
  correct output filenames, ordering (brief is the synthesis/approval gate
  after discovery, not the first step), agent attributions, and required
  args. Add a workspace-layout note and an explicit callout that
  modernize-harden edits legacy/, which conflicts with the recommended
  deny rule. Reconcile the Overview and Typical Workflow sequences.
- modernize-assess: generalize the production-runtime overlay step so it
  no longer assumes a specific MCP server/tool; mark it optional. Fix
  app/jcl/ -> legacy/$1/jcl/ for layout consistency.
- modernize-map: make TOPOLOGY.html self-contained (load Mermaid from a
  CDN) so it renders in any browser; drop assumptions about an external
  artifact renderer. Generalize the telemetry annotation note.
- business-rules-extractor agent: fix command cross-reference to the
  actual command name.
- plugin.json: include the brief step in the workflow description.
2026-05-11 16:17:59 -07:00
Tobin South
45896c8f2f Make Scan Plugins a viable required check; auto-dispatch on bump PRs (#1815)
Scan Plugins is meant to gate every change to marketplace.json, but two
gaps made that unenforceable:

1. The bump workflow opens PRs with GITHUB_TOKEN, which GitHub exempts
   from on:pull_request triggers. Weekly bump PRs (e.g. #1809) get no
   scan check at all.
2. The workflow had a paths filter, so a required-check ruleset for
   `scan` would block every PR that doesn't touch marketplace.json
   (no check run = pending forever).

Fixes:

scan-plugins.yml
- Drop the paths filter; replace with a step-level `git diff --quiet`
  early-exit on the same paths. The check now reports on every PR,
  which makes it safe to require.
- Fail closed when ANTHROPIC_API_KEY is unset and a scan is needed.
  The shared action no-ops gracefully in that case (right default for
  community repos), but a required check that silently does nothing is
  a rubber stamp.

bump-plugin-shas.yml
- After the action opens the bump PR, `gh workflow run scan-plugins.yml
  --ref bump/plugin-shas`. workflow_dispatch is exempt from the
  GITHUB_TOKEN recursion guard, and the resulting check run lands on
  the branch HEAD (= PR head), so it satisfies the required check.
- Add `actions: write` so the dispatch is allowed.

Follow-up: add a repo ruleset on main requiring the `scan` check
(integration: github-actions) once this merges.
2026-05-11 15:14:33 -05:00
Tobin South
7f6f5a8836 Add airtable plugin (#1817)
Adds the airtable marketplace entry. Sourced from Airtable/skills at
plugins/airtable, pinned to aaeb4f3e (latest main, tag 2026-05-06).
Bundles the official Airtable MCP server (mcp.airtable.com/mcp) plus
skills for the Airtable data model and filter syntax.

https://claude.ai/code/session_01Vom6RzMA4p6erqGiZxg8yE

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-11 15:12:42 -05:00
Tobin South
fe8f81309e Bump bump-plugin-shas action so bump commits are signed (#1814)
The pinned version of anthropics/claude-plugins-community's
bump-plugin-shas action creates the bump commit with a local git commit,
which is unsigned and unmergeable under the required_signatures ruleset
on main. The new SHA creates the commit via the GraphQL
createCommitOnBranch mutation, which GitHub signs server-side, so weekly
bump PRs (e.g. #1809) become mergeable.
2026-05-11 20:45:40 +01:00
Tobin South
6196a61bde Add mercadopago plugin (#1813)
Mercado Pago full-product integration toolkit — 13 skills, agents, and a
bundled MCP for live API data. Sourced from
mercadopago/mercadopago-claude-marketplace at plugins/mercadopago, pinned
to 1de8d97e.

Closes #1272

https://claude.ai/code/session_01XCupEyAPLqxo2eHgVoWevi

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-11 12:37:36 -05:00
Bryan Thompson
480a410cc0 Add sap-cds-mcp plugin + SAP SE author block on cds-mcp (#1778)
CAP CDS work as one cohesive unit, split out of #1616 to keep that PR
narrowly scoped to sap-hana-cli (which is currently held on an upstream
plugin.json fix).

- Adds new sap-cds-mcp entry alongside existing cds-mcp (additive,
  non-breaking — both point to cap-js/mcp-server). Pinned at 8ce2e13a.
- Adds the unified SAP SE author block to existing cds-mcp.

Per the SAP namespace policy agreed with SAP (Tobin 2026-04-29 +
Florian/Klaus/Avital 2026-05-04 email).
2026-05-11 17:54:50 +01:00
Bryan Thompson
0ed7932459 Align SAP author blocks on existing entries (#1779)
Metadata-only refresh per the SAP namespace policy (Florian/Klaus/Avital,
2026-05-04). No slug renames, no new entries.

- sap-mdk-server: expand author from {"name":"SAP"} to the unified
  SAP SE block with ospo@sap.com.
- ui5: add unified UI5 author block (openui5@sap.com per Florian's
  carve-out for the SAPUI5/OpenUI5 brand).
- ui5-typescript-conversion: same UI5 author block as ui5.

Split out of #1616 to keep that PR scoped to sap-hana-cli only.
2026-05-11 17:51:50 +01:00
Bryan Thompson
00679aef88 Add sap-fiori-mcp-server plugin (#1777)
MCP server for SAP Fiori development tools — build and modify SAP Fiori
applications with AI assistance. Pinned at d9d4ab7e (latest main of
SAP/open-ux-tools).
2026-05-09 21:40:06 +01:00
Tobin South
76b35e91d1 Tighten policy scan: hook scope, telemetry, disclosure; make blocking (#1771)
* Tighten policy scan: hook scope, telemetry, disclosure; make blocking

policy/prompt.md — adds Part 2 (hook scope and disclosure):
- Enumerate every registered hook and read its source.
- Flag has_broad_scope_hooks when UserPromptSubmit/PreToolUse/
  PostToolUse runs without a project-relevance gate, or any hook
  reads user data beyond the plugin's stated scope — regardless of
  whether it makes network calls.
- Flag has_undisclosed_telemetry when any hook or shipped code calls
  a non-MCP host without explicit disclosure + opt-out.
- Flag description_matches_behavior=false when the install
  description would not lead a reasonable user to expect the
  hooks/telemetry/data-access found.
- passes=false when any of the above trip. Violations must cite the
  specific hook/file and what the user wasn't told.

The bar is now "handles user data responsibly," not merely "isn't
malicious." A non-malicious plugin that observes more than its stated
purpose justifies will fail.

policy/schema.json — adds required hooks[], has_broad_scope_hooks,
has_undisclosed_telemetry, description_matches_behavior.

scan-plugins.yml:
- fail-on-findings: true (blocking — loosen later if FP rate too high)
- workflow_dispatch with scan_all input for full re-review of all
  external entries
- timeout-minutes: 360 (full scan of 117 entries at ~96s each ≈ 3h)
- trigger on .github/policy/** so prompt edits get scanned

* Bump vercel SHA to test the tightened scan against it
2026-05-07 17:34:32 -05:00
Bryan Thompson
ccd0c95a3d Remove flint from marketplace (#1769) 2026-05-07 14:01:43 -07:00
Bryan Thompson
fcb236134f Remove optibot from marketplace (#1768) 2026-05-07 14:01:05 -07:00
Bryan Thompson
7ce4a6fb53 Add clickhouse plugin (#1683)
* Add clickhouse plugin

* Pin clickhouse to SHA db1c108
2026-05-07 15:31:12 -05:00
Bryan Thompson
83cbef8d25 Add pigment plugin (#1684)
* Add pigment plugin

* Pin pigment to SHA 5bdf088
2026-05-07 15:31:06 -05:00
Bryan Thompson
2c6fb0c6f2 Add qdrant-skills plugin (#1685)
* Add qdrant-skills plugin

* Pin qdrant-skills to SHA 9f935f8
2026-05-07 15:31:00 -05:00
Bryan Thompson
494115a207 Add zilliz plugin (#1686)
* Add zilliz plugin

* Pin zilliz to SHA 17cf04e
2026-05-07 15:30:55 -05:00
Bryan Thompson
89e002a367 Add dash0 plugin (#1641) 2026-05-07 15:30:50 -05:00
Bryan Thompson
63aeda94f0 Add outputai plugin (#1709) 2026-05-07 15:30:44 -05:00
Bryan Thompson
e3243705e8 Remove versori-skills from marketplace (#1765) 2026-05-07 13:11:42 -07:00
Dickson Tsai
f71a8fabde Remove broken autofix-bot marketplace entry (#1047)
The entry's source points to ./external_plugins/autofix-bot, which has
never existed in this repository.
2026-05-07 12:41:03 -07:00
Tobin South
d26df37553 Remove adspirer-ads-agent from marketplace (#1716) 2026-05-07 12:40:59 -07:00
Joe Portner
ec1bcc3a6e Merge pull request #1712 from anthropics/devsec/pin-actions
Pin GitHub Actions to commit SHAs
2026-05-07 15:39:28 -04:00
jportner
693d467cb3 Pin GitHub Actions to commit SHAs 2026-05-07 19:30:08 +00:00
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
Bryan Thompson
c51f5c1513 Bump zapier plugin SHA to f34a785 (#1753) 2026-05-07 19:53:08 +01:00