Skip to content

Consolidate shared plugin checks into the root validator - #2

Merged
danielh-official merged 5 commits into
mainfrom
claude/project-thread-dlmlkk
Oct 8, 2026
Merged

danielh-official merged 5 commits into
mainfrom
claude/project-thread-dlmlkk

Conversation

@danielh-official

@danielh-official danielh-official commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Requested by Daniel · project thread

Before: each plugin carried a near-identical copy of scripts/validate.py and scripts/test_validate.py, and the root validator failed any plugin without one.

After: the root scripts/validate.py checks the packaging rules every plugin shares, and those rules are tested once in tests/test_package.py. A plugin's own scripts/validate.py is 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 have skills/<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.

  1. Move shared package checks into the root validator: adds validate_package() to the root, calls it for each local plugin, makes the plugin validator optional, and adds the shared tests.
  2. calslashd: drop package validator now covered by the root: calslashd keeps only test_footer.py.
  3. Reduce single-skill plugin validators to their own rule: an intermediate step, superseded by commit 5.
  4. Document where shared and plugin-specific checks live: README, plugin READMEs, AGENTS.md.
  5. 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

claude added 4 commits October 7, 2026 15:22
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 danielh-official self-assigned this Oct 7, 2026
@danielh-official
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
@danielh-official
danielh-official merged commit 549c195 into main Oct 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants