/pre-land-refuters — unbiased dual-model validation before landing
Proven in the ag-s43tg prune landing (2026-06-12): the refuter panel caught 9
real misses self-review passed over — a silently-failed edit, a CI-breaking
test, stale image manifests, gate-weakening test retirements, and an upstream
delete/modify conflict. Self-review is biased toward "looks good"; refuters
are prompted to win by finding what's wrong.
When to fire
Before pushing any change that is large (100+ files), regenerates factory
surfaces, repoints contract tests/canaries, or removes capability. NOT for
routine single-file changes — the panel costs two agent runs.
Constraints
- Pin acceptance BEFORE the work. The claim under test must be mechanical:
grep-able fixtures (pinned phrases, counts, ledger states) frozen before
implementation, not chosen post-hoc. No pins → write them first.
- Refuters are read-only and stake-free. Fresh context, no session history,
no authorship of the change. Prompt them to REFUTE, default to skepticism.
- Two model families minimum. One Fable/Claude subagent + one
codex exec --sandbox read-only validator. Same-family redundancy misses shared blind spots.
- Findings are fixed forward, never disarmed. A refuted contract test gets
an honest repoint to the surviving surface or a real fix — not deletion.
- Orchestrator stays the single writer. Refuters report; only the
orchestrator edits. Run the panel concurrently with the final full gate.
- Re-verify pins on the landed tree after merge/push, not just pre-commit.
Workflow
- Freeze the claim. State it in one sentence with mechanical acceptance
(e.g. "all N pinned phrases grep green; ledger has N terminal rows; staged
set is one revert unit").
- Dispatch the Fable refuter (background subagent, fresh context):
verify counts, sweep every pinned fixture, audit the ledger, hunt stragglers
referencing removed paths, spot-check routing, check revert-unit coherence
and upstream drift (
git fetch + behind-count). Output: VERDICT
CONFIRMED/REFUTED + numbered findings with evidence.
- Dispatch the codex refuter (
codex exec --sandbox read-only -C <repo>):
focus on judgment-sensitive edits — for each contract-test/canary/validator
change in the diff, judge: honest repoint vs gate-weakening. Same verdict
shape.
- Run the full local gate concurrently (it is the third, mechanical
refuter).
- Triage findings: fix each forward; classify pre-existing vs introduced;
re-run only the affected validators.
- Land (commit → merge upstream if it moved → gate → push), then re-run
the pinned sweep on the landed tree and record the panel verdicts in
.agents/council/YYYY-MM-DD-pre-land-<slug>.md.
Output Specification
Format: a council artifact at .agents/council/YYYY-MM-DD-pre-land-<slug>.md
containing: the frozen claim, both refuter verdicts (verbatim findings), the
fix-forward disposition per finding, and the post-land pin re-verification.
Quality Rubric
Examples
User says: "land this prune, don't cut corners"
Do: freeze the pinned-manifest claim → dispatch Fable refuter (Agent tool,
fresh context) + codex refuter (codex exec --sandbox read-only "...judge each contract-test edit: honest repoint vs gate-weakening...") + full gate, all in
parallel → fix findings forward → land → re-sweep pins.
Troubleshooting
| Problem |
Cause |
Solution |
| Refuter says CONFIRMED instantly |
Prompt lacked mechanical checks |
Re-dispatch with explicit per-fixture commands; "try to refute" + checklist |
| Findings contradict each other |
Different scopes |
Triage per finding with evidence; the diff is the arbiter |
| Panel too slow |
Run was serial |
Dispatch both refuters + gate concurrently; they are read-only |
See Also
- validate — verdict contract the panel reports in
- codex-exec — the codex refuter lane
- codex-approval — the inverse direction (Codex asks Fable)
- red-team — adversarial probing of docs/plans (pre-work); this skill is pre-land
- rpi — invokes this panel at Phase 3 exit on full-complexity arcs
- pre-mortem — plan-time twin (move 4); this skill is the landing twin (move 6 exit)
- post-mortem — consumes the council artifact as landing evidence (move 7)
1---2name: pre-land-refuters3description: Dispatch unbiased refuters (fresh Fable + read-only codex exec) to attack a completion claim before landing a large change. Triggers: pre-land validation, refute before push.4---5
6# /pre-land-refuters — unbiased dual-model validation before landing
7
8> Proven in the ag-s43tg prune landing (2026-06-12): the refuter panel caught 9
9> real misses self-review passed over — a silently-failed edit, a CI-breaking
10> test, stale image manifests, gate-weakening test retirements, and an upstream
11> delete/modify conflict. Self-review is biased toward "looks good"; refuters
12> are prompted to win by finding what's wrong.
13
14## When to fire
15
16Before pushing any change that is large (100+ files), regenerates factory
17surfaces, repoints contract tests/canaries, or removes capability. NOT for
18routine single-file changes — the panel costs two agent runs.
19
20## Constraints
21
22- **Pin acceptance BEFORE the work.** The claim under test must be mechanical:
23 grep-able fixtures (pinned phrases, counts, ledger states) frozen before
24 implementation, not chosen post-hoc. No pins → write them first.
25- **Refuters are read-only and stake-free.** Fresh context, no session history,
26 no authorship of the change. Prompt them to REFUTE, default to skepticism.
27- **Two model families minimum.** One Fable/Claude subagent + one `codex exec
28 --sandbox read-only` validator. Same-family redundancy misses shared blind spots.
29- **Findings are fixed forward, never disarmed.** A refuted contract test gets
30 an honest repoint to the surviving surface or a real fix — not deletion.
31- **Orchestrator stays the single writer.** Refuters report; only the
32 orchestrator edits. Run the panel concurrently with the final full gate.
33- **Re-verify pins on the landed tree** after merge/push, not just pre-commit.
34
35## Workflow
36
371. **Freeze the claim.** State it in one sentence with mechanical acceptance
38 (e.g. "all N pinned phrases grep green; ledger has N terminal rows; staged
39 set is one revert unit").
402. **Dispatch the Fable refuter** (background subagent, fresh context):
41 verify counts, sweep every pinned fixture, audit the ledger, hunt stragglers
42 referencing removed paths, spot-check routing, check revert-unit coherence
43 and upstream drift (`git fetch` + behind-count). Output: VERDICT
44 CONFIRMED/REFUTED + numbered findings with evidence.
453. **Dispatch the codex refuter** (`codex exec --sandbox read-only -C <repo>`):
46 focus on judgment-sensitive edits — for each contract-test/canary/validator
47 change in the diff, judge: honest repoint vs gate-weakening. Same verdict
48 shape.
494. **Run the full local gate concurrently** (it is the third, mechanical
50 refuter).
515. **Triage findings**: fix each forward; classify pre-existing vs introduced;
52 re-run only the affected validators.
536. **Land** (commit → merge upstream if it moved → gate → push), then re-run
54 the pinned sweep on the landed tree and record the panel verdicts in
55 `.agents/council/YYYY-MM-DD-pre-land-<slug>.md`.
56
57## Output Specification
58
59**Format:** a council artifact at `.agents/council/YYYY-MM-DD-pre-land-<slug>.md`
60containing: the frozen claim, both refuter verdicts (verbatim findings), the
61fix-forward disposition per finding, and the post-land pin re-verification.
62
63## Quality Rubric
64
65- [ ] Claim frozen with mechanical acceptance before refuters dispatched
66- [ ] Two model families, both read-only, both prompted to refute
67- [ ] Every REFUTED finding has a fix-forward disposition (none ignored, none disarmed)
68- [ ] Pins re-verified green on the landed tree
69- [ ] Council artifact persisted
70
71## Examples
72
73**User says:** "land this prune, don't cut corners"
74**Do:** freeze the pinned-manifest claim → dispatch Fable refuter (Agent tool,
75fresh context) + codex refuter (`codex exec --sandbox read-only "...judge each
76contract-test edit: honest repoint vs gate-weakening..."`) + full gate, all in
77parallel → fix findings forward → land → re-sweep pins.
78
79## Troubleshooting
80
81| Problem | Cause | Solution |
82|---------|-------|----------|
83| Refuter says CONFIRMED instantly | Prompt lacked mechanical checks | Re-dispatch with explicit per-fixture commands; "try to refute" + checklist |
84| Findings contradict each other | Different scopes | Triage per finding with evidence; the diff is the arbiter |
85| Panel too slow | Run was serial | Dispatch both refuters + gate concurrently; they are read-only |
86
87## See Also
88
89- [validate](../validate/SKILL.md) — verdict contract the panel reports in
90- [codex-exec](../codex-exec/SKILL.md) — the codex refuter lane
91- [codex-approval](../codex-approval/SKILL.md) — the inverse direction (Codex asks Fable)
92- [red-team](../red-team/SKILL.md) — adversarial probing of docs/plans (pre-work); this skill is pre-land
93- [rpi](../rpi/SKILL.md) — invokes this panel at Phase 3 exit on full-complexity arcs
94- [pre-mortem](../pre-mortem/SKILL.md) — plan-time twin (move 4); this skill is the landing twin (move 6 exit)
95- [post-mortem](../post-mortem/SKILL.md) — consumes the council artifact as landing evidence (move 7)