ADR 005 — Investigation and typed decision providers
Accepted 2026-10-09 (0.5.0). Workstation product concepts only; nothing here is promoted into SEIF Protocol ontology, and no engine, runtime contract or Registry API changed.
Context
Traces carried every fact a Context Engineer needs, but answering one question ("why did the agent receive this policy?", "which Build answered?") took several screens. A new class of systems exposes intelligence as bounded typed decisions over supplied state (TypeSafe's System One/Jev: choice, score and yes/no questions answered with probabilities and confidence). We needed to decide whether such a decision belongs in the Workstation, and where.
Decision
- Investigation arranges existing evidence. It composes application-owned panels (layer decisions, material → source revision, currentness, rendered → consumed, Build responsibility, budget) over one trace. It never creates evidence, edits a design or Build, or takes an action. The complete trace view is always one click away.
- Explicit choices are deterministic. The four investigations are decided by local rules and never call a provider.
- Typed decisions only for unstructured input. A typed question may be interpreted by an
ITypedDecisionProvider. Its output,InvestigationDecision(Goal, Panels, Confidence?), has no action, URL, command or code; goals and panels are application enums. - The application validates and owns failure. Membership, uniqueness, size, finite confidence, a 0.65 confidence floor for non-local providers, a 4-second limit, and a provider never replaces the user's explicit choice. Any failure falls back to local rules with an explicit, payload-free reason.
- Explicit projection. Providers see the question and banded counts/booleans; never trace content, identifiers, digests, layer or source names, locators or credentials. Credential-looking questions are not sent. The UI lists what was sent (or offered).
- No dependency. Local rules are the default. The TypeSafe adapter is enabled only by
SEIF_DECISION_PROVIDER=typesafeplus a key. Removing it removes nothing else. - Subject matching stays local. Naming the layer or material a question refers to is deterministic text matching on the machine.
Consequences
- DECISION_OUTPUT ≠ TRUTH, CONFIDENCE ≠ GUARANTEE, DECISION_OUTPUT ≠ AUTHORIZATION hold by construction: a decision can only reorder or choose among panels the application already renders, and the trace remains the evidence.
- The fit of Jev is architecture ready, not proven: no credential exists in this environment, so latency, cost and routing quality on our workload are unmeasured. See Investigation for the evaluation recipe.
- Future decision uses (regression triage, trace triage, Advisor routing) should reuse this boundary and the same rules: bounded options, explicit projection, validation, visible fallback, and deterministic paths for structured input.