Skip to content

operator: text monolog is FYI-only; anything needing a response is a widget#386

Merged
edwin-zvs merged 2 commits into
mainfrom
operator-surfacing-prompt
Jun 7, 2026
Merged

operator: text monolog is FYI-only; anything needing a response is a widget#386
edwin-zvs merged 2 commits into
mainfrom
operator-surfacing-prompt

Conversation

@edwin-zvs

Copy link
Copy Markdown
Contributor

Sharpens the operator's text-vs-widget rule per the design principle: the text monolog is literally the operator's monolog — it types over the matrix animation, fades, and the user has no way to reply. So:

  • Text → low-stakes, passing FYI of what the operator noticed/did ("dogfood finished its build; fleet's quiet"). Never a question, decision request, or anything important.
  • Widget → anything the user should act on, decide, or be reliably notified of (a session stuck at a trust prompt, an error needing a choice, "ready to merge?"). Widgets persist and carry action links.
  • noted → nothing to surface.

Also fixes stale/contradictory guidance from the #376 monitor split

  • The ambient paragraph keyed on OBSERVATION: ambient operator loop tick, but since operator: triage the ambient fleet scan off-context, escalate only findings #376 the operator receives OBSERVATION: ambient fleet monitor flagged … — so that guidance never fired. Updated the string. (Same stale-string family as the panel-echo and noteded bugs.)
  • Removed "Prefer updating/removing compact Operator widgets over chatting," which contradicted the FYI-text guidance and pulled the model both ways. SURFACING is now the single authoritative rule.

(Corrected my earlier claim: the two "Dynamic session UI" paragraphs are in different prompt consts — regular session vs orchestrator — not a duplicate, so left as-is.)

Tests

Guard test (orchestrator_surfacing_guidance_is_current_and_unambiguous) asserts the stale string is gone, the new string + monolog + the "MUST be a widget" rule are present, and the contradiction stays removed. Builds clean (construct-adapter-smith). Spec 0023 updated with the channel principle.

Prompt-only behavior change — the operator picks it up on /agents restart.

edwin-zvs added 2 commits June 7, 2026 10:57
…widget

Sharpen the operator's surfacing rule. The text monolog is literally the
operator's monolog -- it types over the matrix animation, fades, and the user
has no way to reply. So text is for low-stakes, passing narration only.
Anything the user should act on, decide, or be reliably notified of MUST be an
Operator widget (widgets persist and carry action links).

Also fixes stale/contradictory guidance left by the #376 monitor split:
- The ambient paragraph keyed on "OBSERVATION: ambient operator loop tick",
  which the operator no longer receives (it gets "ambient fleet monitor
  flagged"), so its guidance never fired. Updated the string.
- Removed "Prefer updating/removing compact Operator widgets over chatting,"
  which contradicted the FYI-text guidance; SURFACING is now the single rule.

Guard test asserts the stale string is gone, the new string + principle are
present, and the contradiction stays removed. Spec 0023 updated.
@edwin-zvs
edwin-zvs force-pushed the operator-surfacing-prompt branch from 158ad24 to 1189f00 Compare June 7, 2026 17:57
@edwin-zvs
edwin-zvs merged commit cd8de07 into main Jun 7, 2026
1 check passed
@edwin-zvs
edwin-zvs deleted the operator-surfacing-prompt branch June 7, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant