Repository navigation
Consolidate shared plugin checks into the root validator - #2
Merged
Merged
Conversation
The root validator now runs the packaging rules every bundled plugin shares (manifests, schema, no MCP servers or apps, OpenAI interface, skill frontmatter, openai.yaml) itself instead of relying on each plugin's copy. A plugin's own scripts/validate.py becomes optional and only runs plugin-specific checks. The shared rules are tested once in tests/test_package.py. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf
Every check in calslashd's scripts/validate.py is now a shared check in the root validator, including allowing extra skills beside skills/calslashd/. The footer test stays. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf
linear-topic-grouper, netnewswire-digest, and notion-career-ops keep a small scripts/validate.py with the one rule the root does not apply to every plugin: exactly one skill. The rest of each copy is now checked by the root validator. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf
danielh-official
marked this pull request as ready for review
October 7, 2026 15:27
A plugin may hold any number of skills, so linear-topic-grouper, netnewswire-digest, and notion-career-ops no longer need their own validator or tests. The root still requires skills/<plugin name>/SKILL.md and runs a plugin's scripts/validate.py when one exists. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf
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.
Requested by Daniel · project thread
Before: each plugin carried a near-identical copy of
scripts/validate.pyandscripts/test_validate.py, and the root validator failed any plugin without one.After: the root
scripts/validate.pychecks the packaging rules every plugin shares, and those rules are tested once intests/test_package.py. A plugin's ownscripts/validate.pyis optional and holds only the rules specific to that plugin. The root runs it when it exists. A plugin may hold any number of skills, but it must haveskills/<plugin name>/SKILL.md. None of the current plugins needs a plugin-specific validator. calslashd keeps its footer test.How: this PR has one commit per topic for review.
Move shared package checks into the root validator: addsvalidate_package()to the root, calls it for each local plugin, makes the plugin validator optional, and adds the shared tests.calslashd: drop package validator now covered by the root: calslashd keeps onlytest_footer.py.Reduce single-skill plugin validators to their own rule: an intermediate step, superseded by commit 5.Document where shared and plugin-specific checks live: README, plugin READMEs, AGENTS.md.Drop the one-skill limit from single-skill plugins: removes the remaining plugin validators and their CI steps.No skill text changed, so there are no version bumps.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XJJ3Sfmt8zPSsJ3WkZ6Pzf