Search functions by what they do
search_by_intentSearch every function in this project by what it does, including sibling repos you do not have checked out. Pass a plain-English concept ('verify a webhook signature'); matches need no keyword overlap. Use it before writing any helper, parser, validator or domain function, even when you are sure it is new — grep can prove a name is absent but never that the behaviour is. A row whose only tie to the query is a word most functions share is counted in the response rather than ranked. To browse instead, use list_function_intents. For a set of functions you are about to write or have just written, and for a whole-project reuse audit, use find_similar.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Your repo as owner/repo (git remote) or just the repo name. Resolves which Carrick project to query. | |
| query | Yes | Plain-English description of what the function should do (e.g. 'verify webhook HMAC signature', 'normalize email addresses') | |
| top_k | No | How many top matches to return (default 8). Keep tight — the agent should drill in on a few good matches rather than skim a long list. | |
| offset | No | Rank offset into the matches (default 0). Pass the `next_offset` from a previous call to page through. | |
| compact | No | Return locator-only rows (name, path, lines, similarity) instead of full detail. Use for wide enumeration. | |
| project | No | Carrick project slug to query. Omit to auto-resolve via `repo`, or omit both when the workspace has one project. | |
| also_phrased_as | No | Up to 2 further wordings of the same concept, such as the mechanism ('sha256 of a JSON body') beside the purpose ('hash a value to a cache key'). Purpose wording and mechanism wording reach different functions, so one call runs both and returns one deduped list, with matched_phrasings on each row naming the wordings that found it. For separate questions, call the tool once per question. | |
| similarity_threshold | No | Cosine-similarity floor for inclusion (default 0.3). Raise to filter weak matches; lower to surface more candidates. |