From 8d18ae8b21611e0bea63bc341f1c366400732b28 Mon Sep 17 00:00:00 2001 From: Aaron Bockelie Date: Mon, 29 Jun 2026 01:33:22 -0500 Subject: [PATCH 1/2] =?UTF-8?q?config(tui):=20pin=20tui=20to=20default=20?= =?UTF-8?q?=E2=80=94=20new=20tui=20mode=20was=20buggy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude Code repeatedly prompted to enable tui mode; tried it, hit bugs, turning it back off explicitly so it stops asking. Claude-Session: https://claude.ai/code/session_01TFyiQNDZ8RTMHX4Tnmp1wY --- settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.json b/settings.json index ba6457c..08ba6f3 100644 --- a/settings.json +++ b/settings.json @@ -314,6 +314,7 @@ } } }, + "tui": "default", "skipWorkflowUsageWarning": true, "autoCompactEnabled": false, "teammateMode": "auto", From 77fe08953d04eed5c35bc14c224b271889b65f75 Mon Sep 17 00:00:00 2001 From: Aaron Bockelie Date: Wed, 24 Jun 2026 15:22:23 -0500 Subject: [PATCH 2/2] docs(explanation): add sequence diagram to how-ways-works model The model page carried a structural flowchart of the four observable behaviours, but a flowchart can't show the one thing that makes them matter: the matcher runs to completion before Claude sees anything, and a near-miss reaches events.jsonl but never reaches Claude. That asymmetry is temporal, so it wants a sequenceDiagram. Adds a "One turn, in order" subsection: User -> Matcher -> events.jsonl -> Claude, with the near-miss as a dashed arrow to the record only. Per the mermaid way, dropped
from participant labels (fragile) and validated the render with mmaid. Claude-Session: https://claude.ai/code/session_01KDHroTCYH3VuCG3npY6Dzj --- .../how-ways-works-the-model.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/explanation/how-ways-works/how-ways-works-the-model.md b/docs/explanation/how-ways-works/how-ways-works-the-model.md index 93f6ce0..1f64ee5 100644 --- a/docs/explanation/how-ways-works/how-ways-works-the-model.md +++ b/docs/explanation/how-ways-works/how-ways-works-the-model.md @@ -127,6 +127,48 @@ sub-premise about, say, performance or supply-chain, because that's what the moment called for. Checks are how progressive disclosure goes *deep* without the parent way having to carry every detail at all times. +## One turn, in order + +The flowchart above shows *which* behaviours exist; it can't show the one thing +that makes them matter — that the matcher runs to completion *before* Claude sees +anything, and that a near-miss reaches the record but never reaches Claude. That +asymmetry is temporal, so it wants a sequence: + +```mermaid +sequenceDiagram + autonumber + actor User + participant M as Matcher + participant R as events.jsonl + participant C as Claude + + Note over M: cheap substrate — runs before Claude sees anything + User->>M: prompt + tool calls + prior topics + Note over M: scores every way against this frame + + M->>R: way_fired — trigger crossed threshold + M->>C: inject premise into context + + M->>R: check_fired — depth pulled under a fired way + M->>C: inject sub-premise on demand + + M->>R: way_redisclosed — seen before, cooled down + M->>C: refresh the faded premise + + M-->>R: way_nearmiss — close, but under threshold + Note right of M: recorded, never injected — the boundary of false silence + + Note over C: expensive substrate — reasons with whatever surfaced + C->>User: work moves on +``` + +Read top to bottom, the ordering is the argument. The matcher does all its +scoring and writes every decision to `events.jsonl` *first*; only the premises +that cleared their bar are injected into Claude's context. The near-miss is the +dashed line — it lands in the record and stops there. Claude never reasons over +it, which is precisely why the conversation can't reveal it and the JSON dump +([[01.019.E]]) can. + ## Why the record is trustworthy The events are written by the same code path that does the matching, at the