Skip to content

CI and validator cover manifests only: skills, hooks, mcp.json, agents and the script test suites are unchecked #531

Description

@deanrie

Summary

The validator and the workflow that runs it leave most of what plugins ship unchecked. Collected while going through the repo last week; filing as one issue so the pieces can be picked off separately.

What validate-plugins.yml covers today

  • Trigger paths: is .cursor-plugin/marketplace.json, **/plugin.json, schemas/**. A PR that only touches SKILL.md, hooks.json, mcp.json, agents or scripts runs no CI at all.
  • Dependencies are npm install --no-save ajv ajv-formats with no lockfile, so every run resolves whatever Ajv major is current.
  • scripts/validate-plugins.mjs checks the two manifests against the schemas and that name matches the marketplace entry. It does not check that skills / agents / rules / hooks / mcpServers / logo paths exist, that SKILL.md or agent frontmatter parses, that ${VAR} placeholders in mcp.json are declared in variables, or that every directory with a plugin.json is listed in the marketplace.

What that has let through

Suggested shape

  1. Broaden paths: to the whole tree (or drop the filter); the job takes seconds.
  2. Add a root package.json + lockfile with ajv/ajv-formats pinned and use npm ci.
  3. Extend the validator: path existence for component fields, frontmatter parse + required name/description for SKILL.md and agents/*.md, mcp.json placeholders vs variables, unlisted plugin directories. Validate SKILL.md frontmatter in CI #440 already proposes the SKILL.md part with a skill.schema.json; it is conflicting now but the approach fits.
  4. A second job running bun test / tsc in the two script packages.

Activity

  1. saleh98salehsleem1198-ai commented on Oct 10, 2026

    @saleh98salehsleem1198-ai

    Anything ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions