Repository navigation
The dispatch prompt carries the acceptance row as written - #51
Merged
Merged
Conversation
…ol cannot corrupt it by restating it. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RFPwA3GEzovwEoeohLLPjM
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RFPwA3GEzovwEoeohLLPjM
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.
Probe 5 confirmed
0.17.7works on its target. Under0.17.6Control wrote intothe reviewer's prompt:
Under
0.17.7, same Control, same brief, same task, it wrote only:The conditional criterion is gone, and the phrasing is
SKILL.md's own — relayingrather than inventing. One observation, one harness, a nondeterministic model: a
signal, not a proof.
The defect that became visible once the first stopped masking it
Control relayed the counterexample and corrupted it. The source required the
instrument to reject an implementation emitting an unpadded value. Control
wrote that the script must reject that value as input. The implementer then
reasoned about its own code rather than observing anything; the reviewer "verified"
by passing the value as an argument and seeing an arithmetic error — a property of
$(( )), not of the candidate — and accepted.The failure moved from omission to corruption. It was invisible while
Control could override the contract outright.
Why this is Bounded-only
An implementer reads the decision record, the plan and the baseline. For
Architectural work the acceptance table is a file the worker reads and Control
relays nothing. A Bounded design is approved in chat, so the row is real but not
durable and must pass through Control's prose.
What changes
One sentence, extending the paragraph
0.17.7added: where the design contractstates an acceptance row — its instrument, its counterexample, and what was
observed — the prompt carries that row as written rather than a restatement.
The contract check binds it inside
### Launching a worker, as it already does forthe disposition rule. Review reproduced that binding: relocating the paragraph
fails the suite.
The antecedent holds
The obvious weakness was that the sentence is conditioned on a design contract
stating an acceptance row, while Bounded work has no artefact. Review settled it on
the text:
### Acceptanceis unscoped and requires "one table";README.mdstatesthe same unqualified rule. A Bounded change alters where the contract is stored,
not whether it has an acceptance shape. A Bounded design that is prose with no row
is already non-conforming.
Two corrections during release, both Control's
Review found the decision record had shortened the prior prompt, dropping a
conjunct and sharpening the contrast in Control's favour. That is the third time in
this session that Control compressed something in
docs/decisions.mdand erred inthe direction that strengthened its own argument; all three were caught by checking
the record against the source rather than against Control's summary. The
quotations are now given in full, verified by the reviewer against the stored
orchestration task specs rather than against the brief.
The review pin also changed mid-delivery. The first reviewer was stopped 2.5
minutes in, before any heartbeat, and the task was retried onto the new pin. No
verdict from the stopped worker was used.
What this does not do
Nothing here observes Control writing a prompt. Only a further probe tests it, and
one probe is one observation. The decision record says so.
Version
0.17.8in all three coupled sites.🤖 Generated with Claude Code
https://claude.ai/code/session_01RFPwA3GEzovwEoeohLLPjM