v0.7.0 — reframe the menu as the user's standing request + first-task aha - #4
Merged
Merged
Conversation
…t-task aha Root cause (controlled experiment, vary framing only): the proactive menu almost never fired because of FRAMING, not knowledge. The model always knew which command fit; the old rule framed the menu as the assistant's optional, default-silent, high-bar judgment, which loses to the trained don't-be- presumptuous disposition. Reframing the same menu as the user's standing request roughly doubled firing with no rise in false-fires. - Rewrote the unlock rule: user's-standing-request framing; removed DEFAULT-SILENCE + the four-AND gate; judge the MOMENT not the person. Net fewer tokens. Anti-nag valves kept + prominent just-declined gate. - Added a one-time first-task demo (new welcome section): local deterministic flag (armed on first run, cleared by tracker once a menu fires); cloud per-session (no state). No steady-state token cost. - Validated beginner+power personas; 33 tests green; steady-state <2500; cloud context regenerated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Root cause, then the fix
The proactive command menu had fired ~4 times in the entire usage ledger (all basic commands). A controlled experiment — vary only the trigger's framing, hold the task and command-knowledge constant — isolated why:
Firing is a FRAMING problem, not a knowledge problem. The model always knew which command fit. The old rule framed the menu as the assistant's own optional, default-silent, high-bar judgment, which loses to the model's trained "don't be presumptuous" disposition, so it resolved to silence. Reframing the same menu as the user's standing request (they installed this because they want to be shown these moves; presenting it fulfills that request) roughly doubled firing in the experiment, with no rise in false-fires.
Changes
DEFAULT IS SILENCEand the four-AND gate; judges the MOMENT, not the person (never silent just because the user looks capable). Net fewer tokens. Anti-nag valves kept (one surfacing per reply, quiet/mute, decline-to-stop) plus a prominent gate — if the user just declined or said to just proceed, never re-offer.welcomesection): on the user's first substantial task, the menu is presented so a new user feels the value immediately. Local = deterministic flag (armed on first run, injected by the router, cleared by the tracker once a menu fires — keeps trying until it lands, then never again); cloud (no persistent state) = per session. No steady-state token cost.Validation (beginner + power-user personas × task cells)
suggestion_made) and will be tuned from there.claude plugin validate✔; cloud context regenerated.Cloud vendor PRs to the 5 production repos are intentionally held until the local feel is verified.
🤖 Generated with Claude Code