Arising from int-0002 — Zero-ceremony operation — one binary, no server, no daemon
No model client in the binary — semantic extraction is delegated to the live session
Capture is two-tier, and the tiers have different trust levels:
**Tier 1 — `dira sniff` (in the binary).** Pure pattern matching over the transcript. Cheap, offline, deterministic, and lossy. Anything it produces is written with `state: staged` and `source.tier: regex` — never accepted, because a regex has no business asserting rationale.
**Tier 2 — the skill (in the live session).** The already-running Claude session fills in the because, the alternatives with their why_nots, and the `derives_from` edge, then calls `dira log` with the complete entry. This costs no API key, no extra model call, and no vendor lock-in, because it rides the session that is already happening.
The binary therefore never sees a model, never holds a key, and works identically under any model the user has chosen. The consequence to accept honestly: **dira's capture quality is a function of the agent driving it.** With no agent, dira degrades to `dira log` typed by hand — still useful, but the automatic-capture promise of int-0001 belongs to the agent-driven path.
Alternatives on record — 2
✗Embed an LLM client so `dira sniff` can extract decisions semantically on its ownrefused It would require an API key to function, add a network round-trip to a hook in the latency path, impose a per-session cost the user did not ask for, and pin dira to one provider — breaking the BYOM neutrality kazi already holds.
It is also redundant: at the exact moment extraction is needed, a capable model is already running with the full transcript in context, for free.
revisit ifdira needs to extract from transcripts outside a live agent session
✗Regex-only extraction, no semantic tier at allrefused Regex reliably catches decision *language* ("let's go with", "we're not doing") but cannot fill in the because, the rejected alternatives, or the parent intent — which are the fields that make an entry worth having.
Regex alone would produce a ledger of titles, which is the ADR-pile failure again.