From 8f168ab8111eb2f4beb8e2e710e5a8e5bd61603c Mon Sep 17 00:00:00 2001 From: claude Date: Thu, 6 Aug 2026 19:46:39 +0400 Subject: [PATCH] the routing trace section names the correction gesture (V-630) --- CLAUDE.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 14cf634..f65026b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -296,11 +296,18 @@ beside it, writing `routing_traces` (migration #23). The utterance is stored in clear, because a 384-dimension vector of a short sentence is substantially recoverable and storing vectors instead would be a privacy claim we cannot support. What makes it safe is the same thing that makes the fact store safe. -Retention is 14 days, enforced on write. Nothing reads it outward, and the rule +Retention is 14 days, enforced on write and again on start, so a box that goes +quiet does not keep every row. Nothing reads it outward, and the rule that his notes and facts are never search input covers this table. `Store.Wipe` deletes it with everything else. A correction (V-630) is promoted out into a -seed-shaped row and kept, because a label is not a transcript. The transcript -still expires. Adding a rung to the ladder +seed-shaped row in `routing_labels` (migration #24) and kept, because a label is +not a transcript. The transcript still expires. The gesture that writes one is +two buttons beside the reply on `/chat`, reached over `ipc.CorrectTurn` and the +trace id that now rides back on `ipc.ChatReply`. A turn marked wrong with no +target is a usable negative, so naming the intent is never required. The target +is one of the seven intents and never free text. Only `/chat` offers it: the wire +op assumes no browser, but telegram and voice do not call it yet, and +`docs/plans/22-correcting-a-turn.md` says why voice is the hard one. Adding a rung to the ladder in `runTurn` means adding its name to `preRouteLadder` in `cmd/mavend/decisiontrace.go`, or that rung is silently missing from the record.