- Goal: Join masked Lake events with the local Oko transcript index to inspect hook decisions and frustration signals.
- Risk: Read-only, external DuckDB process. A fresh DuckDB installation may fetch and cache the SQLite extension.
- Environment: macOS, DuckDB CLI
1.5.x, valid Lake, and compatible local Oko index. - Preconditions: Oko's index is not being migrated.
- Inputs: Selected Lake, Oko's read-only SQLite index, and one named report:
frustration,overlap,daily, orfreshness. - Artifacts and side effects: The CLI loads version-matched SQL, reads Lake, and attaches Oko read-only. DuckDB may cache its SQLite extension outside the Lake; no Oko row is modified.
- Steps:
sh
LAKE="/absolute/operator-owned/lake"
transcript-lake --data-dir "$LAKE" signals --report freshness
transcript-lake --data-dir "$LAKE" signals --report frustration --limit 20
transcript-lake --data-dir "$LAKE" signals --report overlap --json- Observable result: Freshness compares the Oko index with each Lake runtime; frustration ranks matching sessions; overlap reports hook-blocked, frustrated, and shared session counts.
- Failure path: Missing Oko index fails the named report without affecting Lake-only commands. Missing SQLite extension is a named DuckDB dependency failure.
- Cleanup: No Lake or Oko cleanup is required. DuckDB owns its extension cache.
- Related operation: Inspect Oko projection recovery if the index does not reflect expected Lake sessions.