Tools provided
Tools the agent exposes — your AI client calls them automatically when it needs them.
- map_code_flow — Map the module graph you supply: render it as a Mermaid flowchart with cycles, orphans and dangling imports marked, and report the entry points, the leaf modules, the most depended-upon hubs and the dependency layers. Counts come from your rows; nothing is inferred from a repository.
- find_structural_gaps — Find the structural gaps in the module graph you supply: orphan modules with no dependency either way, the modules on each dependency cycle and the ring to cut, the undocumented share against a stated ratio threshold, and edges pointing at modules you never declared. An empty graph is reported as unknown, never as clean.
- trace_consumers — Decide who has to be told about an interface change. Give it the interface you are about to change and your own consumer inventory, and it returns each consumer's usage, whether notice is required, recommended or not needed, and what that decision rests on. A consumer whose usage the inventory does not record is treated as unknown and decided conservatively, never as unaffected.
- analyse_impact — Score the blast radius of a change: classify every affected module by change type, breaking flag and consumer fan-in, list the breaking call chains, name the consumer services behind them, and roll it into one 0-100 risk score whose weights are returned with the answer. A fan-in you did not measure is scored as unknown, never as safe.
- suggest_regression_tests — Name the regression tests a change demands: for every affected module decide whether it needs a contract, integration or unit test, say which evidence put it on the list, and exclude the modules that genuinely need none. Supply the tests you already have and it reports the gaps instead of assuming coverage.
- write_patch — Compose a line-accurate unified diff from the file contents and the edits you supply, and validate it: every anchor is located in the original text, an anchor that is missing or appears more than once is refused rather than guessed, and an edit naming a file whose contents you did not supply is reported as missing. This agent has no repository access, so it never patches a file it has not been shown, and it does not generate code.
- plan_db_migration — Audit the migration DDL you paste for lock and downtime risk: classify each statement against Postgres or MySQL semantics, give a concrete safe rewrite for the dangerous ones, and report statements that contradict each other, such as a column dropped by one step and indexed by the next. Advisory and read-only - it never connects to a database and never runs anything.
- detect_n_plus_one — Read the slow-query log you paste: group it into query templates, flag the one-query-per-row N+1 signature, suggest the indexes your WHERE clauses need and your own catalog does not have, and compare an EXPLAIN plan before and after. A row missing its counters is excluded and named, never ranked on a guessed number.
- plan_legacy_migration — Turn a large migration's file list into a reviewable pull-request series: batches of 20 to 40 independently mergeable files, a per-file risk score that escalates when size or construct count contradicts the declared complexity, and a behaviour-equivalence test flagged on every batch holding a critical file. A file with no readable complexity is scored critical, never low.
- check_i18n_readiness — Read source for what cannot survive translation: a sentence assembled from fragments in code (no language has to keep your word order), layout pinned to a physical side (margin-left does not mirror), an interpolated value with no bidi isolation (the real reordering failure), pluralization by a comparison against 1 (Arabic has six forms), and prose that never reaches a translation call. It does NOT measure string length: a long string overflows in German as readily as in Arabic.
- read_translation_coverage — Compare your key catalogue against your locale files and report what each locale is MISSING, what is present but EMPTY, what is IDENTICAL to the source, and what is ORPHANED. The identical case is the one every coverage tool counts as done and is usually a key copied through untouched. Coverage counts KEYS, NOT CORRECTNESS - a locale filled entirely by machine translation reports 100% and may be wrong in every string. Locales are never sorted by coverage.
- run_full — Run every capability you supplied the input for, in registry order, and return one report. Capabilities whose input is missing are listed as skipped with the fields they need — never run against a fixture and never reported as zero.
- list_capabilities — List what this agent can do: every tool it advertises, what each one is for, and the arguments each one reads. Useful for discovery before the first call.
- plan_inputs — Plan the inputs for a tool: returns the questions to ask, the JSON schema of the arguments, and a ready-to-edit example. Every argument it names is an argument the tool actually reads.
- discover_intent — Understand your goal and co-design the exact input through clarifying questions before anything runs.
- open_form — Use this the moment the user wants to run this agent on their own input. It opens an interactive form that collects the run arguments. Do NOT check credentials, do NOT ask clarifying questions in chat, and do NOT run any analysis before calling this — the form is the entry point for running the agent.
- run_form — Internal: invoked by the open_form form when the user submits. Reads exactly the same arguments as run_full and forwards all of them. Not for direct use.