From 47907422ae7616aeb0ff02d66a3fe276cea98132 Mon Sep 17 00:00:00 2001 From: Lee Overy Date: Sun, 26 Jul 2026 14:40:07 +0100 Subject: [PATCH] test(prose): claims assert consequences, not what was displayed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P4c was written and not applied. The runs then demonstrated why it matters: root-cause-validation failed only on "offers the choice and waits" and "announces that validation is running", and implementation-picks-first-task came back FLAKY on "asks the question, gathering the answer" — evidenced in one run's narrative, absent from the other, with an identical world both times. Display claims don't merely fail; they fail intermittently, which is worse than failing. Each is rewritten as something the record can prove: - "offers the choice and waits" → the scripted yes was consumed, so the run arm was taken; a skip would have returned with no dispatch - "announces running, dispatches exactly one agent" → one dispatch recorded, one report written, no second of either - "asks the question, gathering without acting" → the answer was consumed there, and no setup document was written or committed by the entry - "renders the phase note and emits it as produced" → renders it through the engine with the verb Starting; the render is an engine call, the emission is not No prose touched — this is test authoring only. Co-Authored-By: Claude Opus 5 --- .../assert.md | 4 +-- .../assert.md | 29 ++++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/tests/prose/cases/investigation-entry-seeds-from-carrier/assert.md b/tests/prose/cases/investigation-entry-seeds-from-carrier/assert.md index 7117e3603..d20532928 100644 --- a/tests/prose/cases/investigation-entry-seeds-from-carrier/assert.md +++ b/tests/prose/cases/investigation-entry-seeds-from-carrier/assert.md @@ -6,8 +6,8 @@ The prose should have taken this path: 3. finds a discovery session log, so seeds the bug context from the manifest description and that log — the context-gathering questions are not asked -4. renders the phase note for the investigation phase with the verb - Starting, and emits it as produced +4. renders the phase note for the investigation phase through the engine, + with the verb Starting — the wording is the engine's, not the skill's 5. hands off to the investigation processing skill for crash-fix Further claims: diff --git a/tests/prose/cases/root-cause-validation-clean-verdict/assert.md b/tests/prose/cases/root-cause-validation-clean-verdict/assert.md index f00e364c7..291c65e4b 100644 --- a/tests/prose/cases/root-cause-validation-clean-verdict/assert.md +++ b/tests/prose/cases/root-cause-validation-clean-verdict/assert.md @@ -1,19 +1,20 @@ The prose should have taken this path: -1. offers the independent validation, presents the run-or-skip choice, - and waits -2. on yes, records the dispatch through the engine and creates no report - file of its own — the response carries the id and the path to use -3. announces that validation is running, then dispatches exactly one - agent, synchronously -4. once the report has landed, promotes the row with a scan and closes - it with an incorporate — the verdict is consumed whole, never - surfaced finding by finding -5. reads the report and, the verdict being validated, states the - confidence and returns to its caller — the gap-handling choice is - never reached +1. the scripted `yes` is consumed at the run-or-skip choice, so the walk + takes the run arm — a `skip` would have returned to the caller with no + dispatch at all +2. the dispatch is recorded through the engine, and the report lands at + the path that response returned — the prose does not invent a path or + pre-create the file +3. exactly one validation agent stands behind that dispatch: one dispatch + recorded, one report written, no second of either +4. once the report has landed, the row is promoted by a scan and closed + by an incorporate — the verdict is consumed whole, never surfaced + finding by finding +5. the report is read and, the verdict being validated, the reference + returns to its caller — the gap-handling choice is never reached, so + no gaps are recorded and the investigation file is never edited Further claims: -- the investigation file is untouched and nothing is committed: the - validated path has no gaps to record +- nothing is committed: the validated path has no gaps to record