fe-index-querylisted
Install: claude install-skill soumit-kaz/lazysitter
# Querying the frontend index
## Why this exists
`grep -r "ConfirmDialog"` returns matches in a doc comment, a Storybook title, a test fixture, a changelog, and a string literal — and misses `AreYouSureModal`, which is the same component under a different name. It cannot resolve `@/ui` to a real path, cannot follow a barrel re-export, cannot count real call sites, and cannot tell you which of six similar components is canonical.
The index answers all of that structurally. It parses every source file with comments, strings, template literals and regex literals **masked out**, so a match is guaranteed to be real code. It resolves `tsconfig`/`jsconfig` path aliases and Vite/webpack aliases, follows barrel re-export chains, counts JSX call sites, extracts full prop contracts from TypeScript interfaces and destructuring patterns, and clusters near-duplicates.
**Rule: if the index can answer it, the index answers it. Read source only to confirm a specific `path:line` the index gave you.**
## Build it first
```bash
lazysitter fe-index build # incremental — unchanged files come from cache
lazysitter fe-index build --force # full rebuild
lazysitter fe-index build --root src,packages/ui # monorepo: limit the scan roots
```
Rebuilding after a 12-file diff re-parses 12 files. It is cheap. **Rebuild after any code change before auditing** — an index built before the diff cannot see the code the diff wrote, which is exactly where same-run duplicates hide.
## The command