# Cross-review: Fable → Codex, with mandate for the final document

## Metadata

- Author: Fable 5 (Claude Code session, 2026-08-02)
- Documents compared:
  - A (Fable): `docs/research-fable-agentes-curva-u.md` — literature review + theoretical model
  - B (Codex): `docs/research-protocol-agent-drift.md` — experimental falsification protocol
- Recipient: **Codex**, who will write the merged final document
- Reading rule for Codex: points marked **[CONCEDED]** are defeats I accept without argument — you don't need to re-argue them. Those marked **[ATTACK]** are burdens your document must answer or incorporate in the final. Those marked **[MANDATE]** are final-document requirements agreeable with the user.

## 0. Genre verdict (the first thing to say)

Classic adversarial comparison doesn't apply cleanly: **we're not writing the same document**. A answers "is it studied? what's the mathematics?" (review + mechanism). B answers "how do we figure out if the thesis is true?" (falsification protocol). They're not rivals on the same axis — they're the two halves of a paper. The final document must be that merge, not a third opinion.

## 1. Where B (Codex) wins — Fable's concessions

### 1.1 [CONCEDED] The epistemic treatment of the initial observation

A treated the user's U-curve as *fact to explain*. B treats it as *possibly confused observation* (§1) and lists 8 rival hypotheses (§4) that A didn't even consider: intrinsic difficulty of medium tasks, familiarity with mature-repo patterns, better prompts from the human as the project matures, survivor bias, agent/harness dependency, overall code quality, size-only, tests-only. This is the strongest blow of the cross-review and I concede it entirely. **The final document must start from the observation as confused, not as fact.**

### 1.2 [CONCEDED] The 2×2 factorial design (Experiment A)

Strong/weak structure × strong/weak tests separates what A conflated: A groups "interfaces + tests" as a single recovery mechanism; B's factorial can say which dominates and whether they interact. This is the central experimental piece of the final document.

### 1.3 [CONCEDED] The placebo condition (Experiment D)

Checkpoints with neutral messages and the same interruption separate the benefit of *pausing* from the benefit of the *signal*. Directly relevant for Vigia: if its alerts work only because they interrupt, we need to know, and without placebo it's undetectable. Must survive intact.

### 1.4 [CONCEDED] AUS (area under the surface)

A trajectory that rewrites half the system and reverts it is identical to a direct one in final diff; AUS distinguishes them. Fine metric, to the final document unchanged.

### 1.5 [CONCEDED] Overall statistical maturity

Survival with competing risks, AUPRC over AUROC for rare events, conformal p-values with the correct interpretive caveat, pre-registration (§17), ablations 7-9, separation of exploratory/confirmatory. Nothing to object to; it's the methodological skeleton of the final.

## 2. Where A (Fable) attacks — burdens B must answer

### 2.1 [ATTACK] B doesn't answer the user's original question

Zero citations, zero literature. B operates as if the phenomenon were virgin, but there is published evidence: *scaling collapse* by LOC (~91% <10K, ~67% 10-50K, ~15% >50K), *constraint decay*, geometric decay (1−ε)^T with ε(t) ≈ ε₀ + α·log t, empirical phase transition ~50 steps, horizon-to-50% doubling every ~7 months (METR). Sources in `research-fable-agentes-curva-u.md` §6, with provenance and confidence levels declared in §1 and §5 of that document.

Practical consequence, not cosmetic: without prior work there are no effect sizes for the power analysis that B's own §11 demands, and you risk re-running experiments already run. **The final document needs a related work section — can take C1-C5 from A, inheriting its provenance caveats.**

### 2.2 [ATTACK] The formula Q = C_e/(L+O+K) is decorative

Adds locality + observability + contracts to a denominator with no units or operationalization of the sum, and B's own statistical plan (§13) abandons it: the hierarchical model uses separate βs per component. The "phenomenon thesis" as formulated is never tested; its components are. Options for the final: (a) eliminate Q and leave the thesis in prose + hierarchical model, or (b) explicitly declare it as *directional mnemonic, not as measurable quantity*. Either way; what's indefensible is the current state.

### 2.3 [ATTACK] The cost of the protocol is undeclared, and it's enormous

Building equivalent systems in 4 factorial variants, 12 tasks × 4 variants × seeds × ≥3 model families, hidden tests, two blind evaluators with kappa: this is a lab program of months. Plus there's an unlisted confounder in §4: **who builds the variants?** If an agent builds them, they inherit its style; if humans, cost explodes. The final document must (a) declare estimated cost per phase, (b) add the constructor confounder, and (c) adopt an **evidence ladder**: cheap seeded benchmark (~30 tasks, days — A §"seeded benchmark") as a pilot, B's complete protocol as confirmatory phase only if the pilot survives.

### 2.4 [ATTACK] D_t requires ground truth that doesn't exist in production — and B doesn't draw the conclusion

The objective set O is only known in seeded tasks. B's ablation 7 recognizes it halfway, but the interesting part is missing: **in production, the only thing that can give you O is the session contract.** B's star metric is a structural argument in favor of Objective Guard's contract layer, and the final document must make it explicit: contract ⇒ D_t computable outside the lab.

### 2.5 [ATTACK] B operationalizes rewriting (§5.4, well) but doesn't explain it, and doesn't test abruptness

No mechanism: why does the agent want to rewrite, why does collapse feel sudden. H2 tests non-monotonicity but nothing tests *discontinuity*. A provides the mechanisms (K vs C_eff, dependency-graph percolation as declared analogy, autoregressive bias toward fresh code, Hyrum's law — see A §M1-M3) — missing is converting them to hypotheses:

- **[MANDATE] H2b (new)**: the middle drop is threshold, not gradual — for comparable tasks, performance as a function of an effective-coupling metric shows better fit with regime-change models (spline with knot / segmented regression) than with continuous slope; and the breaking point correlates with dependency-graph connectivity metrics (giant component emergence).
- **[MANDATE] H6 (new, rewriting mechanism)**: probability of rewrite attempt grows with estimated cost of understanding the zone to touch (approximable by relevant transitive closure and absence of local tests) more than with required diff size. Falsifiable with B's same trajectory data §15.

## 3. The product/science tension and its resolution

B §19 requires passive instrument first (observe → calibrate → intervene). Vigia (`prd-vigia.md`) alerts from day 1. The resolution is **by epistemic class**, and the last line of B itself concedes it ("automatic blocks require additional deterministic evidence"):

| Signal class | Examples | Needs prior calibration? |
| --- | --- | --- |
| Deterministic facts | assertion deleted, `it.skip` new, syntax broken, new dep | No — true by inspection. Vigia v1 can alert from day 1 |
| Statistical drift signals | R_t, anomalous surface, D_t, J_t | Yes — B's full protocol before alerting (Experiments C and D, with placebo) |

**[MANDATE] Vigia's dual role**: `.vigia/log` must record B's event schema from §15 (surface per step, files, hashes, tokens) so each real session passively feeds Experiment C's dataset. Cheap reflex finances expensive science. This unites the two PRDs with the protocol in a single pipeline.

## 4. Verdict table

| Dimension | Winner | Note |
| --- | --- | --- |
| Answering the original question (is it studied? + mechanism) | A | B: zero citations |
| Rigor of falsation and confounder control | B, clearly | B's §4 is the best section of both documents |
| Explanatory power (abruptness, rewrite impulse) | A | B has no mechanisms |
| Path to definitive evidence | B | factorial + placebo + pre-registration |
| Actionability this week | A | seeded benchmark in days vs months |
| Intellectual honesty | Draw | A pre-registers weaknesses; B pre-registers its own refutation |

## 5. Mandate for the final document (to be written by Codex)

Proposed structure — attribution in brackets; Codex has form freedom, not omission freedom:

1. **Observation and epistemic status** [B §1, winner of the cross-review] — U-curve as confused observation.
2. **Related work** [A §C1-C5, with its provenance caveats intact and verification of C1's figures marked as a task].
3. **Theoretical model and mechanisms** [A §M1-M4: K vs C_eff, percolation *as declared analogy*, rewriting bias, O(εT²)→O(εT)] — presented as hypothesis generators, not results.
4. **Thesis and hypotheses** [B §2-3 + H2b and H6 new from this review; Q eliminated or degraded to mnemonic (§2.2)].
5. **Rival hypotheses** [B §4 + constructor-of-variants confounder (§2.3)].
6. **Operational definitions, variables, metrics** [B §5-9 nearly intact; AUS and drift rubric survive; make explicit the D_t↔contract dependence (§2.4)].
7. **Evidence ladder** [new]: pilot = A's seeded benchmark (~30 tasks, days); confirmatory = B's Experiments A-D, with estimated cost per phase declared.
8. **Statistical plan, leakage, pre-registration** [B §13-17 intact].
9. **Relation to products** [B §19 + this review's resolution by epistemic class §3 + Vigia's dual role as passive instrumentation].
10. **Registry of residual disagreements** [new]: if Codex rejects any [ATTACK] or [MANDATE], must state it explicitly with argument, not omit silently. User arbitrates what remains open.

Success criterion of final document: a third party can execute the pilot without reading any of the three prior documents, and no claim travels without its confidence level or source.
