docs(code-search): add vex vs ast-index benchmark notes

Point-in-time comparison of vex 1.5.0 vs ast-index 3.27.0 on a mixed-language
repo (Python/Kotlin/TS/JS, ~553 files, ~15-17k symbols). Documents:

- Indexing time, footprint, query latency for both tools
- Quality differences on real queries (usages, callers, symbol, semantic)
- Notable findings: ast-index's Python call graph was empty for this repo,
  vex's implementations misses generic-parameterized subclasses, vex usages
  catches comments/docstrings (text-flavored), ast-index uniquely has
  'changed --base <branch>' with no vex equivalent
- Re-run instructions for validating on a different repo or newer versions

Linked from claude-code-tools.md at the end of the vex section so readers
encounter the comparison right after learning about vex. Not surfaced as a
top-level README entry since it's narrower than the other root-level guides.
This commit is contained in:
2026-05-18 00:46:51 +03:00
parent fee17cfd8d
commit 0129059830
2 changed files with 112 additions and 0 deletions
+2
View File
@@ -160,6 +160,8 @@ Fast hybrid code search — combines tree-sitter AST parsing, FST symbol lookup,
- **Global (`~/.claude/CLAUDE.md`)** — preferred default once `vex-mcp` is registered at user scope. Vex becomes the recommendation for every project as soon as the index is built.
- **Project-local (`./CLAUDE.md`)** — for overrides (different fallback chain, monorepo-specific `--filter` paths, language-specific `--kind` defaults, or excluding vex on repos where it isn't set up).
- **vex vs AST Index — when each wins:** Both tools cover similar ground, but they're not interchangeable. For a point-in-time head-to-head on a real mixed-language repo (Python / Kotlin / TypeScript / JavaScript) with measured latency, quality differences, and version-pinned findings, see [`code-search-vex-vs-ast-index.md`](code-search-vex-vs-ast-index.md). Headline: keep `vex` as primary, fall back to `ast-index changed --base <branch>` for code-review diffs (no vex equivalent) and to `ast-index symbol`/`usages` when vex's textual matches are too noisy.
### Packaged Skills
Packaged `.skill` files available in the [skills/](skills/) directory: