Skip to content

docs(workflows): verification-scaling guidance for starter patterns (D1, #2491) - #2503

Merged
flora131 merged 7 commits into
mainfrom
verifier/docs-patterns
Aug 19, 2026
Merged

docs(workflows): verification-scaling guidance for starter patterns (D1, #2491)#2503
flora131 merged 7 commits into
mainfrom
verifier/docs-patterns

Conversation

@flora131

@flora131 flora131 commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Evidence

Acceptance criteria (from #2491, D1 subset)

  • Each existing starter pattern gains in-place verification-scaling guidance: Tournament covers graded per-criterion scores, Bradley–Terry preference from score gaps, K repeats with A/B slot swaps, and the 26.7%-tie-at-K=1 finding; Adversarial verification covers criteria decomposition, mean plus veto, the rejection of unanimity AND, and the false-reject argument; Generate-and-filter carries the same judge guidance; Loop until done records progress magnitude beside the stop bit, treats a flat trend as stall evidence, and never treats trend as a kill switch. Proven by the edited pattern sections listed below.
  • The linked, short Verification scaling subsection covers the anchored 1–20 scale, the no-logprobs constraint and roughly 16× K=16 cost, pool diversity and its oracle-ceiling/chance-level-selector caveat, self-verification, and cheap operating points without documenting shipped primitive inputs or defaults. Proven by Verification scaling.
  • README pattern-table rows are annotated for adversarial verification, generate-and-filter, tournament, and loop-until-done. Proven by the edited rows in packages/workflows/README.md.
  • Every cited number is traceable to research §3 and appears with benchmark/comparison context; no unsupported 83.1 citation appears. Proven by the number audit and stranger review.

Commands

$ npm run check

> check
> biome check --error-on-warnings . && npm run typecheck && npm run check:shrinkwrap

Checked 2535 files in 5s. No fixes applied.

> typecheck
> tsc --noEmit && npm --workspace=@bastani/atomic run typecheck


> @bastani/atomic@0.0.0 typecheck
> tsgo -p tsconfig.build.json --noEmit


> check:shrinkwrap
> node scripts/generate-coding-agent-shrinkwrap.mjs --check

packages/coding-agent/npm-shrinkwrap.json is up to date.

$ git diff --stat main..HEAD
 packages/coding-agent/docs/workflows.md | 18 ++++++++++++++++++
 packages/workflows/README.md            |  8 ++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

Size

$ git diff --stat main..HEAD
 packages/coding-agent/docs/workflows.md | 18 ++++++++++++++++++
 packages/workflows/README.md            |  8 ++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

Docs-only slice; the source-line cap is exempt. The diff is limited to two allowed documentation files.

Spec

specs/2026-08-17-verifier-docs.md §3.1 (D1), §4.1, and §5; umbrella specs/2026-08-17-llm-verifier-adoption-program.md §5.3 Evidence protocol and §9 Q7. Number citations were checked against research/docs/2026-08-17-llm-verifier-adoption-scan.md §3.

Edited-section anchors

Stranger test

Source given to the stranger: the edited Tournament section only.

Stranger kind=graded_per_criterion_integers pass=true
Stranger evidence: pass=true. Stranger draft: `"description": "One judge call over one ordered pair. Emits graded per-criterion integer scores per slot. Emits no winner."`; required criterion fields are `"criterion_id", "rationale", "slot_a_score", "slot_b_score"`; and `"score"` has `"type": "integer", "minimum": 0, "maximum": 4`. Tournament excerpt: “Have judges emit graded per-criterion integer scores rather than a binary winner.”
Stranger draft: /home/exedev/.atomic/agent/workflows/runs/d1-verifier-docs/ec6fc006-b48b-420a-817b-f276ef9c8d79/stranger-draft.md
Citation scan: none
Review findings: Approved. Only the two allowed files changed; working tree is clean. All four pattern sections link to the short custom-authoring-only Verification scaling section. No unshipped input, default, format, API, or ledger is documented; README verbs give author guidance.
Number audit (doc value → quoted research §3 row):

- `76.4%`, `78.3%` → “best single criterion 76.4% vs 3-ensemble 78.3% (§4.3)”.
- `26.7%`, `K=1` → “discrete judges tie 26.7% at K=1”.
- `K=1→16`, `74.7%→77.5%`, `O(1/K)` → “K repeats with A/B slot swap within each pair … variance O(1/K); 74.7%→77.5% K=1→16”.
- `1–20` → “Anchored 20-point scale (letters A–T; integers 1–20 in prompt-template form)”.
- `86.5% ±1.1`, `79.4%`, `92.1%`, `88.0% ±0.6`, `78.7%`, `96.6%` → “bo3 86.5%±1.1 vs pass@1 79.4 (oracle 92.1); bo5 88.0%±0.6 vs 78.7 (96.6)”.
- `+7.1`, `+9.3` → “Self-verification: same model judges its own rollouts, still +7.1/+9.3 over pass@1”.
- `K=2` and one pivot → “Cheap operating points: bo3 = `pivots=1, K=2`; bo5 same shape”.
- The required no-logprobs exception is present: `K=16` at roughly `16×` call cost. It matches research §2 decision 1 and the D1 contract.
- The false-accept/false-reject formulas match the §3 mean-aggregation row: “false-accept degrades `(1−p)^K`”.

`83.1` does not appear in either target. Each percentage has its study/comparison context.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Greptile Summary

This change adds verification-scaling guidance and expands the builtin workflow table. The table currently attributes mean-plus-veto aggregation, graded Bradley–Terry ranking with repeated slot swaps, and progress-trend tracking to shipped builtins that do not implement those mechanisms. Update packages/workflows/README.md to describe the current builtin contracts, or implement the described behavior before merging.

Confidence Score: 4/5

Not safe to merge as written because the builtin workflow table promises behavior that differs from the shipped implementations.

An executable harness exercised the four documented workflow paths and directly observed the binary verifier, shortlist or binary-winner judge, knockout bracket, and boolean completion-ledger contracts. Focused regression tests also passed with those current contracts.

Files Needing Attention: packages/workflows/README.md lines 775-778 need to distinguish custom-authoring recommendations from currently shipped builtin behavior.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a proof for a posted P1 finding that aligns with the review comment.
  • T-Rex ran the executable builtin documentation validation script and observed the builtin workflow results after validation.
  • A focused builtin regression test run was executed to exercise builtin validation paths.
  • The repository worktree was checked after validation to confirm the state of the codebase.
  • General contract validation confirmed the outputs: a single failed adversarial verifier vetoed a reducer accept, with only shortlist/rationale and winner/evidence outputs across the knockout judges, while loop and ledger showed no progress.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. General comment

    P1 Builtin workflow table promises verification and selection mechanisms that the shipped workflows do not implement

    • Bug
      • packages/workflows/README.md:775-778 promises mean-plus-veto aggregation for adversarial verification; graded per-criterion Bradley–Terry scoring plus repeated A/B slot swaps for generate-and-filter and tournament; and progress-magnitude/trend tracking for loop-until-done. The shipped workflows instead use unanimous binary verifier verdicts, shortlist-only or binary-winner judge schemas, a single order-balanced knockout bracket, and a ledger containing only the boolean done decision and textual evidence/findings. Therefore a user invoking every named builtin does not receive the documented behavior.
    • Cause
      • The documentation guidance was added as if the proposed verifier-scaling mechanisms had shipped, but the builtin runner schemas, prompts, and reducers still implement the earlier binary/knockout contracts.
    • Fix
      • Either implement the documented mechanisms in the relevant builtin runner schemas/prompts/reducers, or revise README lines 775-778 to describe the currently shipped unanimous binary gate, shortlist judge, single order-balanced binary tournament, and boolean completion ledger.

    T-Rex Ran code and verified through T-Rex

Prompt To Fix All With AI
### Issue 1
packages/workflows/README.md:775-778
**Builtin behavior is overstated**

The builtin table presents custom verification-scaling recommendations as behavior users receive from the shipped workflows. `adversarial-verification` still uses a unanimous binary verifier gate; `generate-and-filter` and `tournament` expose shortlist or binary-winner judging rather than graded Bradley–Terry scores with repeated slot swaps; and `loop-until-done` records a boolean completion decision without progress magnitude or trend tracking. A caller selecting these builtins therefore does not get the verification and convergence guarantees described here. Either implement these mechanisms or move the recommendations into custom-authoring guidance and describe the current builtin contracts.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "docs(workflows): give generate-and-filte..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

@flora131
flora131 force-pushed the verifier/docs-patterns branch from 92cc989 to c18caac Compare August 18, 2026 16:23
@flora131
flora131 marked this pull request as ready for review August 19, 2026 16:53
@flora131
flora131 merged commit e8f5a63 into main Aug 19, 2026
18 checks passed
@flora131
flora131 deleted the verifier/docs-patterns branch August 19, 2026 16:53
Comment on lines +775 to +778
| `adversarial-verification` | worker → fresh rubric verifiers → reducer → bounded repair; decompose rubrics into named criteria and aggregate by mean plus explicit veto, never a unanimity AND | `task`; `verifier_count=3`, `max_repairs=2` | result, approval, repairs, candidate/review/verifier paths |
| `generate-and-filter` | candidate fan-out → dedupe/filter → optional judge → shortlist; use graded per-criterion scores, Bradley–Terry preference from score gaps, and slot-swap repeats when ranking candidates | `prompt`; `num_candidates=8`, `shortlist_size=3`, `use_judge=true`, `max_concurrency=4` | result, shortlist and candidate/filter/judge/final/manifest paths |
| `tournament` | independent attempts → order-balanced pairwise judges → bracket reducer; derive a Bradley–Terry preference from graded score gaps and repeat with A/B slot swaps | `prompt`; `num_attempts=4`, `max_concurrency=4` | result, winner, attempt/judge/bracket paths |
| `loop-until-done` | durable ledger → iteration/evaluator loop → complete or inspectable exhaustion; record progress magnitude beside the stop bit and treat flat trend as stall evidence, never a kill switch | `prompt`; `max_iterations=5` | result/status, ledger, iteration/evaluation paths, remaining work |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Builtin behavior is overstated

The builtin table presents custom verification-scaling recommendations as behavior users receive from the shipped workflows. adversarial-verification still uses a unanimous binary verifier gate; generate-and-filter and tournament expose shortlist or binary-winner judging rather than graded Bradley–Terry scores with repeated slot swaps; and loop-until-done records a boolean completion decision without progress magnitude or trend tracking. A caller selecting these builtins therefore does not get the verification and convergence guarantees described here. Either implement these mechanisms or move the recommendations into custom-authoring guidance and describe the current builtin contracts.

Artifacts

README builtin workflow claims before validation

  • Captured `HEAD` README lines 775-778 before running the builtin workflows, showing the four claimed mechanisms; takeaway: these are the assertions tested.

Executable builtin documentation validation script

  • The authored TypeScript harness invokes all four builtin runners with deterministic stage responses and asserts their actual schemas and control paths; takeaway: it is the exact executable test source.

Executed builtin workflow behavior after validation

  • Output of the executable harness showing a failed verifier blocked acceptance, shortlist and binary-winner schemas, three tournament judges, and no progress or trend fields; takeaway: every claimed behavior is contradicted at runtime.

Focused builtin regression test run

  • Focused Vitest execution of the existing adversarial/generate and tournament/loop tests completed with 12 passing tests; takeaway: the observed legacy behavior is covered by the current tests.

Repository worktree check after validation

  • Captured git status after validation showing no source edits from this review outside the required artifact directory and pre-existing Greptile metadata; takeaway: repository files were not modified.

View artifacts

T-Rex Ran code and verified through T-Rex

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/workflows/README.md
Line: 775-778

Comment:
**Builtin behavior is overstated**

The builtin table presents custom verification-scaling recommendations as behavior users receive from the shipped workflows. `adversarial-verification` still uses a unanimous binary verifier gate; `generate-and-filter` and `tournament` expose shortlist or binary-winner judging rather than graded Bradley–Terry scores with repeated slot swaps; and `loop-until-done` records a boolean completion decision without progress magnitude or trend tracking. A caller selecting these builtins therefore does not get the verification and convergence guarantees described here. Either implement these mechanisms or move the recommendations into custom-authoring guidance and describe the current builtin contracts.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

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