git:20260812.8e20fe4 to git:20260816.5af9c23

5 added, 25 removed. Audit A to A.

## Agent skills
### Issue tracker
Issues live as GitHub issues in `Lancetnik/tg-analytic-skill`, driven by the
`gh` CLI. See `docs/agents/issue-tracker.md`.
### Domain docs
Single-context: `CONTEXT.md` + `docs/adr/` at the repo root. See
`docs/agents/domain.md`.
<!-- CODEGRAPH_START -->
## CodeGraph
- This project has a CodeGraph MCP server (`codegraph_*` tools) configured. CodeGraph is a tree-sitter-parsed knowledge graph of every symbol, edge, and file. Reads are sub-millisecond and return structural information grep cannot.
-
- ### When to prefer codegraph over native search
-
- Use codegraph for **structural** questions — what calls what, what would break, where is X defined, what is X's signature. Use native grep/read only for **literal text** queries (string contents, comments, log messages) or after you already have a specific file open.
-
- | Question | Tool |
- |---|---|
- | "Where is X defined?" / "Find symbol named X" | `codegraph_search` |
- | "What calls function Y?" | `codegraph_callers` |
- | "What does Y call?" | `codegraph_callees` |
- | "How does X reach/become Y? / trace the flow from X to Y" | `codegraph_trace` (one call = the whole path, incl. callback/React/JSX dynamic hops) |
- | "What would break if I changed Z?" | `codegraph_impact` |
- | "Show me Y's signature / source / docstring" | `codegraph_node` |
- | "Give me focused context for a task/area" | `codegraph_context` |
- | "See several related symbols' source at once" | `codegraph_explore` |
- | "What files exist under path/" | `codegraph_files` |
- | "Is the index healthy?" | `codegraph_status` |
+ In repositories indexed by CodeGraph (a `.codegraph/` directory exists at the repo root), reach for it BEFORE grep/find or reading files when you need to understand or locate code:
- ### Rules of thumb
+ - **MCP tool** (when available): `codegraph_explore` answers most code questions in one call — the relevant symbols' verbatim source plus the call paths between them, including dynamic-dispatch hops grep can't follow. Name a file or symbol in the query to read its current line-numbered source. If it's listed but deferred, load it by name via tool search.
+ - **Shell** (always works): `codegraph explore "<symbol names or question>"` prints the same output.
- - **Answer directly — don't delegate exploration.** For "how does X work" / architecture questions, answer with 2-3 codegraph calls: `codegraph_context` first, then ONE `codegraph_explore` for the source of the symbols it surfaces. For a specific **flow** ("how does X reach Y") start with `codegraph_trace` from→to — one call returns the whole path with dynamic hops bridged — then ONE `codegraph_explore` for the bodies; don't rebuild the path with `codegraph_search` + `codegraph_callers`. Codegraph IS the pre-built index, so spawning a separate file-reading sub-task/agent — or running a grep + read loop — repeats work codegraph already did and costs more for the same answer.
- - **Trust codegraph results.** They come from a full AST parse. Do NOT re-verify them with grep — that's slower, less accurate, and wastes context.
- - **Don't grep first** when looking up a symbol by name. `codegraph_search` is faster and returns kind + location + signature in one call.
- - **Don't chain `codegraph_search` + `codegraph_node`** when you just want context — `codegraph_context` is one call.
- - **Don't loop `codegraph_node` over many symbols** — one `codegraph_explore` call returns several symbols' source grouped in a single capped call, while each separate node/Read call re-reads the whole context and costs far more.
- - **Index lag — check the staleness banner, don't guess a wait.** When a codegraph response starts with "⚠️ Some files referenced below were edited since the last index sync…", the listed files are pending re-index — Read those specific files for accurate content. Files NOT in that banner are fresh and codegraph is authoritative for them. `codegraph_status` also lists pending files under "Pending sync".
+ If there is no `.codegraph/` directory, skip CodeGraph entirely — indexing is the user's decision.
+ <!-- CODEGRAPH_END -->