Every prompt ends on the work it asks for - #192
Merged
Merged
Conversation
A kaibo deliberation over the merged 0.5.0 prompts (cast `gpt-deliberate`, GPT-5.6-sol over a GPT-5.6-luna dossier) found that #190's restyle is correct in each preamble read alone, and undone by composition. Every claim below was checked against source before acting on it; several other claims in the same report did not survive that check and are not here. The obligation was no longer last. `phase_preamble` splices the project file map and the operator's house rules AFTER a preamble's closing line, and the explorer's attach directive is appended after that — so a composed explorer prompt ended on "Up to 32 files this sweep." and a composed consult prompt ended on the house rules. The close is where a model attends most, and we had put a file count there. The closing is now restated after anything spliced in, and the attach directive ends on the report rather than on a number. An operator override keeps its own last word: `[prompts]` replaces the role framing in full, so appending kaibo's closing would put back part of what the operator removed. The session history framing ordered "re-read any `file:line` an earlier answer cited before you rely on it" — the exact verification behavior the consult preamble argues against four paragraphs earlier in the same request. It now names the prior citations as trusted and spends the turns on what the new question reaches. The deliberation prompt ended with the dossier, which is the longest thing in the request; it now closes on the answer. The three-way separation instruction appears in every prompt that hands work to someone else, in one phrasing — oneshot and batch each had their own variant, and a second phrasing of one obligation reads to a model as a second obligation. Same reason the attach directive now calls its reader "the synthesis agent": "the consult driver" was a second name for the model the explorer preamble already names. Six tests, each run against the code with its guard removed. Two sabotage runs matched no anchor on the first attempt and reported clean; they were re-run against the real text before being believed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Reviewed-by: kaibo cast `gpt-deliberate` (GPT-5.6-sol / GPT-5.6-luna)
tobert
added a commit
that referenced
this pull request
Sep 10, 2026
#192 changed the session-history framing from re-verification to trust and acquisition, and left the doc comment above `consult_user_prompt` describing the behavior it replaced: "History prepends the prior `(question, answer)` pairs and steers the model to re-confirm any span a prior answer cited." A standalone `explore` over the prompt-composition path found it, reported it as the one thing that looked stale in the area, and named how to confirm — the framing text and `session_history_asks_for_more_evidence_not_a_re_read` both pin the opposite. Internal comment only: no published text, no behavior change, no test change. The two claims the old comment made that are still true — the exploration runs fresh every turn rather than replaying a stored report, and the files win over a prior answer where they disagree — stay. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
A kaibo deliberation over the merged 0.5.0 prompts (cast
gpt-deliberate— GPT-5.6-sol reasoning offline over a GPT-5.6-luna dossier) found that #190's restyle is right in every preamble read alone, and undone by composition. Each claim below was checked against source before I acted on it. Several other claims in the same report did not survive that check and are not here.The obligation was no longer the last thing read.
phase_preamblesplices the project file map and the operator's house rules in after a preamble's closing line, andrun_explorerappends the attach directive after that. So a composed explorer prompt ended on "Up to 32 files this sweep." and a composed consult prompt ended on "It is background about how this project works, not the question you are answering." The close is where a model attends most, and we had put a file count there.The closing obligation is now restated after anything spliced in, and the attach directive ends on the report rather than on a number. An operator override keeps its own last word —
[prompts]replaces the role framing in full, so appending kaibo's closing would put back a piece of what the operator removed.The history framing contradicted the preamble it ships with. It ordered "re-read any
file:linean earlier answer cited before you rely on it" — the exact re-verification the consult preamble argues against four paragraphs earlier in the same request, and the behavior the cheap-explorer/capable-synth split exists to avoid paying for. It now names prior citations as trusted and spends the turns on what the new question reaches. The tiebreaker for genuine conflicts stays.deliberateended with the dossier, which is the longest thing in the request. It now closes on the answer.One obligation, one phrasing. The three-way separation sentence appears in every prompt that hands work to someone else, in the same words; oneshot and batch each carried their own variant. Same reason the attach directive now calls its reader "the synthesis agent" — "the consult driver" was a second name for the model the explorer preamble already names.
Six tests, each run against the code with its guard removed. Two of those sabotage runs matched no anchor on the first attempt and reported clean; they were re-run against the real source text before being believed, which is the failure mode that check exists to catch.
Suite 1358/0, clippy clean.
Not done here, and deliberately: the report's list of figurative phrasings ("costs you every read after it", "where the evidence runs out"), the CamelCase report-schema labels, and the
1,200 linesreading cue. The first two are a prose pass over text the pending prompt-analysis import would rewrite anyway, and the third is a fact about the shell rather than a size target for the deliverable.🤖 Generated with Claude Code