template_registered_report is a public exemplar for registered reports, preregistration, replication, and robustness-audit workflows. It makes the planned analysis, frozen hypothesis ledger, deviations, and post-run claims auditable.
Run via the template monorepo from the repository root with uv run python scripts/pipeline/stage_01_test.py --project templates/template_registered_report --project-only. Copy manuscript/config.yaml.example to manuscript/config.yaml in forks and keep template integrity checks green.
Use this template when the core method is a registered report or preregistered replication: hypotheses, outcomes, exclusion rules, analysis plan, power or sensitivity rationale, deviation ledger, and confirmatory-versus-exploratory claim boundaries must be locked before results are interpreted.
Registered Report Template: Preregistration, Deviations, and Claim Boundaries · v0.1.0 · Daniel Ari Friedman
Concept DOI: 10.5281/zenodo.21298892 | Version DOI: 10.5281/zenodo.21298893 | Repository: docxology/template_registered_report
Publishing surface — 20 platforms, 2 published:
| Platform | Tier | Status | Reference | Credentials |
|---|---|---|---|---|
| zenodo | first-class | ✅ published | 10.5281/zenodo.21298892 | ZENODO_API_TOKEN |
| github | first-class | ✅ published | docxology/template_registered_report | GITHUB_TOKEN |
| arxiv | first-class | ⚪ available | — | — |
| pypi | first-class | ⚪ available | — | PYPI_TOKEN, TESTPYPI_TOKEN |
| ipfs_pinata | first-class | ⚪ available | — | PINATA_JWT |
| ipfs_web3storage | first-class | ⚪ available | — | WEB3_STORAGE_TOKEN |
| software_heritage | first-class | ⚪ available | — | — |
| github_pages | first-class | ⚪ available | docxology/template_registered_report | GITHUB_TOKEN |
| cloudflare_pages | first-class | ⚪ available | — | CLOUDFLARE_API_TOKEN |
| netlify | first-class | ⚪ available | — | NETLIFY_AUTH_TOKEN |
| huggingface_hub | first-class | ⚪ available | — | HUGGINGFACE_TOKEN, HF_TOKEN |
| osf | first-class | ⚪ available | — | OSF_TOKEN |
| amazon_kdp | documented | 🟡 planned | — | AMAZON_KDP_EMAIL, AMAZON_KDP_PASSWORD |
| google_play_books | documented | 🟡 planned | — | GOOGLE_PLAY_BOOKS_SERVICE_ACCOUNT_JSON |
| gumroad | documented | 🟡 planned | — | GUMROAD_ACCESS_TOKEN |
| leanpub | documented | 🟡 planned | — | LEANPUB_API_KEY |
| lulu | documented | 🟡 planned | — | LULU_CLIENT_KEY, LULU_CLIENT_SECRET |
| draft2digital | documented | 🟡 planned | — | DRAFT2DIGITAL_API_TOKEN |
| stripe | documented | 🟡 planned | — | STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY |
| ingramspark | documented | 🟡 planned | — | INGRAMSPARK_CLIENT_ID, INGRAMSPARK_CLIENT_SECRET |
Keywords: registered report, preregistration, replication, deviation ledger.
Status legend: ✅ published (durable identifier recorded in config.yaml) · 🔵 reserved (identifier reserved but not yet registered by final publication) · ⚪ available (adapter implemented and locally verifiable) · 🟡 planned. This block is generated — edit manuscript/config.yaml, then regenerate with uv run python -m infrastructure.publishing.status_report --project <path> --write.
The canonical renderer is https://github.com/docxology/template with --project templates/template_registered_report. Rendered outputs are disposable; source-owned registration files, deviation ledgers, and validation reports are the durable method artifacts.
The manuscript under manuscript/ is a full
registered-report structure — abstract, introduction, preregistered hypothesis
(H1), methods/analysis plan, results, deviation register, discussion, and
references. It is a template with deterministic demonstration data, not an
empirical study. Every number in the prose is produced by the tested code in
src/registered_report/ and regenerated by scripts/generate_figures.py, which
also renders four committed figures into
manuscript/figures/: the hypothesis-to-outcome
mapping, the analysis-plan workflow DAG, the deviation-ledger timeline, and the
seeded permutation-test result. Regenerate with:
MPLBACKEND=Agg uv run python projects/templates/template_registered_report/scripts/generate_figures.pyPrimary configuration lives in manuscript/config.yaml; forkable defaults live in manuscript/config.yaml.example. Example registration content lives in data/example_registration.json.
Run:
uv run pytest projects/templates/template_registered_report/tests --cov=projects/templates/template_registered_report/src --cov-fail-under=90The core validator freezes plans with a deterministic hash, verifies required preregistration sections, compares executed analyses to registered outcomes, and reports deviations before publication. Registration schema v2 is backward-compatible with the prior frozen fixture through an explicit migration that adds no invented values. It also builds a review packet with confirmatory outcomes, exploratory outcomes, a deviation ledger, ethics/stage metadata checks, sensitivity-analysis table validation, and an owner-gated publication receipt bound to the review artifact digest.
Confirmatory claims must map to registered hypotheses and outcomes. Exploratory findings may be reported only when labeled as exploratory and linked to the deviation ledger.
Use scripts/audit/copy_exemplar.py for clean forks. Replace the registration fixture, update the analysis plan, record ethics/stage metadata, and rerun tests before rendering.