SEIF Docs

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

  1. 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.
  2. Explicit choices are deterministic. The four investigations are decided by local rules and never call a provider.
  3. 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.
  4. 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.
  5. 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).
  6. No dependency. Local rules are the default. The TypeSafe adapter is enabled only by SEIF_DECISION_PROVIDER=typesafe plus a key. Removing it removes nothing else.
  7. 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.