Add CI validation, release workflow, plugin validator - #3
Draft
patrickking67 wants to merge 2 commits into
Draft
patrickking67 wants to merge 2 commits into
patrickking67 wants to merge 2 commits into
Conversation
- scripts/validate_plugin.py: catches the three bug classes we shipped in v1.0 — unparseable YAML frontmatter, wrong schema keys (`authors` vs `author`, `tools` as a list), JSON / TOML syntax errors. Also verifies marketplace.json and plugin.json structure, and that every [mcp_servers.*] entry in codex-config.toml has command or url. - .github/workflows/validate.yml: runs the validator on every push + PR, lints Max for Live JS with `node --check`, and builds the plugin bundle as a smoke test (catches packaging regressions). - .github/workflows/release.yml: builds and attaches producer.plugin to a GitHub Release on every `v*` tag push (or manual dispatch). Plugin bundle is no longer committed to main — `.gitignore` excludes dist/ and README points sideloaders to the latest release instead.
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.
Summary
Adds the three things that would have caught the install-breaking bug we shipped in v1.0 before it merged.
1.
scripts/validate_plugin.pyCatches every bug class we hit:
task: readsagent bug)authors(plural array) vsauthor(singular object),tools:as YAML list vs comma-separated stringmarketplace.json/plugin.json/.mcp.jsoncodex-config.toml[mcp_servers.*]entries that have neithercommandnorurlowner.url— not in the marketplace schema)Run locally:
pip install pyyaml && python3 scripts/validate_plugin.pyRegression-verified: re-introducing the exact bug we fixed in #2 (unquoted colon in
description:) makes the validator exit 1 withmapping values are not allowed here.2.
.github/workflows/validate.ymlRuns on every push to
mainand every PR. Steps:validate_plugin.py(schema + frontmatter)node --checkeverymax-for-live/*.jsplugin.json+ agent YAML3.
.github/workflows/release.ymlTriggers on
v*tag push (or manual dispatch). Buildsproducer.pluginfromplugins/producer/, validates the bundle, attaches it to a GitHub Release with auto-generated notes.Cleanup
dist/producer.pluginis no longer committed (it's a build artifact)..gitignoreexcludesdist/.README.md"Manual install (bundle)" now points to latest GitHub release instead of the in-repo path, and adds a "Development" section with the local validator command.Test plan
validate.ymlruns green on this PRv1.0.1tag →release.ymlbuilds and publishes the bundlepython3 scripts/validate_plugin.pyexits 0 on a clean checkout, 1 if any frontmatter/JSON/TOML is brokenv1.0.1is publishedGenerated by Claude Code