https://github.com/sciencelivehub/forrt-replication-template
Self-contained scaffold for FORRT replication studies — paper PDF in, Zenodo-archived release + Science Live nanopublication chain out. AI-guided via CLAUDE.md / AGENTS.md.
https://github.com/sciencelivehub/forrt-replication-template
agents-md claude-code fair4rs forrt nanopublications replication ro-crate science-live
Last synced: 22 days ago
JSON representation
Self-contained scaffold for FORRT replication studies — paper PDF in, Zenodo-archived release + Science Live nanopublication chain out. AI-guided via CLAUDE.md / AGENTS.md.
- Host: GitHub
- URL: https://github.com/sciencelivehub/forrt-replication-template
- Owner: ScienceLiveHub
- License: mit
- Created: 2026-05-09T07:29:23.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-30T08:21:57.000Z (25 days ago)
- Last Synced: 2026-05-30T10:13:13.722Z (25 days ago)
- Topics: agents-md, claude-code, fair4rs, forrt, nanopublications, replication, ro-crate, science-live
- Language: Python
- Size: 368 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
- Codemeta: codemeta.json
- Agents: AGENTS.md
Awesome Lists containing this project
README
# {{REPO_NAME}}
[](https://github.com/{{REPO_ORG}}/{{REPO_NAME}}/actions/workflows/ci.yml)
[](https://{{REPO_ORG}}.github.io/{{REPO_NAME}}/)
[](https://github.com/{{REPO_ORG}}/{{REPO_NAME}}/pkgs/container/{{REPO_NAME}})
[](https://opensource.org/licenses/MIT)
[]({{ZENODO_DOI}})
[](docs/fair4rs-checklist.md)
[](https://forrt.org/)
[](nanopubs/PUBLISHED.md)
[](ro-crate-metadata.json)
> **{{PAPER_TITLE}}** — replication study.
> Reference paper: [{{PAPER_DOI}}](https://doi.org/{{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](https://platform.sciencelive4all.org).
---
## Quick start
```bash
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:
```bash
docker run --rm ghcr.io/{{REPO_ORG}}/{{REPO_NAME}}:latest
```
The Jupyter Book version is at .
## Built from a template
This repository was created from [`sciencelivehub/forrt-replication-template`](https://github.com/sciencelivehub/forrt-replication-template). The template ships an operating manual for AI assistants ([`CLAUDE.md`](CLAUDE.md), [`AGENTS.md`](AGENTS.md)), domain conventions ([`DOMAIN.md`](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`](.claude/skills/init-template/SKILL.md) inside Claude Code to substitute the placeholder tokens with your details. (For other AI tools, see [`docs/ai-portability.md`](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/*.py` files). Until then they exit early with an informative `::notice::` and the badges stay green.
## Repository structure
```
.
├── 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
```
## What you get
This template bakes in conventions that took multiple replications to discover. By using it, you inherit:
- **FAIR4RS conformance** — see [`docs/fair4rs-checklist.md`](docs/fair4rs-checklist.md) for the principle-by-principle mapping.
- **Self-contained data downloads** — the first notebook fetches everything; no manual data prep.
- **`pixi.toml` + `pixi.lock` as 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 with `pixi run`, executes notebooks via a glob, fails fast on a stale lockfile.
- **Jupyter Book deployment** — auto-deploys to GitHub Pages with `BASE_URL` set correctly. (Don't put `base_url` in `myst.yml` — MyST silently ignores it.)
- **Docker + GHCR + Zenodo image archival** — `release` trigger 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.md` is the URI registry.
- **Layered AI guidance** — `CLAUDE.md` (universal) + `DOMAIN.md` (swappable per field) + `USER_PREFERENCES.md` (per-user). See [`docs/ai-portability.md`](docs/ai-portability.md) for non-Claude AI tools.
- **Sandbox by default** — `.claude/settings.json` denies file ops outside the repo, so a fresh AI session can't accidentally read `~/.ssh/` or write to `/etc/`.
## The six FORRT chain steps
A complete FORRT chain has six steps published on [platform.sciencelive4all.org](https://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`](docs/chain-decision-tree.md).)
Drafts live in [`nanopubs/drafts/`](nanopubs/drafts/) field-by-field. Published URIs go into [`nanopubs/PUBLISHED.md`](nanopubs/PUBLISHED.md).
Optional further layers:
- **Research Software nanopub** — for reusable upstream tools (not demo repos). See [`docs/forrt-form-fields.md`](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`](docs/forrt-form-fields.md) § Research Synthesis.
## After publishing
When the chain is live and the FAIR4RS checklist is green, drafting an announcement post is the next step. See [`docs/announcement-template.md`](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`](docs/programmatic-nanopubs.md).
## Citation
If you use this work, please cite both:
- This software: [`CITATION.cff`](CITATION.cff) → DOI [{{ZENODO_DOI}}]({{ZENODO_DOI}})
- The original paper: [{{PAPER_DOI}}](https://doi.org/{{PAPER_DOI}})
## Acknowledgements
This repository was built from [`sciencelivehub/forrt-replication-template`](https://github.com/sciencelivehub/forrt-replication-template), part of the [Science Live platform](https://platform.sciencelive4all.org). The template is licensed MIT and contributions (especially new domain flavours under [`docs/domain-flavours/`](docs/domain-flavours/)) are welcome.