Skip to content

[BUG-04] Command count is inconsistent across 7 sources — actual=60, docs say 45/56/57/41 #38

Description

@Wolfvin

Summary

The advertised CodeLens command count disagrees across 7 locations in the repo. The actual count (auto-registered command modules in scripts/commands/) is 60 (61 .py files in scripts/commands/ minus __init__.py). Documentation and metadata cite anywhere from 41 to 60.

Evidence

Source Claimed count Location
README.md L5 "57 CLI commands" Intro paragraph
README.md L9 "57 CLI Commands" Features list
README.md L228 "56 commands registered" File-tree comment
README.md L286 "57 commands incl. graph-schema" File-tree comment
SKILL-QUICK.md L146 "Total: 60 commands" Footer
SKILL.md L4 "56 commands" Frontmatter description
pyproject.toml L8 "45 commands" description field
skill.json L4 "45 commands" description field
tests/test_integration.py L2 "41 CodeLens commands" Module docstring
tests/test_integration.py L281 >= 41 Assertion (passes trivially)
Actual 60 command modules ls scripts/commands/*.py | grep -v __init__.py | wc -l returns 60

Impact

  1. Marketing vs reality mismatch: Users reading README.md see "57 commands" but codelens --help lists 60. Erodes trust in docs.
  2. Packaging metadata lies: PyPI description (if shipped) would say "45 commands".
  3. Test assertion is stale: assert len(COMMAND_REGISTRY) >= 41 passes trivially and provides no regression protection. A command could be silently dropped (see related BUG-09) and the test would still pass.
  4. MCP tool count mismatch: SKILL-QUICK.md advertises "55 tools" / "51 static + 7 dynamic = 58 tools" — also inconsistent with the 60-command reality.

Suggested fix

  1. Single source of truth: Add a codelens --count-commands dev subcommand (or a scripts/utils.py:get_command_count() helper) that returns len(COMMAND_REGISTRY) at runtime.
  2. Generate docs from source: Replace hardcoded counts in README.md / SKILL.md / SKILL-QUICK.md with a CI step that rewrites them from the runtime value. (Or just write "60+" and stop pinning the exact number in prose.)
  3. Bump pyproject + skill.json: Update both description fields to reflect 60 commands (or remove the count from the description entirely).
  4. Strengthen the test: Change assert len(COMMAND_REGISTRY) >= 41 to assert len(COMMAND_REGISTRY) == EXPECTED_COUNT where EXPECTED_COUNT is loaded from a single config (or just >= 60 if you want a floor).
  5. Reconcile MCP tool count: Update SKILL-QUICK.md MCP section to match the actual static+dynamic count after the command count is settled.

Files

  • README.md (L5, L9, L228, L286)
  • SKILL.md (L4)
  • SKILL-QUICK.md (L146, MCP section)
  • pyproject.toml (L8)
  • skill.json (L4)
  • tests/test_integration.py (L2, L281)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions