mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-10-26 10:45:22 +00:00
feat(prompt): 搜索引导改为意图→工具的正向指引,multi_grep 按上游保持关闭
真实会话中模型仍用 bash grep -o | sort -u 做抽取,被拒后直接放弃核对; 原提示词只说"不要",没告诉它抽取/计数、给程序传文件清单、过滤命令输出时该用什么。 - routing:按已知信息选 grep/find(多变体用 grep 正则 alternation), codemode + tools.grep 做聚合,bash 文件清单用 git ls-files, overflow_query 过滤输出,被拒后改用替代方案继续 - 权限策略:rg/grep/git grep/find/fd 的 deny 附带指向替代工具的 reason - tools.jsonc:grep/find 新 snippet,补上 codegraph_explore snippet - FFF 上游标注 multi_grep 有害:wrapper 删除 PI_FFF_MULTIGREP,清理全部引用 - JSONC 测试改用字符串感知的注释剥离(reason 中含 'src/**/*.ts') Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent
833b9514d4
commit
dae1a01f23
@@ -16,16 +16,25 @@
|
||||
"text": "Use LSP for symbol definitions, references, hover/type information, and post-edit diagnostics when the language server supports the file."
|
||||
},
|
||||
{
|
||||
"whenAny": ["find", "grep", "multi_grep"],
|
||||
"text": "For literal search, narrow in stages instead of requesting a repository-wide dump:\n 1. Use find to identify likely files or directories. Constrain path/glob and keep the result limit small.\n 2. Use grep or multi_grep only inside the narrowed path or file to obtain matching line numbers. Start with a specific or literal pattern, a small context window, and a bounded limit.\n 3. Use read with offset/limit only for the exact matching region when full source is still needed."
|
||||
"whenAny": ["find", "grep"],
|
||||
"text": "Pick the local search tool by what you already know:\n - Exact identifier or text: grep with a literal pattern, constrained by path/exclude. Do not run find first just to locate it.\n - Several identifiers or naming variants: one grep with a regex alternation (e.g. user_id|userId|UserId) instead of several greps.\n - A filename, path fragment, or feature concept: find (fuzzy whole-path match; use a glob in path for exact names).\n - Then read only the matching region with offset/limit."
|
||||
},
|
||||
{
|
||||
"whenAny": ["find", "grep", "multi_grep"],
|
||||
"whenAny": ["find", "grep"],
|
||||
"text": "Do not run a broad search expected to return hundreds or thousands of files or matches. If results truncate or hit a limit, narrow the path, glob, or pattern instead of increasing the limit or dumping all results."
|
||||
},
|
||||
{
|
||||
"whenAll": ["codemode"],
|
||||
"whenAny": ["find", "grep"],
|
||||
"text": "To extract, deduplicate, count, or aggregate across search matches (what grep -o | sort -u | wc would do), call tools.grep / tools.find inside one codemode script and post-process the results in JavaScript."
|
||||
},
|
||||
{
|
||||
"whenAny": ["bash"],
|
||||
"text": "Use bash for builds, tests, git, package scripts, and other programs. Never search files by running grep, find, rg, or fd through bash; use the find/grep tools."
|
||||
"text": "Use bash for builds, tests, git, package scripts, and other programs. Never run grep, rg, find, fd, or git grep in bash — standalone, piped, inside a loop, or in $(…). Search files with the grep/find tools; when a program needs a file list (wc, node, tsc), pass $(git ls-files '<glob>')."
|
||||
},
|
||||
{
|
||||
"whenAll": ["bash", "overflow_query"],
|
||||
"text": "To filter a command's output, run it without | grep; if the result carries a [pi-overflow id=…] marker, search it with overflow_query instead of re-running."
|
||||
},
|
||||
{
|
||||
"whenAny": ["ssh_connect"],
|
||||
@@ -59,12 +68,15 @@
|
||||
},
|
||||
{
|
||||
"whenAny": ["read"],
|
||||
"text": "Use read only when exact source is needed or the file is small. Before editing, request the smallest useful offset/limit range; do not read a complete large file merely to copy, compare, hash, count, explore, or summarize it."
|
||||
"text": "Use read only when exact source is needed or the file is small. Before editing, request the smallest useful offset/limit range; do not read a complete large source file merely to copy, compare, hash, count, or explore it. Reading project overview docs such as a README in full is fine."
|
||||
},
|
||||
{
|
||||
"whenAll": ["read", "edit"],
|
||||
"text": "For existing-file changes, obtain fresh LINE#HASH anchors with a small read (find/grep output has no anchors), then use anchored edit operations. Reuse fresh anchors returned by successful edits for chained changes; re-read only when anchors are stale or the next target region was not shown."
|
||||
},
|
||||
{
|
||||
"text": "When a tool call is denied by policy, use the alternative named in the denial and continue the subtask; do not drop it or present unverified facts as checked."
|
||||
},
|
||||
{
|
||||
"text": "Stop searching once the current evidence is sufficient. Avoid repeating the same lookup through CodeGraph, find, grep, and read without a concrete information gap."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user