locate
Finds where to start on a coding task: pass code names and domain terms in one call to get a short ranked list of matching files with reasons, without reading files.
Instructions
Where to start with a task: give the names and domain terms from the task in ONE call; answers from the project map (no file reading) with a short ranked list of files (top 5; all: true = every match), each with its reasons: exact definition, file name, name part, string literal, call, callers: N. Example: {"terms": ["RefundController", "processRefund", "refund", "payment_status", "checkout.vue"]}. Pitfall: pass code names, not a sentence; translate non-English domain words to their English code names (visszatérítés → refund); one call with all terms, not one call per term. For exact text (log message, config value) use Grep.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"terms": "<terms>"
},
"name": "locate"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Every matching file instead of the top 5. | |
| terms | Yes | Names and domain terms from the task, in code form: function / class / file names, columns, routes, and the English code name of a non-English domain word (`["RefundController", "processRefund", "refund", "payment_status", "checkout.vue"]`); a single string works too. An element with spaces is one phrase, matched as a whole against string literals (a UI label); `route::events.show` finds a route's definition and its `route()` calls; `--orange-500` a CSS custom property. | |
| project | No | Registered project alias; default: the server's working directory. |