···77Core workflow:
8899```text
1010-status -> sync --selector -> find/list -> read-range/read-page
1010+status -> ensure selector coverage -> find/list -> read-range/read-page
1111```
12121313## What It Is
···5757cxs status --json
5858```
59596060-Build coverage for a project:
6060+Check coverage for a project:
6161+6262+```bash
6363+cxs status --selector '{"kind":"cwd","root":"/Users/you/.codex/sessions","cwd":"/Users/you/work/project"}' --json
6464+```
6565+6666+If `requestedCoverage.recommendedAction` is `"sync"`, build or refresh coverage:
61676268```bash
6369cxs sync --selector '{"kind":"cwd","root":"/Users/you/.codex/sessions","cwd":"/Users/you/work/project"}'
···84908591| Command | Purpose |
8692| --- | --- |
8787-| `cxs status` | Show execution context, source inventory, index state, and coverage. Does not write the index. |
9393+| `cxs status` | Show execution context, source inventory, index state, and coverage. `--selector` checks whether a target range is fresh. Does not write the index. |
8894| `cxs sync --selector <json>` | Scan selected Codex sessions and update the SQLite index. This is the only write command. |
8989-| `cxs find <query>` | Search indexed sessions and return ranked session candidates with minimal snippets. |
9595+| `cxs find <query>` | Search indexed sessions and return ranked session candidates with minimal snippets. Use `--sort ended` for "latest + keyword" queries. |
9096| `cxs read-range <sessionUuid>` | Read a small message window around a matched sequence or in-session query. |
9197| `cxs read-page <sessionUuid>` | Read a session page by offset and limit. |
9298| `cxs list` | List indexed sessions without full-text search. |
···113119cxs list --selector '{"kind":"cwd","root":"/Users/you/.codex/sessions","cwd":"/Users/you/work/project"}' --sort ended -n 10
114120```
115121122122+Example latest keyword query, excluding the current self-hit:
123123+124124+```bash
125125+cxs find "xsearch" --selector '{"kind":"cwd","root":"/Users/you/.codex/sessions","cwd":"/Users/you/work/project"}' --sort ended --exclude-session <current_session_uuid> -n 5 --json
126126+```
127127+128128+`find` defaults to relevance sorting. Do not treat default `find` order as time
129129+order.
130130+116131## Sync And Storage
117132118133By default, `cxs` reads Codex sessions from `~/.codex/sessions` and stores its
···135150before complete coverage is written.
136151Pass `--best-effort` only when you explicitly want successful files written
137152despite failures; best-effort sync does not record complete coverage.
153153+154154+`sync` is not required before every query. Use `status --selector` to check
155155+coverage first. A fresh `{"kind":"all", ...}` coverage record covers narrower
156156+selectors under the same root; a high `stats.sessionCount` only means rows exist
157157+and is not itself a freshness proof.
138158139159Indexes created before `cxs-v6-selector-provenance` should be refreshed with
140160`sync --selector` so date selectors and read coverage use the current