Skip to content

cli/mcp/hooks: consolidated gaps from agent dogfooding (edit state, indexing, skill docs) #1835

Description

@swapnilpaliwal-sd

Summary

Dogfood agents in all three languages hit the same problems in the shared surface: the CLI verbs, the MCP tools, the post-edit hook, indexing, and the skill docs. This issue collects them. Language-specific gaps are tracked in the per-language consolidated issues.

Root cause

  • changed, test-impact and the post-edit hook answer from the state the graph was built from, not from the working tree against the base revision. After the graph is rebuilt from an edited tree the edit is part of the baseline, so changed reports no change and test-impact selects nothing (the full repro was changed / test-impact: after the graph is rebuilt from an edited tree, an edit is reported as no change and no test is selected #1566). After a complete rename, the hook still says the old name has callers because it does not re-read the tree.
  • The hook's graph provenance check misreads a graph the agent just built as "built by an older axiomcode" and repeats the line on nearly every call.
  • The skill docs and the tool schemas drift: SKILL.md documents an MCP context argument that the tool rejects.
$ git diff --stat
 src/util.ts | 7 +++++++
$ axiomcode changed
no change to a declaration the graph knows (working tree against <base sha>)
$ axiomcode test-impact
no changed declaration the graph can name, so no test can be selected from it.

In progress

  • fix/index-skip-unneeded: skip vendored code, report the main language first, kill the process tree.

Checklist

  • After the graph is rebuilt from an edited tree, changed and test-impact still report the edit and name the revision they compare against (from changed / test-impact: after the graph is rebuilt from an edited tree, an edit is reported as no change and no test is selected #1566; a Java round hit the same, "part of the baseline" and 0 tests selected).
  • changed and test-impact on 61 edited files take 32 s on a Java project; make them proportional to the edit.
  • After a complete rename, the post-edit hook and changed do not say "its callers still name X" when 0 uses remain. Seen in all three languages; re-check after PR changed: classify edits by place and parameters, not by name #1809.
  • The hook does not call a graph the agent just built "built by an older axiomcode", and after an install move it says that line once per session.
  • A facts view (a verb or an impact section) prints every graph fact attached to a declaration or a file:line: decorations and annotations with their arguments, ancestors, bound config keys, the call sites inside a span, and why a dispatch pair was dropped. It replaces the hand sqlite queries fix agents keep running.
  • SKILL.md and the MCP context tool agree on refresh=false.
  • changed says tests/cases files are read by tests/case_runner.py; it should name tests/run.py.
  • The test-impact dispatch rung ranks tests by count; rank the override's own package first.

Related open issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    csharpC#enhancementNew feature or requestjavaJavamcpthe MCP layer of the pluginpluginthe axiomcode plugin: skill + MCP layerpythonPythonskillAgent-facing query skill (skills/axiomcode)

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions