fix(analysis): state transformation priority in the standing instruction - #302
Merged
Merged
Conversation
Live run #1 proved the runtime half works and is not what blocks the decode. Twelve actions, twelve distinct programs, twelve distinct outputs: nothing to suppress, no duplicate, no wasted slot. The model extracted every decoder input it needed -- the encoded strings, the keys 60/123/102/46, the delimiters -- and then spent its last action listing the function body again instead of running the transformation. The system prompt already said a transformation outranks another read, but it says it once, at session start, among the rules. What the model reads immediately before choosing each autonomous step is the continuation message, and that asked only for "one new useful evidence-producing step" -- under which a twelfth distinct way to print the same file qualifies. So the priority is stated where the choice is actually made. It names no technique: no XOR, no encoding, no format. The existing generic-language test still enforces that, and the model still chooses what to run. The evidence-authority guard generalises from one protected constant with authorized additions to a map of them, each pinned the same way -- exact text at an exact anchor. Verified by mutation: rewording, relocating into the replan message, and inserting unrelated text are all still caught. Claude-Session: https://claude.ai/code/session_01HknqKjsLMcikPG2Xi9GyvU
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.
Follow-up to #301, from what live run #1 actually showed.
The runtime half works and is not what blocks the decode: 12 actions, 12 distinct programs, 12 distinct outputs -- nothing to suppress, no duplicate, no wasted action slot, no KV or context regression. The model extracted every decoder input it needed and then spent its last action listing the function body again instead of running the transformation.
The system prompt already said a transformation outranks another read, but it says it once, at session start, among the other rules. What the model reads immediately before choosing each autonomous step is
AUTONOMOUS_CONTINUATION_MESSAGE, and that asked only for "one new useful evidence-producing step" -- under which a twelfth distinct way to print the same file qualifies.So the priority is stated where the choice is actually made:
Scope
context_manager.pyuntouched.AUTHORIZED_ADDITIONSbecomes a map keyed by constant name so a second constant can carry anchor-pinned authorized additions. All five protected constants remain protected.Verification
https://claude.ai/code/session_01HknqKjsLMcikPG2Xi9GyvU