S01 · Brain / Core Intelligence

Declared state: built, not well structured.

This is the repository plan and evidence, not a live health reading. A task marked done may still depend on credentials, devices, deployment or a newer acceptance test.

Dependencies

No dependencies are declared in the catalog.

Tasks and gates

01.F1 · One completion loop, not two — multi-intent and clause paths unified (TODO K1).

Tier F · done · Verification: hermetic-test

Gate: `test_clause_completion.py`, `test_clause_routing.py`

  • unverified-import · undated · docs/SYSTEMS-DETAILS.md:764
  • hermetic-green · 2026-10-10 · bench/test_clause_completion.py

01.F2 · Uncertainty is representable. A calibrated "I don't know / I'd have to check" is a

Tier F · done · Verification: planned-test

Gate: new `test_uncertainty.py` — 24/24. 12 unanswerable prompts across the four orthogonal

  • hermetic-green · 2026-10-07 · bench/test_uncertainty.py

01.F3 · The turn tracer records, per turn: intent class, tools considered, tools fired, prefill

Tier F · done · Verification: hermetic-test

Gate: `test_metrics.py` extended — every turn emits a complete trace row. 54/54.

  • hermetic-green · 2026-10-07 · bench/test_metrics.py + bench/test_trace_completeness_live.py

01.R1 · Intent classes explicit and testable (chat · lookup · act · multi-clause · ambiguous)

Tier R · done · Verification: planned-test

Gate: new `test_intent_classes.py` (30) — 42 labelled

  • recorded-note · 2026-09-14 · docs/SYSTEMS-DETAILS.md:797
  • recorded-note · 2026-10-10 · bench/test_intent_classes.py

01.R2 · Ambiguity resolution: a genuinely ambiguous instruction asks **one** clarifying question

Tier R · done · Verification: hermetic-test

Gate: `test_intent_classes.py` [ambiguous] (30) + `test_pure_chat_tools.py` (51)

  • recorded-note · 2026-09-14 · docs/SYSTEMS-DETAILS.md:821
  • hermetic-green · 2026-10-10 · bench/test_pure_chat_tools.py

01.R3 · Goal attribution: the agent can name the objective a turn serves (from `objectives.py`),

Tier R · done · Verification: hermetic-test

Gate: `test_goal_attribution.py` [01.R3] (38) — extended, not new:

  • recorded-note · 2026-09-14 · docs/SYSTEMS-DETAILS.md:838
  • hermetic-green · 2026-10-10 · bench/test_goal_attribution.py

01.R4 · Self-model: "what can you do / what can't you do" answers from the real registry and the

Tier R · done · Verification: exempt-test

Gate: `test_registry_complete.py` [01.R4] (21)

  • recorded-note · 2026-09-14 · docs/SYSTEMS-DETAILS.md:855
  • hermetic-green · 2026-10-10 · bench/test_registry_complete.py

01.E1 · Multi-intent combinations >=90. A/B on 2026-10-09/10, median-5, same code and same 5 scenarios: 83.4 on the shipped chain, 94.4 with a healthy one. The bar is reachable; it is currently lost to provider configuration, not to the brain.

Tier E · open · Verification: unregistered-test

Gate: `behavioral_suite.py` combination category, median-5.

  • recorded-note · 2026-10-07 · bench/test_clause_attribution.py (live)
  • recorded-note · undated · bench/behavioral_suite.py (Combination, median-5, 2026-10-09)
  • recorded-note · undated · bench/behavioral_suite.py Combination median-5, A/B 2026-10-10 02:0x CEST
  • hermetic-green · 2026-10-11 · bench/behavioral_suite.py --only combo_web_memory,combo_time_memory --median 5

01.E2 · Overall behavioural ≥95, no category <90. *gate:* G-J.

Tier E · open · Verification: manual

Gate: G-J.

  • recorded-note · undated · bench/behavioral_suite.py (scorecard 2026-10-03) [01.E2]
  • hermetic-green · undated · bench/test_scorecard_integrity.py
  • hermetic-green · undated · bench/behavioral_suite.py
  • recorded-note · undated · bench/behavioral_suite.py rollup(), 2026-10-10 arithmetic
  • recorded-note · undated · bench/behavioral_suite.py healthy-chain run 2026-10-10, shared/uncertainty.py
  • recorded-note · undated · bench/behavioral_suite.py healthy run 2026-10-10, shared/uncertainty.py, brain/intent_router.py, brain/tools/utility.py
  • recorded-note · undated · brain/intent_router.py _MULTI_INTENT_RE, measured 2026-10-10
  • recorded-note · undated · bench/behavioral_suite.py median-3 healthy chain 2026-10-10 04:5x CEST
  • recorded-note · undated · bench/behavioral_suite.py _score_turn, 2026-10-10
  • recorded-note · undated · shared/uncertainty.py _DEPENDS_RE/_NEEDS_RE, measured 2026-10-10 06:3x
  • recorded-note · undated · direct per-provider probe 2026-10-10 08:0x CEST + bench/behavioral_suite.py run 3
  • recorded-note · undated · bench/behavioral_suite.py scenario inventory 2026-10-10
  • recorded-note · undated · bench/behavioral_suite.py run log 2026-10-10 09:2x-10:3x, brain/llm.py
  • recorded-note · undated · bench/behavioral_suite.py scenario inventory + direct tool probes, 2026-10-10
  • hermetic-green · 2026-10-11 · bench/behavioral_suite.py --only <Calibration ids> --median 3

01.E3 · **The twelve journeys run green** (tier 3 above): each asserts the spoken answer, the

Tier E · in-progress · Verification: hermetic-test

Gate: new `test_journeys.py` - planned gate. new `test_journeys.py`, one case per journey, hermetic externals and real internals.

  • hermetic-green · undated · bench/test_journeys.py
  • recorded-note · undated · bench/test_journeys.py

01.R6 · Jev arbitrates the tool choice the deterministic router could not make: when an utterance matches two or more lazy groups, the deterministic trigger match supplies the candidates, Jev picks one, the model only phrases, and the turn is bounded at 400ms with a silent fall back to the candidates (D-04, D-35, D-72, D-73).

Tier R · in-progress · Verification: hermetic-test

Gate: `test_jev_tool_arbitration.py` — fewer than two candidates makes no call; a decided pick is the only group whose tools the model is offered; the loser's tools are not; a timeout returns inside the cap, keeps every candidate, and still writes a provenance row naming the deterministic fallback; a missing key, an outage and a malformed body all leave the candidates standing; a group Jev did not pick returns on its own trigger; a failed arbitration offers exactly the unarbitrated surface; and the owner-visible two-option path still asks rather than choosing.

  • hermetic-green · 2026-10-03 · bench/test_jev_tool_arbitration.py
  • hermetic-green · 2026-10-10 · bench/test_jev_tool_arbitration.py

01.R7 · One bounded Jev call carries the whole turn's judgement: route, clarity, urgency and tone together. A turn that gives no clear decision indication gets ONE clarifying question and no tool call, and a pick below the confidence floor counts as no pick. Urgency and tone shape framing only and can never raise the interruption budget or pierce quiet hours (D-72, D-73, D-74, D-75).

Tier R · in-progress · Verification: hermetic-test

Gate: `test_jev_turn_assessment.py` — one round trip carries all four questions; clarity 'unclear' produces exactly one question and no model call; a route pick below the confidence floor is not a decision and the turn asks; an outage and a missing key stay SILENT rather than questioning a clear turn; urgency and tone produce a framing note and nothing that mentions a budget or quiet hours; no candidates and no clarity question makes no call at all; and the provenance row names the questions asked and the picks, but never the utterance.

  • hermetic-green · 2026-10-03 · bench/test_jev_turn_assessment.py
  • hermetic-green · 2026-10-10 · bench/test_jev_turn_assessment.py

01.R8 · The decision gate is the normalised Shannon entropy of the whole distribution, not a fixed probability on the top label: fast below the routing bar, marginal to 0.60, ambiguous above it. Routing uses a looser bar than safety because narrowing the tool surface is recoverable and a safety decision is not (D-76).

Tier R · in-progress · Verification: hermetic-test

Gate: `test_jev_turn_assessment.py` [3] — the same top probability lands in different bands purely because the number of options changed, which is exactly what a fixed threshold cannot do; a two-way near-tie is maximum ambiguity; an empty or single-option distribution is never certain; a decisive four-way distribution is routed; and the whole distribution is retained on the verdict rather than only the winner.

  • hermetic-green · 2026-10-03 · bench/test_jev_turn_assessment.py
  • hermetic-green · 2026-10-10 · bench/test_jev_turn_assessment.py

HUD screen contracts

All subsystems · Source: docs/systems-plan.json.