feat(validator): add capability taxonomy coverage check#693
Merged
potiuk merged 1 commit intoJul 3, 2026
Conversation
79a9755 to
f6d8481
Compare
…OFT advisory) Reads the Axis 1 (skill) and Axis 2 (tool) capability vocabulary tables from docs/labels-and-capabilities.md and verifies every taxonomy entry appears in at least one mapping-table row; entries marked *(reserved)* or *(future)* are exempt. Cross-checks the SKILL_CAPABILITIES / TOOL_CAPABILITIES code constants against the parsed vocabulary. The reserved/future marker accepts an elaborated parenthetical (e.g. *(future work)*, *(reserved for #999)*), not only the exact forms. Co-authored-by: Justin McLean <justin@classsoftware.com>
f6d8481 to
e17ac4d
Compare
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 a new SOFT validator aspect that cross-checks the Axis 1 (skill) and
Axis 2 (tool) capability vocabulary tables in docs/labels-and-capabilities.md
against the mapping tables, ensuring every taxonomy entry has at least one
implementation or is marked (reserved) / (future). Also verifies that the
hardcoded SKILL_CAPABILITIES and TOOL_CAPABILITIES constants stay in sync with
the parsed vocabulary, catching code/docs drift before it silently spreads.
Ships 15 pytest cases covering: vocab parsing, reserved/future exemptions,
orphaned Axis 1 and Axis 2 entries, constant drift detection, and a live-repo
smoke test that must pass clean.
Generated-by: Claude (Opus 4.7)
Type of change
.claude/skills/<name>/) — eval fixtures updated belowtools/<system>/*.md)tools/*/withpyproject.toml)docs/,README.md,CONTRIBUTING.md)projects/_template/)prek, workflows, validators)Test plan
prek run --all-filespassesuv run pytest/ruff check/mypypasses(
PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner tools/skill-evals/evals/<skill>/)(a regression test for the bug fixed / the behaviour added — see CONTRIBUTING.md)