← ClaudeAtlas

searchlisted

Use for ANY search, find, replace, or rename operation across a codebase — text literals, code symbols, semantic concepts, docs, or tasks. INVOKE BEFORE grep, before rename, before "find all X", before any cross-cutting edit. Enforces ground-truth counting before edits so nothing gets missed. Triggers — "find all", "rename X to Y", "replace everywhere", "where is X used", "update all references", "search for", "grep for", "change X to Y in all files", refactor, rename, cross-cutting edits.
kouroshez/coding-os · ★ 6 · AI & Automation · score 77
Install: claude install-skill kouroshez/coding-os
# search Purpose: Route every search task to the correct layer, establish a ground-truth count before any edit, and verify zero remaining matches after. Prevents: agent edits some matches, declares done, but 20+ remain. Read when: Anything involving finding or replacing something — in files, code, memory, docs, tasks. Skip when: You already have the exact file:line from a search earlier in this session and are doing a single-file targeted edit. ## Step 0 — Decision Gate | Target | Layer | Tools | |---|---|---| | Literal text / string in files | **File** | `grep -rnF` → see `references/grep.md` | | Code symbol — function, class, import, MCP tool | **Graph** | → use `graph-explorer` skill | | Semantic concept / "how did we solve X" | **Memory** | `cos_search` | | Spec / doc by meaning | **Docs** | `cos_doc_search` | | Task / ticket by topic | **Tasks** | `cos_task_search` | **Composition:** For a symbol rename, run Graph first (graph-explorer gives you call-sites + doc refs), then File verify to catch comments and unindexed strings. Never rely on a single layer for cross-cutting renames. ## Step 1 — INVENTORY (mandatory before any edit) ```bash # Get ground truth count — this number must reach 0 after editing grep -rnF "OLD_STRING" . $EXCL | wc -l # N = ground truth # List affected files grep -rlF "OLD_STRING" . $EXCL ``` N is your contract. You are not done until the same command returns 0. **Never edit before knowing N.** This is the root cause of the "declared d