Repository navigation
fix(context-budget): classify lean-prompt selection by the lean_prompt capability - #7001
Conversation
…pability Claude Code 2.1.296 checks a model's lean_prompt capability before the legacy substring list: claude-haiku-5-5 defaults lean, claude-haiku-4-5 stays full. The simple-system-prompt lever described only the legacy list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 40s —— View job Security review
Skip gate applied — no security-relevant surface. This PR touches only:
None of this is executable logic with an attacker-reachable input: the JSON edit is descriptive reference text consumed by a documentation audit, and the test-script change only adds a stricter string-match assertion (strictly additive, no removed check). There is no injection surface, no auth/access-control logic, no secret/token handling, and no CI workflow or permissions change. Instruction-surface check: the diff doesn't delete, narrow, or soften any standing instruction, rule, allowlist, or guardrail — the No security findings to report. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 976126acbb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-security-review has reviewed this pull request through 8bca267; a later push is reviewed from there. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 26s —— View job Security review (incremental)
Scope: this lane last reviewed -Describe the `simple-system-prompt` lever's lean-prompt selection by the `lean_prompt` capability first (Claude Code 2.1.296), so Haiku 5.5 sessions classify as already-lean and Haiku 4.5 stays full.
+### Fixed
+
+- Describe the `simple-system-prompt` lever's lean-prompt selection by the `lean_prompt` capability first (Claude Code 2.1.296), so Haiku 5.5 sessions classify as already-lean and Haiku 4.5 stays full.Skip gate applied — no security-relevant surface. This adds a Instruction-surface check: this file is a changelog fragment, not Every other file in this PR ( No security findings to report. |
|
Claude finished @kyle-sexton's task in 4m 11s —— View job Code review complete
Ran the
No other correctness or maintainability issues found in scope for this lane (the changelog fragment and the kept/updated test assertions otherwise look correct; this PR does not touch security-relevant surface, per the earlier security-lane pass on this head). |
|
claude-review has reviewed this pull request through 8bca267; a later push is reviewed from there. |
…iku-5-5-lean-prompt
The simple-system-prompt conditions restated the binary's lean-prompt selection, which the skill-bodies rule bars. Add a probed-behavior record under docs/upstream/ with a rerunnable binary check (Claude Code 2.1.296), reduce the conditions to our decision plus a pointer at it, and make the test assert the pointer and the absence of restated selector values. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 17s —— View job Security review (incremental)
Scope: this lane last reviewed
Skip gate applied — no security-relevant surface. All four changes are prose/reference-data/test-assertion edits:
There is no injection surface, no auth/access-control logic, no secret/token handling, and no CI workflow or permissions change in this increment. Instruction-surface check: none of these files is Every other file in this PR was already reviewed at No security findings to report. |
|
Claude finished @kyle-sexton's task in 2m 56s —— View job Code review in progress
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 67aad3a6cb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The conditions no longer name any model, and the test guard now rejects any model id or Claude Code version in them. The probe record resolves the claude binary with perl's Cwd::abs_path, which works on macOS where readlink has no -f. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 41s —— View job Code review complete
Scope: this lane last reviewed
This commit addresses both review comments from the prior round on
The No new findings on this increment. Every other file in this PR was already reviewed at |
|
Claude finished @kyle-sexton's task in 41s —— View job Security review (incremental)
Scope: this lane last reviewed
Skip gate applied — no security-relevant surface.
Instruction-surface check: none of these three files is No security findings to report. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 50s —— View job Security review (incremental)
Scope: this lane last reviewed - if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|\b2\.1\.\d/i.test(cond)) {
+ if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|2\.1\.\d/i.test(cond)) {This drops the Skip gate applied — no security-relevant surface.
Instruction-surface check: Every other file in this PR ( No security findings to report. |
|
Claude finished @kyle-sexton's task in 3m 1s —— View job Code review complete
Scope: this lane last reviewed One finding posted inline at
No other findings in this increment — the rest of the file (and the other 3 files in this PR) was already reviewed at |
…ty-ok marker The flagged \b sits in a JS RegExp, not a grep or sed pattern, so it is exempted per site instead of dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 35s —— View job Security review (incremental)
Scope: this lane last reviewed - if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|2\.1\.\d/i.test(cond)) {
+ if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|\b2\.1\.\d/i.test(cond)) { // portability-ok: JS RegExp, not grep or sedThis restores the Skip gate applied — no security-relevant surface.
Instruction-surface check: Every other file in this PR ( No security findings to report. |
|
Claude finished @kyle-sexton's task in 2m 43s —— View job Code review complete
Scope: this lane last reviewed - if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|2\.1\.\d/i.test(cond)) {
+ if (/lean_prompt|claude-[a-z]+-\d|opus-\d|haiku|sonnet|\b2\.1\.\d/i.test(cond)) { // portability-ok: JS RegExp, not grep or sedThis is exactly the fix requested in my prior comment on
I verified by hand that the current No new findings on this increment. Every other file in this PR ( |

No related issue: Claude Haiku 5.5 release follow-up for the context-budget lean-prompt lever.
Summary
The
simple-system-promptlever restated which models already default to the lean system prompt, and that restatement misclassifiedclaude-haiku-5-5as full. No docs page covers it, so the lever now points at a probe record instead of restating the selector.Fix
docs/upstream/claude-code-lean-prompt-selector.md(new): a probed-behavior record per the upstream-drift convention, with a rerunnable binary check, the Claude Code 2.1.296 observation in our words, as-of 2026-10-10 and a recheck trigger.levers.json:conditionskeeps our decision (explain an already-default zero; advice does not branch on model) and points at that record. The selector order and legacy model list are gone.recheckTriggerdefers to the record's trigger.levers.test.sh: asserts the pointer, and thatconditionsnames no model id, family or Claude Code version. The asserts that pinned the restated list are removed.Verification
claude-haiku-5-5withlean_promptandclaude-haiku-4-5without.levers.test.shandmeasure.test.sh(131) pass.scripts/check-changelog-fragments.sh --checkpasses. markdownlint on the record: 0 issues.Related
🤖 Generated with Claude Code