Skip to content

feat(validator): add capability taxonomy coverage check#693

Merged
potiuk merged 1 commit into
apache:mainfrom
justinmclean:capability-taxonomy-coverage-check
Jul 3, 2026
Merged

feat(validator): add capability taxonomy coverage check#693
potiuk merged 1 commit into
apache:mainfrom
justinmclean:capability-taxonomy-coverage-check

Conversation

@justinmclean

Copy link
Copy Markdown
Member

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

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)
  • Other:

Test plan

  • prek run --all-files passes
  • For Python packages touched: uv run pytest / ruff check / mypy passes
  • For Groovy bridges touched: command-line invocation tested end-to-end
  • For skill changes: eval suite passes for the affected skill
    (PYTHONPATH=tools/skill-evals/src python3 -m skill_evals.runner tools/skill-evals/evals/<skill>/)
  • For skill behaviour changes: a new or updated eval fixture is included in this PR
    (a regression test for the bug fixed / the behaviour added — see CONTRIBUTING.md)
  • Other:

…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>
@potiuk potiuk force-pushed the capability-taxonomy-coverage-check branch from f6d8481 to e17ac4d Compare July 3, 2026 13:54
@potiuk potiuk merged commit feee2aa into apache:main Jul 3, 2026
34 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