S11 — Reproducibility & Failure Modes

Florian Oswald

13 October, 2026

Why this session exists

  • Remote session — no lecture, a debrief, a standard, and a personal document you write and keep
  • By now (S4–S10) an agent has almost certainly produced something that looked right and wasn’t
  • That’s not hypothetical — it’s the single most reliable thing about working with LLMs

Objectives

  • Understand what a journal-grade replication package requires, and why each requirement exists.
  • Catalogue every case in S4–S10 where an agent produced a plausible-but-wrong result, and identify what caught it.
  • Write a personal checklist you will actually use the next time an agent writes code for you.

Part 1 — The Data Editor’s lens

When a paper is conditionally accepted at a journal like the JPE, authors submit a replication package: code, data, documentation — sufficient for someone uninvolved to regenerate every table and figure.

My job as Data Editor: check whether that’s actually true, not whether the authors say it’s true.

The standard, mapped to failure modes

Requirement What it checks Failure mode it prevents
One-command run No private “the trick” knowledge needed Code that only runs on the author’s machine
Pinned versions Results don’t silently drift “Worked yesterday”
No hardcoded paths Runs on any machine /Users/you/Desktop/data.csv (S3’s requirement)
Data provenance Every input traceable Silent undocumented filtering upstream
README Stranger finds code → output mapping Nobody, incl. you in 6 months, can find how it was made
Seeds set Exactly reproducible stochastics Results that quietly drift each run
Auditable sample construction Every row-drop visible & justified Silent sample-selection changes the answer

Part 2 — Debrief: the failure log

Across S4–S10 you used agents for: scripts (S2), a DuckDB pipeline (S6), unit tests (S7), invariant/property checks + seeded-bug hunt (S8), spatial joins/CRS (S10), cost/scale reasoning (S9).

Task: go back through your own work and fill in the table with at least four real entries — not hypothetical.

The failure log template

Session What the agent produced Why plausible What caught it Could S7/S8-style test catch it?
e.g. S6 Join silently dropped unmatched rows Ran without error, row count “looked reasonable” Manual row-count check before/after join Yes — row-count invariant

Part 3 — Your personal checklist

This is the graded outcome. Using Part 1 (the standard) + Part 2 (your own evidence), write a personal checklist you will genuinely use next time an agent writes code that matters.

  • Not a copy of the Part 1 table — shorter, specific to your recurring failure patterns
  • Phrased as things you will actually do, ~6–10 items

Deliverable

A short written checklist (can live at the top of your S12 capstone README, or as a standalone note). Bring it to S12 — you will use it.

Checklist for this session