Conversation
CI (PRs + main): scripts/validate.py enforces the documented contracts — SKILL.md frontmatter, plugin.json ↔ skill dirs, and ontology.yaml coverage in registry-schema.md and every connector schema guide; lychee checks relative links; an advisory Ollama job reviews semantic drift in changed schema docs. Releases: pushing vX.Y.Z verifies the version against plugin.json, re-validates, and publishes a Release from the CHANGELOG.md section. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
scripts/validate.py— enforces the contracts the docs already declare: parses ontology.yaml / plugin.json / evals.json / config template / all SKILL.md frontmatter; frontmatternamemust match its directory;plugin.jsonmust list exactly theskills/dirs; every ontology entity, property, relation, and fixed enum value must be covered byregistry-schema.mdand mapped (canonical:) in eachconnectors/*-schema.mdguide..github/workflows/ci.yml— runs the validator + lychee offline link check on PRs and main. A third advisory job (PR-only, never blocking) sends changed schema docs to Ollama Cloud to flag semantic drift the mechanical check can't see; it skips silently unless theOLLAMA_API_KEYsecret is set..github/workflows/release.yml— on av*tag: verifies the tag matchesplugin.jsonversion, re-runs the validator, and publishes a GitHub Release whose body is the matchingCHANGELOG.mdsection (fails if missing) plus auto-generated notes.CHANGELOG.mdseeded with v0.1.0; README gets a CI badge and the release convention.Verified
validate.pypasses on clean main and fails with a named violation for each broken invariant (skill removed from manifest, unmapped property in a connector guide, mismatched frontmatter name, enum value missing from prose).[<source>](<url>)placeholders is excluded from lychee).🤖 Generated with Claude Code