Version: v0.1
Date: 2026-08-26
Status: Drafted in-session under completion-program P-1 (ruled: yes).
Occasion: B-108 (standing-notes/dunin7-build-list-v1_07), rank 9 of the completion program's Wave 1, clause 2. Filed 2026-08-16 per the Operator from CR-2026-220's Step 3 verification, with the fix shape named in the filing: a deterministic pre-dispatch ROUTE to commit_assertion (classifier-independence in the CR-203 sense) — and the constraint recorded verbatim: any fix must not break commit_assertion's designed acceptance; an engagement "yes" after a save-offer legitimately COMMITS.
Cites: CR-2026-220 (the personal held-assent redirect this is the engagement-side sibling of — sibling, not port: that one answers, this one commits); CR-2026-127 R1 (the deterministic last-turn save-offer binding inside _route_commit_assertion, which this route lands in unchanged); CR-2026-203 (the classifier-independence shape).
When the Companion offers to save a note and the Operator says "yes", the right thing happens today only because an LLM files the "yes" under the right label first. Everything after that first hop is already deterministic — CR-127's net commits exactly the just-offered note. One misfile and the "yes" lands in unpinned model prose instead, the exact lane B-107 documented on the personal side.
This CR removes the LLM from the first hop: a bare assent whose immediately-preceding turn was a save-offer routes to the commit handler deterministically, whatever label the classifier produced. The handler is unchanged — the "yes" still commits, per the recorded constraint. Two smaller residues from the same filing ride along: the delegation-grant ack joins the personal redirect's condition, and the two assent word-lists become one.
482631c_route_commit_assertion (CR-127 R1): _is_bare_affirmative(message) + _last_save_offer_number(recent_turns) — the offer must be the LAST turn (an intervening exchange voids the binding), the number comes from the persisted structured_data kind="save_offer", never from prose. Only the dispatch INTO that handler depends on the classifier.structured_data kind="save_offer" (the CR-138 channel); ConverseTurn carries it into route_intent's history. Its operation_outcome is NULL (the offer branch computes no discriminator), so detection keys on the structured-data kind — the same fact the R1 net binds with.route_intent; its condition (prior intent remember_about_me + outcome held/refined) is disjoint from the save-offer condition (structured-data kind, outcome NULL), so order between the two checks cannot matter — but personal-first is kept, matching the existing block.add_knowledge's grant branch persists outcome delegation_held — a personal held write reached via the engagement-labeled intent, excluded from CR-220's detector by its intent fence; a bare assent after it deserves the same held-card redirect (the grant's confirm IS the held card). (b) _ASSENT_PHRASES (held_assent) and _BARE_AFFIRMATIVE_TOKENS (router) are two hand-kept lists that already disagree ("do it" vs "please do"/"sounds good"); they become one vocabulary with two consumers.
orchestration/held_assent.py:
ASSENT_PHRASES becomes the union of both lexicons ("do it" joins from the router's list); is_bare_assent is the single normalizer both consumers use.is_held_assent gains the grant-branch member: prior companion turn with intent add_knowledge AND outcome delegation_held qualifies for the personal redirect, alongside the existing remember_about_me + held/refined condition.is_save_offer_assent(message, recent_turns): bare assent AND the LAST turn is a companion save-offer (structured_data kind="save_offer") — the R1 net's own last-turn-only binding, reused not re-derived.
orchestration/router.py:
_is_bare_affirmative delegates to is_bare_assent (one vocabulary, two consumers; the router's own token list retires).route_intent, after the personal held-assent redirect: on is_save_offer_assent, route to _route_commit_assertion with a synthetic ClassifiedIntent(intent="commit_assertion") — never redirect, never answer. The handler's own R1 net resolves the number; its designed acceptance is untouched.route_intent with the misfile label (general_conversation) and a save-offer last turn dispatches to the commit handler (handler stubbed, call recorded) — the exact lane the filing names, closed.delegation_held turn returns the held-card redirect._route_commit_assertion — the constraint, honored by construction.operation_outcome to the classifier (CR-205 §0.2 stands — the checks read history rows, not the prompt).DUNIN7 — Done In Seven LLC — Miami, Florida CR-2026-241 — The Save-Offer "Yes" Stops Depending on the Classifier — v0.1 — 2026-08-26