Skip to content

A small surface: find, impact, path and tests, answered with their code; CI runs the query cases - #1819

Merged
swapnilpaliwal-sd merged 1 commit into
apps/integration-0.1.9from
surface/find-impact-path-tests
Sep 30, 2026
Merged

swapnilpaliwal-sd merged 1 commit into
apps/integration-0.1.9from
surface/find-impact-path-tests

Conversation

@swapnilpaliwal-sd

Copy link
Copy Markdown
Contributor

A small surface. Agents were offered 8 MCP tools with 69 parameters and about 10,000 characters of tool descriptions. The CLI had 10 to 37 flags per verb. In practice agents asked two questions with no options, and after almost every answer that located code they opened the file to read it.

The offering is now four questions plus a setup verb, the same on the CLI and over MCP, with no options:

CLI MCP answers
axiomcode find "<question>" find(question) where the code for a task lives, including names the code calls that nothing declares
axiomcode impact <name> impact(name) callers, what a change reaches, and the tests
axiomcode impact impact() the same, for the declarations your uncommitted edits changed
axiomcode path <A> <B> path(start, end) the call chain
axiomcode tests tests() the tests your edits reach, and the command that runs them
axiomcode index — builds the graph (--lang, --src, --library)

Answer shape

  • Each answer is a numbered list of places. Each place carries its enclosing function's code, so the agent does not have to open the file.
  • There is one block per function, and at most 10 places.
  • Rows that match only a word, and module-scope rows, are dropped.
  • The shape applies at the front doors, the installed command and the MCP server, when no flag is passed. Calling the dispatcher directly, setting AXIOMCODE_RAW, or passing any flag gives the verb's own answer. So hooks, test suites and scripts are unchanged.
  • The old verbs and flags still work; they are no longer advertised.

Docs and hooks. Help, SKILL.md, AGENTS.md, the Cursor rule, the Gemini copy, the README and the hooks' hints teach only these verbs. An MCP answer drops any clause that names an option the tools refuse; code blocks are never touched.

CI gate against regressions

Validation (on the integration tip)

  • tests/run.py: 1249/1249.
  • 15 standalone suites, including front_door, surfaces, mcp, mcp_docs, manifests and latency: all pass.
  • Release end-to-end harness (every verb, edit and rebuild rounds, five languages): 0 failures.
  • MCP check (find, impact, path and tests on five languages): 35/35.

…s with their code

An agent was offered 8 MCP tools with 69 parameters and ~10,000 characters of descriptions, and the CLI 10-37 flags
per verb; in practice agents asked two questions with no options, and after every located answer read the file.

The offering is now four questions and a setup verb, the same on the CLI and over MCP, with no options:
- find "<question>" / find(question): where the code for a task lives (context underneath); a name the task writes
  that the code calls and nothing declares is listed with its call sites
- impact <name> / impact(name): callers, what a change reaches, the tests; with no name, the same for the
  declarations the uncommitted edits changed
- path <A> <B> / path(start, end): the call chain
- tests / tests(): the tests the uncommitted edits reach, and the command that runs exactly those
- index: build the graph (--lang, --src, --library)

Each answer is numbered places, each with the enclosing function's code (whole when short, else its header and a
window around the lines that matter), one block per function, at most 10, word-match filler and module-scope rows
dropped (ax_blocks.py). The shape applies at the front doors (the installed command, the MCP server) when no flag is
passed; the dispatcher called directly, AXIOMCODE_RAW, or any flag gives the verb's own answer, so hooks, suites and
scripts are unchanged. Old verbs and flags still work and are no longer advertised.

Help, SKILL.md, AGENTS.md, the Cursor rule, the Gemini copy, README and the hooks' hints teach only the four.
MCP answers drop any clause that names an option the tools refuse; code blocks are never touched.

CI: engine (<lang>) runs tests/run.py --lang <lang> after the engine suite (every case must pass; a pending case
that passes fails until its mark is removed), and the python leg runs tests/front_door.py, which checks the shape
through the installed command and MCP and that direct calls and flags keep the old answers.

Co-authored-by: axiomcode-bot[bot] <334110751+axiomcode-bot[bot]@users.noreply.github.com>
@swapnilpaliwal-sd
swapnilpaliwal-sd force-pushed the surface/find-impact-path-tests branch from 23121d4 to 5b857c1 Compare September 30, 2026 09:00
@swapnilpaliwal-sd
swapnilpaliwal-sd merged commit ed52071 into apps/integration-0.1.9 Sep 30, 2026
12 checks passed
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the surface/find-impact-path-tests branch September 30, 2026 09:32
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.

1 participant