What each adapter reads
| Command | Typical root | What you get |
|---|---|---|
claude-code | ~/.claude/projects | Priced spans + sealed turns |
grok | ~/.grok/sessions | Sealed turns (and spans when usage is present) |
codex | ~/.codex/sessions | Sealed turns |
opencode | ~/.local/share/opencode | Sealed turns |
capture. Override per run with the adapter’s flags (assay capture claude-code --help).
A missing root is skipped when the sweep runs. A direct assay capture <name> against a missing root reports that.
Custom harness
--adapter. First-party catalog today: Claude Code, Grok, Codex, OpenCode.
What capture writes
For each new sitting:- Spans — tokens, model, cost when priced.
- Turns — scrubbed, sealed conversation lines, joined to spend when the harness supplies the link.
- Search postings — messages and reasoning only, on this machine.
- On the sweep cadence, retrieve-only attributes: products from path mentions, scopes from writes, openings.
Sweep
sweep (the once form) does:
- Capture each first-party adapter whose root exists.
- Retrieve-only attributes. No judge.
- If labelling is on:
assay labelling run.
Postgres
Inspection and many writes accept--pg <dsn> or $ASSAY_PG_DSN. File capture of harness logs is the SQLite collector path. A host that already writes to Postgres should embed or ingest instead of scraping local files.