From 7621093eeff7fe0952efa984ed4612d064233c96 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Sun, 31 May 2026 17:23:31 -0400 Subject: [PATCH] Document M3 drift interceptor in README Co-Authored-By: Claude Opus 4.8 --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 045b83b..951c76c 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,14 @@ go test ./... ## Status +M3 (drift interceptor): while a commitment is Active, the daemon watches the +focused window. A cheap local match against the session's allowed window classes +is authoritative for on-task; only unmatched windows are sent to the LLM drift +judge (debounced and cached per class, run asynchronously). When it judges you +off-task, the active view shows a dismissible interrupt: "Back to task", "This is +on task" (which adds the app to the session's allowed list), or "End session". +The drift judge degrades gracefully — without it, local matching still runs. + M2 (AI planning coach): in the Planning view, a rough intent is "sharpened" into a structured commitment (next action, success condition, timebox) by an LLM CLI backend (claude or codex, selectable via `ANTIDRIFT_AI_BACKEND`). The