Computational reproduction of Political Rupture and Selective Damage to Local...
How this study was produced: every step of the run with the file it wrote, and everything the run used, pinned to the exact version. The address of this page is derived from its content: if anything below changed, the address would change.
Paper, data and code of the study
- PaperNot public.
- DataPublic: the replication package of the original study, doi:10.5281/zenodo.22179151. The reproduction ran it again.
- CodePublic: the replication package of the original study, doi:10.5281/zenodo.22179151. The reproduction ran it again.
Run settings
- e2er
- version 0.12.1 · code at 4758cb1e1f2b
- Template
- replication · single pass
- Governance
- full
- AI backend
- claude_code
- Models
- claude_code/claude-haiku-4-5-20251001
- Exported
- 20261002
- Sessions
- 11 sessions, on 7 e2er commits · listed with the workflow
- Outcome
- Completed · 2026-10-01 13:08 UTC
- e2er code
- no local changes at run time
Input data
Public input: the replication package of the original study on Zenodo, doi:10.5281/zenodo.22179151. The reproduction fetched it and ran its code again; the package's integrity check passed.
SHA-256 of the data files, as recorded in the study's provenance.
- none recorded beyond the package above
Workflow (43 steps)
The run in order, from the run's own record. The run was carried out in 11 sessions on 7 e2er commits. How to read it
A session is one e2er process, from a start or a resume to the next stop, and each session names the e2er version and commit its steps ran on. Each specialist step shows the model, the file it wrote and the file's hash value (SHA-256). Where the run did not record the hash value, the step says so: the last step that wrote a file shows the hash value of the file at export, and earlier steps that wrote the same file are marked as superseded. Checks that stopped a step are listed where they happened: 8 here. Steps taken by the researcher (9 here) are marked with a grey dot. Stops, pauses and failures of the run are marked with a ring, at their time.
18 researcher decisions and stops · 9 actions · 8 stops · 0 approved deviations · 1 failure
- Session 6 Run failed
- Session 2 Check contracts failed, step stopped
- Session 3 Check contracts failed, step stopped
- Session 5 Check reproduction failed, step stopped
- Session 5 Check reproduction gate failed, run stopped
All 18, by session
- Session 1 Researcher sent back replication planner
- Session 2 Check contracts failed, step stopped · Researcher sent back replication planner
- Session 3 Check contracts failed, step stopped · Researcher edited replication_plan.json · Researcher sent back replication planner
- Session 4 Researcher approved review plan
- Session 5 Check reproduction failed, step stopped · Check reproduction gate failed, run stopped · Researcher sent back sandbox run
- Session 6 Check contracts failed, step stopped · Check contracts failed, step stopped · Check contracts failed, step stopped · Run failed
- Session 7 Check contracts failed, step stopped · Researcher approved review report
- Session 9 Researcher reran compare
- Session 10 Researcher approved review report
Session 1 of 11 2026-09-28 13:30–14:30 UTC · e2er 0.10.0, commit a0962ddbc89b · 3 steps · replication planner · 1 researcher action · Run stopped for the researcher's review (review plan)
- Fetch
- Check: package integrity passed
- Plan
- replication planner · claude-haiku-4-5-20251001 · 13:30–13:35 misc/replication_plan.md (not recorded during the run; superseded by a later step)
- Run stopped for the researcher's review (review plan) · 13:35
- Researcher sent back replication planner · 14:30 Revise replication_plan.json and replication_plan.md. (1) environment.packages: add every package the entry points and 00_setup.R load, including dplyr, tidyr, stringr, readr, purrr, janitor, lubridate, lme4 and jsonlite, so nothing is installed at run time. (2) Report two levels separately. Level 1: the code rebuilds the package's own result files; targets are the shipped result files. Level 2: the published paper's printed numbers are reproduced; targets come only from the paper itself, the SSRN preprint 10.2139/ssrn.7079720, if an open PDF can be downloaded, cited by table and page, at the precision printed. Never take a level-2 target from the package's own files. Where no open paper source exists, mark the result as level 1 only.
Session 2 of 11 2026-09-28 14:30–23:15 UTC · e2er 0.10.0, commit a0962ddbc89b · 3 steps · replication planner · 1 researcher action · 1 check failed · Run stopped for the researcher's review (review plan)
- Plan
- Check: contracts failed, step stopped replication_plan.json: targets must be a list (empty when no reported number could be found)
- replication planner · claude-haiku-4-5-20251001 · 14:30–14:33 Run again after the researcher sent it back misc/replication_plan.md (stopped by the check above; the step ran again)
- Run stopped for the researcher's review (review plan) · 14:33
- Researcher sent back replication planner · 23:15 Level 1 only. Keep the 16 packages. Write replication_plan.json with a single targets list; every target has level 1 and a package_file source (file + row/column) from the shipped result files. Put no level-2 targets. In missing_targets, record that level 2 (the published paper's numbers) was not assessed: the only linked paper, SSRN 10.2139/ssrn.7079720, carries a different title ("Political Instability and Bureaucratic Resilience: The Protective Role of Performance-based Transfers in Brazilian Social Assistance") than the package ("Political Rupture and Selective Damage to Local Service Delivery: Evidence from Brazil") and may be a different version, so comparing against it could misstate the reproduction.
Session 3 of 11 2026-09-28 23:15 to 2026-09-29 07:32 UTC · e2er 0.10.0, commit 0807ef6c825b · 5 steps · replication planner · 2 researcher actions · 1 check failed · Run stopped for the researcher's review (review plan)
- Plan
- Check: package integrity passed
- Check: contracts failed, step stopped
What the check found
replication_plan.json: targets[0] (l1_tac_att_cs): assistencia_social/output/data/resultados_did.csv is not a file of the package; targets[1] (l1_tac_se_cs): assistencia_social/output/data/resultados_did.csv is not a file of the package; targets[2] (l1_tac_att_twfe): assistencia_social/output/data/resultados_did.csv is not a file of the package; targets[3] (l1_tac_mde): assistencia_social/output/data/poder_mde.csv is not a file of the package; targets[4] (l1_tac_pretrend_p): assistencia_social/output/data/robustez_pretendencias.csv is not a file of the package; targets[5] (l1_incentivo_weak): assistencia_social/output/data/proxy_incentivo_norma.csv is not a file of the package; targets[6] (l1_incentivo_strong): assistencia_social/output/data/proxy_incentivo_norma.csv is not a file of the package; targets[7] (l1_incentivo_gradient): assistencia_social/output/data/proxy_incentivo_norma_gradiente.csv is not a file of the package - replication planner · claude-haiku-4-5-20251001 · 23:15–23:18 Run again after the researcher sent it back misc/replication_plan.md (stopped by the check above; the step ran again)
- Run stopped for the researcher's review (review plan) · 23:18
- Researcher edited replication_plan.json · 07:24 34e250328173 → 81f5bd6fee93
- Researcher sent back replication planner · 07:32 Use the files' exact column names (e.g. desfecho, estimador, spec, att, ep in resultados_did.csv) and exact row values, in the original language; never translate or rename them. Each target value must be read from exactly that cell. Keep the full package paths (supplementary_elections_social_assistance/...), level 1 only, and the level-2 note in missing_targets.
Session 4 of 11 2026-09-29 07:32–08:26 UTC · e2er 0.10.0, commit 0807ef6c825b · 3 steps · replication planner · 1 researcher action · Run stopped for the researcher's review (review plan)
- Plan
- Check: package integrity passed
- replication planner · claude-haiku-4-5-20251001 · 07:32–07:36 Run again after the researcher sent it back misc/replication_plan.md 8f4e7c1a2d7c (not recorded during the run; hash of the file at export)
- Run stopped for the researcher's review (review plan) · 07:36
- Researcher approved review plan · 08:26
Session 5 of 11 2026-09-29 08:26–09:24 UTC · e2er 0.10.0, commit 0807ef6c825b · 6 steps · reproduction comparer · 1 researcher action · 2 checks failed
- Fetch
- Check: package integrity passed
- Sandbox run
- Check: sandbox passed
- Compare
- reproduction comparer · claude-haiku-4-5-20251001 · 08:30–08:33 misc/reproduction_report.md (not recorded during the run; superseded by a later step)
- Reproduction gate
- Check: reproduction failed, step stopped result table_2_l1, target l1_tac_att_cs_sem: 'reproduced' but -0.00365238597730994 differs from the published -0.00364909844619658
- Check: reproduction gate failed, run stopped result table_2_l1, target l1_tac_att_cs_sem: 'reproduced' but -0.00365238597730994 differs from the published -0.00364909844619658
- Researcher sent back sandbox run · 09:24 Fair rerun: install R packages from the CRAN snapshot of the Zenodo record's publication date instead of the latest; record all installed versions including dependencies. Then compare again with strict labels.
Session 6 of 11 2026-09-29 09:24–09:45 UTC · e2er 0.10.0, commit 84cdc8eff242 · 9 steps · reproduction comparer · 3 checks failed · Run failed
Reproduction gate 1 step · 09:24
- Check: package integrity passed
Fetch 1 step · 09:24
- Check: package integrity passed
Sandbox run 1 step · 09:26
- Check: sandbox passed
Compare 6 steps · reproduction comparer · 09:26–09:45 · 3 checks failed · Run failed
- Check: contracts failed, step stopped reproduction_report.json: the report has no environment block (snapshot, platform, installed versions from sandbox_log.json)
- reproduction comparer · claude-haiku-4-5-20251001 · 09:26–09:31 misc/reproduction_report.md (stopped by the check above; the step ran again)
- Check: contracts failed, step stopped reproduction_report.json: the report has no environment block (snapshot, platform, installed versions from sandbox_log.json)
- reproduction comparer · claude-haiku-4-5-20251001 · 09:31–09:36 misc/reproduction_report.md (stopped by the check above; the step ran again)
- Check: contracts failed, step stopped reproduction_report.json: the report has no environment block (snapshot, platform, installed versions from sandbox_log.json)
- reproduction comparer · claude-haiku-4-5-20251001 · 09:36–09:45 misc/reproduction_report.md (stopped by the check above; the step ran again)
- Run failed · 09:45 RuntimeError: All specialists failed in parallel batch: reproduction_comparer: contract violation: reproduction_report.json: the report has no environment block (snapshot, platform, installed versions from sandbox_log.json)
Session 7 of 11 2026-09-29 09:50–10:35 UTC · e2er 0.10.0, commit 7a022c5f1440 · 6 steps · reproduction comparer · 1 researcher action · 1 check failed · Run stopped for the researcher's review (review report)
- Fetch
- Check: package integrity passed
- Compare
- Check: contracts failed, step stopped
What the check found
reproduction_report.json: the report has no environment block: add environment.snapshot (date and url from sandbox_log.json -> snapshot) and environment.installed with the versions of the packages you discuss - reproduction comparer · claude-haiku-4-5-20251001 · 09:50–09:59 misc/reproduction_report.md (stopped by the check above; the step ran again)
- reproduction comparer · claude-haiku-4-5-20251001 · 09:59–10:01 misc/reproduction_report.md (not recorded during the run; superseded by a later step)
- Reproduction gate
- Check: reproduction passed
- Run stopped for the researcher's review (review report) · 10:01
- Researcher approved review report · 10:35
Session 8 of 11 2026-09-29 10:35–11:00 UTC · e2er 0.10.0, commit 385c1894a923 · 1 step · Run paused
- Fetch
- Check: package integrity passed
- Run paused · 11:00 interrupted — the server stopped while this paper was running
Session 9 of 11 2026-09-29 11:00 to 2026-09-30 18:27 UTC · e2er 0.10.0, commit c42634ca86bc · 2 steps · 1 researcher action
- Fetch
- Check: package integrity passed
- Researcher reran compare · 18:27 Steps run again: compare, reproduction gate, review report The written report contradicts reproduction_report.json: it states 16 numbers and 2 not reproduced; the JSON and the check have 17 numbers, 12 reproduced, 2 reproduced with a minor difference, 3 not reproduced. Write the report again from the comparison, with the counts and versions of reproduction_report.json.
Session 10 of 11 2026-09-30 18:27 to 2026-10-01 13:08 UTC · e2er 0.12.1, commit 4758cb1e1f2b · 4 steps · reproduction comparer · 1 researcher action · Run stopped for the researcher's review (review report)
- Fetch
- Check: package integrity passed
- Compare
- reproduction comparer · claude-haiku-4-5-20251001 · 18:27–18:29 misc/reproduction_report.md 62acfca68a31 (not recorded during the run; hash of the file at export)
- Reproduction gate
- Check: reproduction passed
- Run stopped for the researcher's review (review report) · 18:29
- Researcher approved review report · 13:08
Session 11 of 11 2026-10-01 13:08 UTC · e2er 0.12.1, commit 4758cb1e1f2b · 1 step
- Fetch
- Check: package integrity passed
The run ended: completed · 2026-10-01 13:08 UTC
Changes made when the study was published
Files that were changed after the run, when the study was published, with the hash value (SHA-256) before and after the change and the reason recorded for it.
- misc/reproduction_report.md · 2026-10-02 15:14 UTC
- Hash value before
- 62acfca68a31
- Hash value after
- e007f73b4b91
- Reason
- put the demonstration disclaimer at the top
What it was built with (4)
Each part with its authors and the version used. e2er parts are pinned by git's content hash of their file at the commit above; follow a link to read that exact version. A part used on more than one e2er commit lists its version at each commit.
Templates (1)
· by e2er authors · pinned at e2er 4758cb1e1f2b
| Template | By | Pinned version |
|---|---|---|
| replication | e2er authors | unresolved: pipelines/replication.toml at 4758cb1e1f2b is not in the E2ER checkout this dossier was built from |
Specialists (2)
· by e2er authors · pinned at 5 e2er commits
| Specialist | By | Pinned version |
|---|---|---|
| replication_planner | e2er authors | unresolved: src/core/specialists/registry.py at a0962ddbc89b is not in the E2ER checkout this dossier was built from · e2er a0962ddbc89bunresolved: src/core/specialists/registry.py at 0807ef6c825b is not in the E2ER checkout this dossier was built from · e2er 0807ef6c825b |
| reproduction_comparer | e2er authors | unresolved: src/core/specialists/registry.py at 0807ef6c825b is not in the E2ER checkout this dossier was built from · e2er 0807ef6c825bunresolved: src/core/specialists/registry.py at 84cdc8eff242 is not in the E2ER checkout this dossier was built from · e2er 84cdc8eff242unresolved: src/core/specialists/registry.py at 7a022c5f1440 is not in the E2ER checkout this dossier was built from · e2er 7a022c5f1440unresolved: src/core/specialists/registry.py at 4758cb1e1f2b is not in the E2ER checkout this dossier was built from · e2er 4758cb1e1f2b |
Connectors (1)
· by e2er authors · pinned at 5 e2er commits
| Connector | By | Pinned version |
|---|---|---|
| claude-code | e2er authors | unresolved: src/modules/llm/claude_code.py at a0962ddbc89b is not in the E2ER checkout this dossier was built from · e2er a0962ddbc89bunresolved: src/modules/llm/claude_code.py at 0807ef6c825b is not in the E2ER checkout this dossier was built from · e2er 0807ef6c825bunresolved: src/modules/llm/claude_code.py at 84cdc8eff242 is not in the E2ER checkout this dossier was built from · e2er 84cdc8eff242unresolved: src/modules/llm/claude_code.py at 7a022c5f1440 is not in the E2ER checkout this dossier was built from · e2er 7a022c5f1440unresolved: src/modules/llm/claude_code.py at 4758cb1e1f2b is not in the E2ER checkout this dossier was built from · e2er 4758cb1e1f2b |
Cite e2er with this dossier
A paper produced with e2er gives one reference for e2er: this dossier. It credits everyone listed above.
@misc{e2er-05f3356fdff08bbb,
title = {e2er dossier for "Computational reproduction of Political Rupture and Selective Damage to Local..."},
author = {{e2er}},
year = {2026},
howpublished = {\url{https://e2er.org/d/05f3356fdff08bbb}},
note = {Workflow, templates, specialists, skills, connectors and models used, pinned by content hash. Dossier sha256:05f3356fdff08bbba0e6ffbd2dc07440b6fdffcda6fc687a5374f85c490da796}
}