{{PAPER_TITLE}} — replication study. Reference paper: {{PAPER_DOI}}
This is a self-contained replication of the headline claim of the reference paper. It produces a reproducible computational pipeline, a Zenodo-archived release with a citable DOI, and a FORRT-tagged nanopublication chain on the Science Live platform.
git clone https://github.com/{{REPO_ORG}}/{{REPO_NAME}}.git
cd {{REPO_NAME}}
pixi install
pixi run snakemake --cores 1(Pixi resolves pixi.toml against the per-platform pixi.lock, installs the env under .pixi/, and provides pixi run for any task without needing an activate step.)
Or with Docker:
docker run --rm ghcr.io/{{REPO_ORG}}/{{REPO_NAME}}:latestThe Jupyter Book version is at https://{{REPO_ORG}}.github.io/{{REPO_NAME}}/.
This repository was created from sciencelivehub/forrt-replication-template. The template ships an operating manual for AI assistants (CLAUDE.md, AGENTS.md), domain conventions (DOMAIN.md), and reference docs (docs/) so that an AI working only inside this repository can guide a researcher from "paper PDF + GitHub repo" to "published FORRT chain + Zenodo DOI" with no other context.
If you are reading this in a fresh fork, run /init-template inside Claude Code to substitute the placeholder tokens with your details. (For other AI tools, see docs/ai-portability.md.)
After /init-template, do these one-time setup steps to enable the full CI/CD path:
- Enable GitHub Pages at Settings → Pages → Source: GitHub Actions. Until enabled, the Jupyter Book build runs but the deploy step is skipped (CI stays green).
- The CI workflows ship with scaffold-detection guards — they run end-to-end only after you implement Phase 2 (the
notebooks/*.pyfiles). Until then they exit early with an informative::notice::and the badges stay green.
.
├── CLAUDE.md / AGENTS.md # operating manual for AI assistants
├── DOMAIN.md # domain flavour (current: biodiversity + earth observation)
├── USER_PREFERENCES.md # per-user style (edit on first clone)
├── README.md # this file
├── LICENSE # MIT
├── CITATION.cff # how to cite
├── codemeta.json # software metadata (CodeMeta-2.0)
├── ro-crate-metadata.json # research object packaging (RO-Crate 1.2)
├── pixi.toml + pixi.lock # pinned dependencies (single source of truth; lockfile is per-platform)
├── Dockerfile # container build
├── Snakefile # pipeline orchestration
├── myst.yml + index.md # Jupyter Book scaffold
├── paper/ # the source paper PDF
├── data/ # downloaded artefacts (gitignored)
├── notebooks/ # jupytext .py pipeline (01–04)
├── nanopubs/ # FORRT chain drafts + published-URI registry
├── docs/ # reference material
├── figures/ # curated figures used in the Jupyter Book
├── .github/workflows/ # CI, Jupyter Book, Docker
└── .claude/ # Claude Code agents, skills, sandbox config
This template bakes in conventions that took multiple replications to discover. By using it, you inherit:
- FAIR4RS conformance — see
docs/fair4rs-checklist.mdfor the principle-by-principle mapping. - Self-contained data downloads — the first notebook fetches everything; no manual data prep.
pixi.toml+pixi.lockas single source of truth — local dev, Docker, and CI all install the same per-platform-pinned env.prefix-dev/setup-pixi-based CI — caches the env, runs the pipeline withpixi run, executes notebooks via a glob, fails fast on a stale lockfile.- Jupyter Book deployment — auto-deploys to GitHub Pages with
BASE_URLset correctly. (Don't putbase_urlinmyst.yml— MyST silently ignores it.) - Docker + GHCR + Zenodo image archival —
releasetrigger pushes to GHCR and (optionally) archives to Zenodo for long-term preservation. - RO-Crate packaging — the entire repo is a navigable Research Object via
ro-crate-metadata.json(Process Run Crate + Workflow RO-Crate profiles). - Six-step FORRT chain workspace —
nanopubs/drafts/has a field-by-field skeleton for each step.nanopubs/PUBLISHED.mdis the URI registry. - Layered AI guidance —
CLAUDE.md(universal) +DOMAIN.md(swappable per field) +USER_PREFERENCES.md(per-user). Seedocs/ai-portability.mdfor non-Claude AI tools. - Sandbox by default —
.claude/settings.jsondenies file ops outside the repo, so a fresh AI session can't accidentally read~/.ssh/or write to/etc/.
A complete FORRT chain has six steps published on platform.sciencelive4all.org:
Quote-with-comment → AIDA → FORRT Claim → Replication Study → Replication Outcome → CiTO Citation
(For question-rooted chains with no upstream paper, replace step 1 with PICO or PCC. See docs/chain-decision-tree.md.)
Drafts live in nanopubs/drafts/ field-by-field. Published URIs go into nanopubs/PUBLISHED.md.
Optional further layers:
- Research Software nanopub — for reusable upstream tools (not demo repos). See
docs/forrt-form-fields.md§ Research Software. - Research Synthesis nanopub — when this chain is part of a multi-chain story. See
docs/forrt-form-fields.md§ Research Synthesis.
When the chain is live and the FAIR4RS checklist is green, drafting an announcement post is the next step. See docs/announcement-template.md for the structural template (vision-piece-first; the worked replication is the payoff, not the lead).
For lower-level nanopub work — retraction, superseding, batch publishing — see docs/programmatic-nanopubs.md.
If you use this work, please cite both:
- This software:
CITATION.cff→ DOI {{ZENODO_DOI}} - The original paper: {{PAPER_DOI}}
This repository was built from sciencelivehub/forrt-replication-template, part of the Science Live platform. The template is licensed MIT and contributions (especially new domain flavours under docs/domain-flavours/) are welcome.