Skip to content

fix(commands): resolve 13 hidden-pending commands (closes #200)#201

Open
Wolfvin wants to merge 1 commit into
mainfrom
fix/issue-200-resolve-hidden-pending-commands
Open

fix(commands): resolve 13 hidden-pending commands (closes #200)#201
Wolfvin wants to merge 1 commit into
mainfrom
fix/issue-200-resolve-hidden-pending-commands

Conversation

@Wolfvin

@Wolfvin Wolfvin commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

Resolves issue #200 — the 13 hidden-pending commands left after PR #195's consolidation are now all resolved (absorbed, made visible, or dropped).

codelens --command-count: 12 → 13 (plugin now visible)
Hidden-pending commands: 13 → 0

Changes

Absorbed (5 commands → umbrella --check / --mode)

Command Umbrella Dispatch
check audit audit --check check (CI quality gate)
missing-refs audit audit --check missing-refs (CSS/HTML mismatch)
deps-audit security security --check deps-audit (OSV.dev CVEs)
list search search --mode list (list registry entries)
query search search --mode query (query symbol + callers/callees)

Each absorbed command file is kept as a hidden deprecated alias (hidden=True, deprecated_alias_for='<umbrella>') for one version of backward compat. Invoking the old name prints a DEPRECATED redirect warning to stderr. Tests that import cmd_list / cmd_query / check.add_args continue to work unchanged.

Made visible (1 command)

  • plugin: hidden=Truehidden=False. Plugin lifecycle management (install/uninstall/search/validate) is unique and does not overlap with any umbrella.

Dropped (7 commands, files deleted)

Command Reason
analyze Overlap with scan + audit + summary
lsp Server launcher, not an analysis command
entrypoints Subset of context --check orient
state-map No reliable engine behind it
config-drift Overlap with audit --check staleness
test-map No proven engine
type-infer No proven engine

Dropped commands are now invalid choices (not callable via CLI).

Test Results

Per-command evaluation (issue DoD checklist)

Each of the 13 commands was tested against a test workspace (HTML/CSS/JS fixtures + package.json + requirements.txt) as a substitute for the unavailable fought/extension_source/ts codebase.

Command Output Decision
check 14 findings, gate failed absorb → audit
deps-audit 15 vuln findings absorb → security
missing-refs 1 finding on mismatch ws absorb → audit
list 42 entries absorb → search
query found:true, detailed absorb → search
plugin 2 plugins listed visible
analyze full analysis (overlap) drop
lsp server launcher (no workspace arg) drop
entrypoints 3 entrypoints (overlap) drop
state-map 0 stores, empty drop
config-drift drift data (overlap) drop
test-map coverage map (unproven) drop
type-infer type map (unproven) drop

New --check / --mode dispatches return non-empty output

Verified after codelens scan <ws> (registry built):

  • audit --check check → 14 findings ✓
  • audit --check missing-refs → 1 finding ✓
  • security --check deps-audit → 15 findings ✓
  • search --mode list → 42 entries ✓
  • search --mode query → found:true ✓

Test suite

  • test_issue195_consolidation.py: 24 passed (including 7 new issue chore(commands): evaluate and resolve 13 hidden-pending commands #200 tests)
  • test_command_count.py: 6 passed
  • test_command_registry.py: passed
  • test_cli.py (TestCmdQuery, TestCmdList, TestCheckCommandArgs): 12 passed
  • test_deps_audit.py, test_formatters.py, test_codelens.py: passed
  • test_orient.py, test_query_graph.py, test_html_parser.py, test_css_parser.py, test_registry.py: passed
  • sync_command_count.py --check: all docs in sync (idempotent)

Pre-existing failures (unrelated, fail on clean main too):

  • test_cli.py::TestArgparseFormatConflictRegression (3 tests: -f conflict + scan timeout) — environment-specific
  • test_compact_format.py::TestMCPGraphSchemaTool (2 tests: stale _TOOL_DEFINITIONS) — pre-existing
  • test_doctor.py::TestOutputSchema (11 tests: output schema drift) — pre-existing
  • test_lsp_server.py, test_rule_engine.py, test_rule_matcher.py — collection errors (missing deps: lsprotocol)

Files Modified

  • scripts/commands/audit.py — added check + missing-refs checks
  • scripts/commands/security.py — added deps-audit check
  • scripts/commands/search.py — added list + query modes
  • scripts/commands/{check,deps_audit,missingrefs,list,query}.pydeprecated_alias_for set
  • scripts/commands/plugin.pyhidden=True removed (now visible)
  • Deleted: scripts/commands/{analyze,lsp,entrypoints,state_map,config_drift,test_map,type_infer}.py
  • Docs synced (via sync_command_count.py --apply): README.md, SKILL.md, SKILL-QUICK.md, pyproject.toml, skill.json, graph_model.py
  • tests/test_issue195_consolidation.py — updated for 13 visible commands + 7 new dispatch tests

Constraint Compliance

  • ✅ Only commands/*.py touched (no engine files modified)
  • ✅ Umbrella pattern followed (audit.py / security.py --check dispatch; search.py --mode dispatch)
  • ✅ Each new --check/--mode returns non-empty output on test codebase
  • ✅ Dropped commands are invalid choices
  • ✅ No design doc required (no new command files added; only modified/removed)

Findings (out of scope, flagged for BOS)

  1. lsp was a server launcher, not an analysis command. The issue rationale ("subset of doctor --check lsp-status") is not quite accurate — doctor --check lsp-status checks LSP status, while lsp launches the LSP server. Dropped per the issue's explicit instruction, but the BOS may want to reconsider if editor-integration users relied on codelens lsp.

  2. Stale MCP _TOOL_DEFINITIONS. The MCP server still has static tool definitions for commands dropped in refactor(commands): consolidate 78 commands → 12 focused commands #195 (a11y, artifact_scan, ask, etc.) and now chore(commands): evaluate and resolve 13 hidden-pending commands #200 (analyze, config_drift, entrypoints). These appear in tools/list even though the commands are gone. Pre-existing — not touched per the "only commands/*.py" constraint.

  3. context-snapshot/CodeLens/CONTEXT.md in worker-skills repo should be updated to reflect: 13 visible commands (12 umbrellas + plugin), 0 hidden-pending, and the new --check/--mode dispatches. This is a separate PR to Wolfvin/worker-skills.

  4. Test codebase substitution. The issue references fought/extension_source/ts (not available in this environment). Testing was done against CodeLens test fixtures (HTML/CSS/JS) + the CodeLens scripts/ Python codebase as a substitute. All absorb candidates produced substantive output on these workspaces.

Closes #200

Issue #200: resolve the 13 hidden-pending commands left after PR #195.

Absorbed (5 commands → umbrella --check / --mode):
- check → audit --check check (CI quality gate)
- missing-refs → audit --check missing-refs (CSS/HTML mismatch)
- deps-audit → security --check deps-audit (OSV.dev dependency CVEs)
- list → search --mode list (list registry entries)
- query → search --mode query (query symbol with callers/callees)
Each absorbed command remains as a hidden deprecated alias for one
version of backward compat (tests that import cmd_list/cmd_query still
pass).

Made visible (1 command):
- plugin: standalone visible command (hidden=False). Plugin lifecycle
  management is unique and does not overlap with any umbrella.

Dropped (7 commands, files deleted):
- analyze (overlap with scan + audit + summary)
- lsp (server launcher, not an analysis command)
- entrypoints (subset of context --check orient)
- state-map (no reliable engine behind it)
- config-drift (overlap with audit --check staleness)
- test-map (no proven engine)
- type-infer (no proven engine)

Result:
- --command-count: 12 → 13 (plugin now visible)
- hidden-pending commands: 13 → 0
- All 5 new --check/--mode dispatches return non-empty output on test
  workspaces (verified with scan-then-audit workflow).
- Dropped commands are invalid choices (not callable).
- Deprecated aliases print redirect warnings to stderr.
- Docs synced via sync_command_count.py --apply (README, SKILL.md,
  SKILL-QUICK.md, pyproject.toml, skill.json, graph_model.py).
- test_issue195_consolidation.py updated: 13 visible commands, 7 new
  dispatch tests, dropped-commands assertion, no-hidden-pending guard.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sonarqubecloud

sonarqubecloud Bot commented Jul 4, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
5.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

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.

chore(commands): evaluate and resolve 13 hidden-pending commands

1 participant