S14 · Proactivity Engine

Declared state: complete for now.

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

S27, S45

Tasks and gates

14.F1 · Signals, urgency, value, quiet hours, budget, ignore-penalty learning.

Tier F · done · Verification: hermetic-test

Gate: `test_phase10_proactive.py`, `test_proactive_learning.py`,

  • unverified-import · undated · docs/SYSTEMS-DETAILS.md:2038

14.F2 · Every autonomous act produces a report: what, why, and the reasoning.

Tier F · done · Verification: hermetic-test

Gate: `test_proactive_report.py`

  • unverified-import · undated · docs/SYSTEMS-DETAILS.md:2041

14.F3 · Every signal kind is asserted to be *reachable* — a dormant kind is a bug, not a

Tier F · done · Verification: hermetic-test

Gate: `test_proactive_thresholds.py` — 19/19, eight kinds fired here, eleven handed off.

  • unverified-import · undated · docs/SYSTEMS-DETAILS.md:2043

14.R1 · Outcome tracking: did the intervention help? Feed the answer back into value estimation.

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

Gate: `test_proactive_learning.py` [outcome loop] 23/23, plus `test_acceptance_rate.py` 23/23 — the mechanism was already gated; the acceptance rate 14.E1 is written against was not computed by anything, and it is now reported as two named rates rather than one invented one.

  • hermetic-green · undated · bench/test_acceptance_rate.py

14.R2 · Timing model — the same suggestion at a better moment, learned from acceptance by

Tier R · open · Verification: planned-test

Gate: new `test_proactive_timing.py` - planned gate. new `test_proactive_timing.py`

    14.R3 · Suppression when the owner is in flow (depends on S27 context).

    Tier R · done · Verification: hermetic-test

    Gate: `test_proactive_suppression.py` [focus state] - ten unbroken minutes of active work is flow (a glance at an editor is focus); both are busy, so routine waits; flow still allows urgent speech.

    • hermetic-green · 2026-10-17 · bench/test_proactive_suppression.py

    14.R4 · A stated goal can produce an interruption at all — one deterministic signal source, plus a log of the moments it stayed silent.

    Tier R · done · Verification: hermetic-test

    Gate: test_goal_deviation.py - a deviation from a stated goal emits a signal above the context override (0.85) so it can interrupt media; a goal-aligned session that looks identical by elapsed time does NOT; and every judged moment is recorded with its reason whether or not it was voiced.

    • hermetic-green · undated · bench/test_goal_deviation.py
    • recorded-note · undated · src/mushegh/brain/goal_deviation.py
    • recorded-note · undated · src/mushegh/brain/goal_deviation.py:confirm
    • recorded-note · undated · src/mushegh/brain/data_classes.py

    14.R5 · Central typed Jev decision seam for explicit owner-supplied options; generative LLMs may verbalize but cannot select or override the result.

    Tier R · done · Verification: hermetic-test

    Gate: `test_jev_judgment.py` + `test_api_policy.py` — hermetic and offline: explicit-option parsing, minimized payload, typed response, compact prose-free audit, missing key, 429, timeout and malformed response, no generative fallback, buffered/stream parity, deterministic catastrophic refusal precedence, and no bypass of the centralized HTTP policy.

    • hermetic-green · undated · bench/test_jev_judgment.py
    • hermetic-green · undated · bench/test_api_policy.py
    • recorded-note · undated · TypeSafe /v1/systemone
    • recorded-note · undated · src/mushegh/brain/judgment.py

    14.R6 · Apply the central Jev client to borderline proactive goal-deviation severity after a real week of 14.R4 evidence, without changing deterministic interrupt thresholds or outage behavior.

    Tier R · open · Verification: planned-test

    Gate: new `test_deviation_judgement.py` — hermetic and offline: Jev is consulted only inside the evidence-derived borderline band; absent key, timeout, 429, malformed response and dead provider leave 14.R4 behavior bit-for-bit unchanged; the outbound payload stays within the declared !typesafe data classes.

      14.E1 · Proactivity behavioural ≥95 with acceptance rate ≥60% over a real week.

      Tier E · open · Verification: unregistered-test

      Gate: `behavioral_suite.py` + the proactivity log.

        HUD screen contracts

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