Retrieval
Retrieval is deterministic. No embedding model and no reranker are required.
Query flow
A query returns pointers and coverage state. It never returns source bodies.
Labels
skills/auwai/scripts/labels.py builds a label from:
- path;
- symbol;
- kind;
- language;
- purpose.
The store adds a bounded body digest from the chunk file. The digest keeps comments, docstrings, strings, and identifiers, and drops common syntax words.
FTS
The chunk_fts table is a SQLite FTS5 index over path, symbol, label, and purpose.
store.search queries it and joins the chunk and coverage rows.
A search result carries:
- chunk id;
- path;
- symbol;
- line range;
- token count;
- kind and language;
- purpose;
- read, finding, and stale state;
- BM25 score.
Coverage-aware query
skills/auwai/scripts/retrieval.py groups the results by top-level partition.
For each partition it reports the result count, the unread count, and the stale count.
auwai query "term" prints the partition summary and the matching chunks.
auwai coverage prints the repository totals.
What it is not
The query does not read a chunk body.
It returns pointers and coverage state.
The caller uses auwai read or a full-read segment to read the body.
The label is deterministic, but it is not a summary of the implementation. A query that uses a concept absent from the label and body digest can miss the chunk. The planning cache has a broader body digest; the ledger uses a bounded one.