From b614b18a7e553c5096732fa8bb6f489b2ef0f40d Mon Sep 17 00:00:00 2001 From: Gary Jarrel Date: Wed, 28 Oct 2026 22:36:15 +1100 Subject: [PATCH] Fail the sync only on new plugin components, not any new folder The check failed every run from 2026-10-26 because Michael added mirror-assets/, six README SVGs. Listing every allowed top-level entry breaks on each harmless folder. Look instead for the default locations of the component types in Cursor's plugin schema that .apm/ does not cover: rules, commands, hooks, and MCP servers. Declared components were already caught by the manifest key check. --- .github/workflows/sync.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index edbfd520..edcf7e49 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -78,11 +78,12 @@ jobs: jq -e 'keys - ["$schema", "name", "displayName", "version", "description", "author", "homepage", "repository", "license", "logo", "keywords", "category", "tags", "skills", "agents"] == []' "$manifest" done jq -e '.skills == "./skills/" and .agents == "./agents/"' .cursor-plugin/plugin.json - unknown=$(git ls-tree --name-only HEAD | grep -vxE '\.apm|\.cursor-plugin|\.github|\.gitignore|agents|apm\.yml|assets|automations|docs|LICENSE|MIRROR\.md|plugin\.json|README\.md|skills' || true) - if [ -n "$unknown" ]; then - echo "::error::New top-level entries that .apm/ may not cover: $unknown" - exit 1 - fi + for component in rules commands hooks mcp.json .mcp.json; do + if [ -e "$component" ]; then + echo "::error::pstack now ships $component, which .apm/ does not cover" + exit 1 + fi + done digest: needs: sync