ast_grep_search was mentioned exactly once in the librarian prompt
(bundled as 'grep/ast_grep_search for function/class') with no syntax
guidance. When the librarian cloned a repo and tried to match code
shape, it fell into the same regex-in-AST trap as the main agent.
Two targeted edits, no rewrite of the surrounding request-classification
flow:
- Phase 1 TYPE B 'Find the implementation' now separates ast_grep_search
(code shape) from grep (text/literals) and reminds the LLM that AST
patterns use $VAR and $$$ and are not regex.
- TOOL REFERENCE adds a dedicated ast_grep_search row with valid
examples and the explicit regex anti-pattern list, alongside tightened
guidance for grep_app and grep so the LLM picks the right tool for
cross-repo vs single-repo, text vs shape.