Skip to content

The dispatch prompt carries the acceptance row as written - #51

Merged
hieuphung97 merged 3 commits into
mainfrom
fix/prompt-carries-acceptance-row
Sep 6, 2026
Merged

hieuphung97 merged 3 commits into
mainfrom
fix/prompt-carries-acceptance-row

Conversation

@hieuphung97

Copy link
Copy Markdown
Owner

Probe 5 confirmed 0.17.7 works on its target. Under 0.17.6 Control wrote into
the reviewer's prompt:

If the implementation meets the requirement and the instrument passes, return
role disposition ACCEPT.

Under 0.17.7, same Control, same brief, same task, it wrote only:

Return exactly one role disposition: ACCEPT or CHANGES_REQUESTED.

The conditional criterion is gone, and the phrasing is SKILL.md's own — relaying
rather 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.7 added: where the design contract
states 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 for
the 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: ### Acceptance is unscoped and requires "one table"; README.md states
the 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.md and erred in
the 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.8 in all three coupled sites.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RFPwA3GEzovwEoeohLLPjM

hieuphung97 and others added 3 commits September 6, 2026 08:33
…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
@hieuphung97
hieuphung97 marked this pull request as ready for review September 6, 2026 01:52
@hieuphung97
hieuphung97 merged commit 5690982 into main Sep 6, 2026
1 check passed
@hieuphung97
hieuphung97 deleted the fix/prompt-carries-acceptance-row branch September 6, 2026 01:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant