Skip to content

Guide

Pre-submission reproducibility checklist

18 things to get right in your repository before you submit, each linked to journal policies and a RepoReady check.

Check my repository

Last updated

Environment

  1. Pin every dependency to an exact version

    Commit a lock file or exact version pins, and state the language version.

    Policies
    CheckEnvironment & Dependencies
  2. Document hardware, operating system and run time

    Name the CPU or GPU, memory, operating system and run time of each experiment.

    Policies
    CheckEnvironment & Dependencies

Data

  1. Say exactly how to obtain every dataset

    Source, accession or URL, version, license and access steps, ideally as a download script.

    CheckData Provenance
  2. Explain restricted data and provide a stand-in

    Say why the data cannot be shared, how to request access, and add a synthetic sample.

    Policies
    CheckData Provenance
  3. Include the preprocessing code, not only processed data

    Every step from raw data to analysis input is a script in the repository.

    Policies
    CheckData Provenance

Code and entry points

  1. Include the code for every reported result

    Numbers, figures and tables, including simulations and the baselines you compare against.

    CheckPaper–Code Alignment
  2. Use relative paths only

    Read file locations from a config file or a command-line argument.

    Policies
    CheckReproducibility & Entry Points
  3. Provide one documented entry point

    A Makefile, workflow or script that performs every step in order, with its command.

    Policies
    CheckReproducibility & Entry Points

Randomness and statistics

  1. Set, record and report random seeds

    Seed every random number generator, make seeds configurable, and state them in the paper.

    Policies
  2. Report the number of runs and the variability

    Runs or seeds per result, with error bars or confidence intervals and how they were computed.

    Policies
    CheckStatistical Soundness

Outputs and figures

  1. Map every figure and table to its script

    A README table with paper item, script, input and output.

    Policies
  2. Write outputs to predictable, documented locations

    Save figures, tables, metrics and logs with the configuration and seed behind them.

    Policies
    CheckResearch Traceability

Documentation

  1. Write a README from clone to results

    What the code does, how to install and run it, expected outputs, a repository map.

    Policies
    CheckDocumentation Quality
  2. Point from the code to the paper

    Comment method code with the section, equation, figure or table it implements.

    Policies
    CheckResearch Traceability

License, archive, citation

  1. Add an open-source license

    A LICENSE file in the repository root tells others how they may reuse the code.

    CheckLicensing & Citation
  2. Archive the paper version with a DOI

    Tag a release, archive it with a DOI, cite it, and add CITATION.cff. Guide

    CheckLicensing & Citation

Manuscript alignment

  1. Write the code availability statement

    Repository URL, archive DOI, version, license and any access restrictions. Guide

    CheckLicensing & Citation
  2. Check that the paper matches the code

    Methods, data splits, hyperparameters, seeds and reported numbers agree with code and outputs. Guide

    Policies

Copy the checklist as Markdown

Paste it into an issue or your README and tick items off as you go.

checklist.md
# Pre-submission reproducibility checklist

Source: https://repoready.ai/checklist

## Environment

- [ ] Pin every dependency to an exact version
  Commit a lock file or exact version pins, and state the language version.
- [ ] Document hardware, operating system and run time
  Name the CPU or GPU, memory, operating system and run time of each experiment.

## Data

- [ ] Say exactly how to obtain every dataset
  Source, accession or URL, version, license and access steps, ideally as a download script.
- [ ] Explain restricted data and provide a stand-in
  Say why the data cannot be shared, how to request access, and add a synthetic sample.
- [ ] Include the preprocessing code, not only processed data
  Every step from raw data to analysis input is a script in the repository.

## Code and entry points

- [ ] Include the code for every reported result
  Numbers, figures and tables, including simulations and the baselines you compare against.
- [ ] Use relative paths only
  Read file locations from a config file or a command-line argument.
- [ ] Provide one documented entry point
  A Makefile, workflow or script that performs every step in order, with its command.

## Randomness and statistics

- [ ] Set, record and report random seeds
  Seed every random number generator, make seeds configurable, and state them in the paper.
- [ ] Report the number of runs and the variability
  Runs or seeds per result, with error bars or confidence intervals and how they were computed.

## Outputs and figures

- [ ] Map every figure and table to its script
  A README table with paper item, script, input and output.
- [ ] Write outputs to predictable, documented locations
  Save figures, tables, metrics and logs with the configuration and seed behind them.

## Documentation

- [ ] Write a README from clone to results
  What the code does, how to install and run it, expected outputs, a repository map.
- [ ] Point from the code to the paper
  Comment method code with the section, equation, figure or table it implements.

## License, archive, citation

- [ ] Add an open-source license
  A LICENSE file in the repository root tells others how they may reuse the code.
- [ ] Archive the paper version with a DOI
  Tag a release, archive it with a DOI, cite it, and add CITATION.cff.

## Manuscript alignment

- [ ] Write the code availability statement
  Repository URL, archive DOI, version, license and any access restrictions.
- [ ] Check that the paper matches the code
  Methods, data splits, hyperparameters, seeds and reported numbers agree with code and outputs.

Run the checklist on your repository

Get a 0–⁠100 score and findings with suggested fixes before you submit.