Merge pull request #7 from ZeroPointRepo/chore/publisher-transcriptapi #13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Validate Agent Plugin | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| # The spec and its schemas are living documents — re-check weekly so drift | |
| # surfaces here rather than in a user's client. | |
| - cron: '17 4 * * 1' | |
| jobs: | |
| validate: | |
| name: Agent Plugins 1.0.0 conformance | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| # --- Schema conformance, against the LIVE canonical schemas ------------- | |
| - name: Fetch canonical schemas | |
| run: | | |
| curl -fsSL -o /tmp/plugin.schema.json https://agent-plugins.org/schemas/1.0.0/plugin.schema.json | |
| curl -fsSL -o /tmp/mcp.schema.json https://agent-plugins.org/schemas/1.0.0/mcp.schema.json | |
| - name: Validate plugin.json | |
| run: npx -y ajv-cli@5 validate --spec=draft2020 -s /tmp/plugin.schema.json -d plugin.json | |
| - name: Validate mcp.json | |
| run: npx -y ajv-cli@5 validate --spec=draft2020 -s /tmp/mcp.schema.json -d mcp.json | |
| # --- Agent Plugins §7.1: skills MUST conform to the Agent Skills spec --- | |
| # A conformant client SKIPS a non-conforming skill, so a schema-valid | |
| # manifest with broken skills still ships a broken plugin. Use the | |
| # official reference validator, not a homegrown frontmatter check. | |
| - name: Install skills-ref (official Agent Skills validator) | |
| run: | | |
| git clone --depth 1 https://github.com/agentskills/agentskills.git /tmp/agentskills | |
| pip install --quiet /tmp/agentskills/skills-ref | |
| - name: Validate every skill against the Agent Skills specification | |
| run: | | |
| fail=0; n=0 | |
| for d in skills/*/; do | |
| n=$((n+1)) | |
| if skills-ref validate "$d" >/dev/null 2>&1; then | |
| echo "PASS $d" | |
| else | |
| echo "::error::$d does not conform to the Agent Skills specification" | |
| skills-ref validate "$d" 2>&1 | sed 's/^/ /' | |
| fail=1 | |
| fi | |
| done | |
| echo "validated $n skills" | |
| exit $fail | |
| # --- Normative requirements a schema cannot express -------------------- | |
| - name: Check specification conformance | |
| run: python .github/scripts/check_conformance.py |