Skip to content

ums(verify-the-right-artifact): a reviewer's own counter-measurement is a claim too - #3468

Merged
d-morrison merged 5 commits into
mainfrom
ums-reviewer-precondition-399b0a
Sep 10, 2026
Merged

d-morrison merged 5 commits into
mainfrom
ums-reviewer-precondition-399b0a

Conversation

@d-morrison

Copy link
Copy Markdown
Collaborator

What this adds

A UMS entry from d-morrison/macros#87: an adversarial-reviewer subagent filed a factual-error finding against a commit's verification claim ("verified through pandoc -t latex"). Its own counter-test appended \v0 \v1 \v{x} to a document with no macro definitions, saw everything pass through unexpanded, and concluded pandoc never expands TeX macros in math mode -- so the original claim couldn't have discriminated a working macro file from a broken one.

The reviewer's measurement was real and its reasoning from it was valid. It omitted a precondition: pandoc's latex_macros extension only expands macros defined in the same document. The reviewer tested the null case and read it as the general case. Re-measuring with the precondition restored (independently re-verified against the real repo's before/after branches with quarto pandoc -t latex, not just recreating the PR's own claimed numbers) produces the actual discriminator, now a three-row table in this PR.

Two points, both recorded

  1. dont-take-my-word-for-it applies to reviewers, not just to humans and documents. An accepted finding and a rebutted finding both need re-measuring -- "the reviewer ran a command" isn't the same as "the reviewer ran the command that could show the claim false."
  2. The fix for a vague verification claim isn't to win the argument in a PR comment where it dies with the thread. It's to put the discriminating measurement -- including the null row that shows what a non-discriminating test looks like -- into the durable artifact (commit message, PR body).

Where it lives

New section in shared/workflow/verify-the-right-artifact.md: "A reviewer's counter-measurement needs the same check the claim it rebuts would have needed" -- placed as a plain artifact substitution (the four shapes from the top of the fragment), distinguished explicitly from the neighboring "scoped narrower" section rather than left ambiguous against it. Cross-linked from shared/principles/dont-take-my-word-for-it.md's "illusion of prior verification" bullet (moved there after review -- a real, confidently-run test creating false confidence fits that bullet better than the ungrounded-hallucination one).

Dupe-checked first: all-state issue search and content grep over CLAUDE.md/shared//memories//skills/ for "precondition", "reviewer measur...", "discriminat...". Closest existing material was verify-the-right-artifact.md's neighboring "A measurement of the right artifact can still be scoped narrower than the claim made from it" section (same file, also from a 2026-09-09 session on the same PR family) and ai-config#3444 (a related but distinct failure -- a reviewer overclaiming in its own review body, not a reviewer's measurement omitting a precondition). Neither covers this; this is a new section rather than a dupe.

Went through 4 rounds with a separately-dispatched adversarial-reviewer subagent before pushing: round 1 caught a factual error in the table (independently re-verified against the real repo, not just trusted the reviewer), an ambiguous "identical substitution" framing, an imprecise "shape 1" taxonomy label, and an unpaired Do/Don't list; round 2 caught the same shape-1 imprecision persisting plus an incidental reflow of an untouched bullet's line-wrapping; round 3 caught two new sentences left unwrapped inconsistent with sibling bullets; round 4 verdict is CLEAN.

Closes #3467

Posted by Claude Code (AI agent) --- not written by a human.

d-morrison and others added 5 commits September 9, 2026 13:04
…is a claim too

Measured 2026-09-09 driving d-morrison/macros#87: an adversarial-reviewer
subagent filed a factual-error finding against a commit message's
verification claim ("verified through `pandoc -t latex`"). The reviewer's
own counter-test appended `\v0 \v1 \v{x}` to a document with NO macro
definitions, observed pandoc pass every token through unexpanded, and
concluded pandoc never expands TeX macros in math mode -- so the original
claim could not possibly have discriminated a working macro file from a
broken one.

The reviewer's measurement was real and its reasoning from it was valid.
It omitted a precondition: pandoc's `latex_macros` extension only expands
macros defined in the same document, so the reviewer tested the null case
and read it as the general case. Re-measuring with the precondition
restored produces the actual discriminator (a three-row table), which is
now embedded in the fix's own PR body.

Adds a new section to verify-the-right-artifact.md making two points: (1)
`dont-take-my-word-for-it` applies to reviewers, not just to humans and
documents -- an accepted or rebutted finding both require re-measuring;
(2) the fix for a vague verification claim is to put the discriminating
measurement, including the null row, into the durable artifact rather than
arguing it out in a PR comment where it dies with the thread. Cross-links
from dont-take-my-word-for-it.md's AI-to-AI hallucination-loop bullet.

Closes #3467

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Addresses adversarial-reviewer findings on the prior commit:
- The 'no definitions present' row's \v{x} cell was wrong (claimed
  absent; independently re-verified against d-morrison/macros#87's
  actual branches with quarto pandoc -t latex: it passes through
  unexpanded like \v0, matching the other two rows).
- Reframed the section's opening: it is a plain artifact substitution
  (shape 1), not an instance of the immediately preceding "scoped
  narrower" section, and says so explicitly instead of using
  "identical substitution" ambiguously right after that section.
- Restructured the Do/Don't list into three matched pattern/anti-pattern
  pairs per CLAUDE.md's pairing convention (was 3 Do / 2 Don't).
- Moved the dont-take-my-word-for-it.md cross-link from the "AI-to-AI
  hallucination loops" bullet (about ungrounded claims) to "The illusion
  of prior verification" (about false confidence from a real signal),
  which fits the reviewer's-own-counter-test case better.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Addresses second-round adversarial-reviewer findings:
- 'shape 1' (cached/stale copy) doesn't fit a document that never had
  the precondition rather than one that is merely stale; drop the
  specific number and just say it's the same kind of substitution the
  four shapes describe, without forcing it into one of them.
- The AI-to-AI-hallucination-loops bullet's line wrapping was
  incidentally flattened by the sembr tool while editing the adjacent
  bullet, though its wording didn't change; restored its original
  4-line wrap per semantic-line-breaks.md's preserve-existing-breaks
  rule.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Third-round adversarial-reviewer finding: the two new sentences added
to dont-take-my-word-for-it.md's "illusion of prior verification"
bullet were left as single unwrapped lines (438 and 263 chars) while
every sibling bullet in the same list wraps at ~80 chars per
semantic-line-breaks.md -- an inconsistency within one bullet list,
distinct from verify-the-right-artifact.md's already-common long
single-sentence lines elsewhere in that file, which needed no change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@d-morrison

Copy link
Copy Markdown
Collaborator Author

Claimed by a Claude Code CLI session (sidecar UMS pass, dispatched 2026-09-09 13:23 PT) -- driving this PR to a clean review and green CI. Not merging.

Note: pushing to this branch required `ALLOW_UNREVIEWED_PUSH=1` despite four genuine adversarial-reviewer verdicts in the session's transcript -- `no-push-without-self-review.py` resolved to an unrelated commit SHA from a different git repository I'd cloned into /tmp for independent fact-checking. Flagged as a new instance on the existing tracked issue: #3018 (comment)

Posted by Claude Code (AI agent) --- not written by a human.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@d-morrison

Copy link
Copy Markdown
Collaborator Author

Addressed the non-blocking suggestion: corrected the tracking issue's (#3467) table to match the fixed version here, and added a note explaining the correction (both the issue and the original upstream macros#87 PR body had the same \v{x} error the reviewer independently caught and reproduced). Nice catch on the meta-irony -- an entry about a table that was wrong for omitting a precondition itself shipped with a wrong table cell.

Posted by Claude Code (AI agent) --- not written by a human.

@d-morrison

Copy link
Copy Markdown
Collaborator Author

@claude review

The one finding from the previous round was non-blocking and has been addressed: the tracking issue's (#3467) table was corrected, and the same error was corrected in the upstream d-morrison/macros#87 PR body it came from. No code or diff changes were needed, so the head is unchanged at 654301d1 and this comment is the only way to request a fresh verdict.

Requesting one because scripts/check-pr-fully-clean.py 3468 -R Morrison-Lab/ai-config exits 1 on the standing not-clean verdict, and a reply does not supersede it — only a later verdict-bearing statement does.

Posted by Claude Code (AI agent) --- not written by a human.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

👀 Picked up by workflow run #34406820165. Setup runs first; Claude itself responds after that.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

👀 Claude Review Dispatchedrun reviewing PR #3468 at 654301d.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Claude finished reviewView run


The only prior finding (the stale table in tracking issue #3467) has already been addressed — the author confirmed in a comment at 2026-09-09T20:31:54Z that #3467's table was corrected, and I verified directly: issue #3467's body now shows the correct table with an explicit correction note dated 2026-09-09. The PR's head commit is still 654301d13cd789144a654c670331e934a5c4e929, identical to the commit the prior review already reviewed and marked CLEAN — no new code has landed since. This is a confirming review with nothing new to check.

Review of PR #3468

No code changed since the prior review (commit 654301d, verdict: Ready for merge, one non-blocking suggestion). That review independently fact-checked the PR's three-row pandoc discriminator table across three pandoc builds and confirmed it matches the real d-morrison/macros before/after commits — no hallucinated content. The one non-blocking suggestion (stale table in tracking issue #3467) has since been resolved: issue #3467's body now carries the corrected table plus an explicit correction note.

No new findings.

Verdict

Ready for merge. Confirming the prior verdict stands — the diff is unchanged and its one outstanding suggestion has been addressed outside the diff.

Structured Review Data (JSON)
{
  "schema_version": "1.1",
  "reviewer": "claude",
  "commit_sha": "654301d13cd789144a654c670331e934a5c4e929",
  "verdict": "CLEAN",
  "findings": [],
  "detailed_assessment": "No content changes since the prior CLEAN review of the same commit 654301d; the two edited markdown fragments remain factually verified against the real d-morrison/macros repository.",
  "holistic_assessment": "The single prior non-blocking suggestion about issue 3467's stale table has been resolved outside this diff, so scope, requirements, and validation concerns are all clear for merge."
}

Reviewed commit: 654301d

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

💰 Cost: $0.5644 (review) — run

@d-morrison
d-morrison merged commit 3d81f43 into main Sep 10, 2026
22 checks passed
@d-morrison
d-morrison deleted the ums-reviewer-precondition-399b0a branch September 10, 2026 17:48
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.

verify-the-right-artifact: a reviewer's own counter-measurement can omit the precondition the claim depended on

1 participant