LLP 0113: the classification ask is a menu, not an open prompt#329
Merged
Conversation
The session-start classification question (LLP 0106) reached users in whatever form the assistant chose that turn; on 2026-07-20 a fresh folder got an open-ended prose ask, the user interrupted it before any options appeared, and read the exchange as 'the menu never showed'. Mint LLP 0113: the shared consent copy itself mandates presentation as a native selection menu (AskUserQuestion in Claude Code), with open text only as a fallback for clients without such a tool. The mandate lives in the one shared copy, so the 'hooks differ only in delivery, never in decision or copy' invariant survives and Codex degrades to prose unchanged. Pin the mandate in the consent-copy test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
Review round 1 — cleanVerdict: clean. No blocking, major, minor, or nit findings at head Reviewed the full diff (LLP 0106 cross-ref, new LLP 0113, Checks performed:
Mergeable ∧ green ∧ reviewed-clean at this head. |
Contributor
Author
|
Approved — mergeable, CI green, and reviewed clean at head |
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.
Summary
The session-start classification question (LLP 0106) is delivered to the assistant as SessionStart
additionalContext, and the copy only said "ask the user" - so whether the user saw a real selectable menu (AskUserQuestion) or an open-ended prose question was left to the model's judgment that turn. On 2026-07-20 a fresh folder (~/workspace/bingo) got the prose form, the user interrupted the turn before any options appeared, and the whole exchange read as "the menu never showed". A consent surface should not render differently run to run.llp/0113-classification-ask-menu-presentation.decision.md: the classification ask must render as a native selection menu when the client environment provides one (in Claude Code, theAskUserQuestiontool); plain text is a fallback for tool-less clients, never a choice. Numbered 0113 because 0111/0112 are claimed on thehyp-policy-verbbranches.buildClassificationPrompt(src/core/usage-policy/classification.js) now ends with an explicit presentation instruction, tool-neutral with the Claude tool named. The mandate lives in the one shared copy, so the "hooks differ only in delivery, never in decision or copy" invariant is untouched and Codex degrades to the plain-text ask unchanged.selection menu,AskUserQuestion, the fallback clause) alongside the class vocabulary and verb lines, per LLP 0106's "the prompt copy is load-bearing" consequence.Extended-by: LLP 0113on the prompt-copy consequence).Testing
npm test: 2260 pass, 0 fail (1 skipped, pre-existing).ref-check: no new errors; the corpus's 101 pre-existing failures are identical with and without this change, and none touch 0106/0113/classification.🤖 Generated with Claude Code