Repository navigation
PLU-276: Collapse /evals:eval command into the eval skill - #12
Merged
benv2k6 merged 5 commits intoJun 17, 2026
Merged
Conversation
Skills are now slash-invocable (commands and skills were unified in Claude Code), so the separate commands/eval.md duplicated ~95% of the evaluator skill's prose and risked silent drift. Rename skills/evaluator/ -> skills/eval/ (name: eval) so /evals:eval is served directly by the skill — no command file, no shim, no indirection hop, single source of truth. Delete commands/eval.md and update the test comment to point at the new path. README /evals:eval references stay valid (same name, now from the skill). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- marketplace.json plugins[].version 0.3.0 -> 0.4.0 to match plugin.json - CLAUDE.md: remove commands/ from repo layout and intro (the plugin ships skills only); fold slash-command guidance into the Skills section (skills are slash-invocable and auto-activated) - Release checklist now calls out keeping both version fields in sync Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CLAUDE.md, .claude/, and .vscode/ are local development files (internal conventions, editor and plugin settings) that should not ship in the public marketplace repo. Untrack them and add to .gitignore; they remain on disk for local development. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The check-linear-issue workflow exposed the internal Linear/PLU process and would fail CI for external contributors who have no Linear access. Remove it from the public marketplace repo (recoverable from git history if a private/internal copy is wanted). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The eval command was collapsed into the skill, so the orchestrator instruction strings and test comments that read "eval skill / command" are now inaccurate — only the skill exists. Drop the "/ command" half in 6 spots (classifiers.py, evaluator.py x3, test_tools.py x2). Behavior-neutral: string/comment wording only. ruff + pyright clean, 48 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
benv2k6
deleted the
feature/plu-276-collapse-eval-command-into-skill-shim
branch
June 17, 2026 10:31
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
Skills are now slash-invocable in Claude Code (custom commands and skills were unified — a
SKILL.mdproduces a/command just like acommands/*.mdfile). That madecommands/eval.mdandskills/evaluator/SKILL.mdtwo near-identical entry points for the same flow (~95% duplicated prose: auth handling,search_evaluators-first, the frozen-task constraint, input templating, the optimize/poll/integrate steps), with a standing risk of silent drift.This collapses the two into one source of truth:
skills/evaluator/→skills/eval/(frontmattername: evaluator→name: eval) so/evals:evalis served directly by the skill — no command file, no shim, no indirection hop.commands/eval.md.tests/test_tools.pyto point at the new path..omc/to.gitignore(local OMC state, should never be tracked).The
/evals:evalname is preserved, so the README references (and users' muscle memory) stay valid — it's just now backed by the skill instead of a duplicate command.Why the rename instead of a thin shim
A shim command that delegates to the skill would keep the name but adds an indirection hop (load command → tell model to run skill → run skill) and a second file to maintain. Renaming the skill to
evalgives the same/evals:evalname with zero extra files and no hop.Test plan
uv run pytest tests/test_tools.py→ 48 passed.skills/evaluator,commands/eval, orevals:evaluatoranywhere in the repo.claude --plugin-dir .→/reload-plugins→/evals:eval <task>picks up the flow via the skill.Closes PLU-276.
🤖 Generated with Claude Code