Skip to content

Instantly share code, notes, and snippets.

@guilbep
Last active May 6, 2025 11:03
Show Gist options
  • Save guilbep/d359044dd0cbf409b45432b125cccaab to your computer and use it in GitHub Desktop.
Save guilbep/d359044dd0cbf409b45432b125cccaab to your computer and use it in GitHub Desktop.
FAIR_CHECKLIST.md

🛫 FAIR “Pre‑flight” Checklist for <PROJECT_NAME>

Check items as you satisfy them.
Total possible score = 25 pts.
FAIR Level (EPFL Imaging Plaza style) = highest level for which all items are checked.


Findable 🔍

  • License is presentLICENSE file with OSI‑approved text (L1, 2 pts)
  • DOI minted — Zenodo ↔︎ GitHub release, DOI badge in README (L1, 2 pts)
  • Short description & keywords — clear tagline + GitHub topics (L1, 1 pt)
  • Creation / release date stated (L1, 1 pt)
  • Representative image in README (L1, 1 pt)
  • Citation metadataCITATION.cff or codemeta.json (L2, 1 pt)
  • Registered in a community index (bio.tools, SciCodes, …) (L3, 1 pt)

Accessible 🔓

  • Repository public & stable URL (L1, 1 pt)
  • Example / sample data or link (L3, 1 pt)
  • Archived in Software Heritage or equivalent long‑term archive (L4, 1 pt)

Interoperable 🔗

  • Open, standard I/O formats (CSV, JSON, HDF5, …) (L2, 1 pt)
  • Environment / dependency file (requirements.txt, pyproject.toml, …) (L3, 2 pts)
  • Container image or Dockerfile (L4, 2 pts)

Reusable 🔁

  • README with quick‑start usage (L2, 2 pts)
  • Programming language declared (L2, 1 pt)
  • Feature list — bullet list of main capabilities (L2, 1 pt)
  • Detailed user docs / wiki / notebooks (L4, 2 pts)
  • Resource footprint documented (RAM/CPU/GPU) (L4, 1 pt)
  • Executable instructions / script / notebook for full workflow (L5, 2 pts)

✈️ Self‑assessment

Metric Your value
Total points checked __ / 25
Highest contiguous level completed Level __

Level gates

Level Must have all of… Typical points range
0 minimal record only 0–3
1 License, DOI, short description, URL, dates, image 4–8
2 + README, language, feature list 9–12
3 + dependency file, sample / linked data 13–16
4 + user docs, resource notes, container 17–21
5 + executable instructions 22–25

🚀 What else can we do?

  1. Automate the checklist

  2. Continuous metadata generation

    • Use codemeta-generator or codemetapy to auto‑update codemeta.json on each release. :contentReference[oaicite:0]{index=0}
  3. Run external FAIR evaluators

    • Services such as F‑UJI or FAIR‑Evaluator crawl your repo/DOI and return a machine score you can surface as a badge.
  4. Register & badge

    • After reaching Level 2+, submit your software to Imaging Plaza; the platform displays a FAIR badge (0‑5) to end‑users. :contentReference[oaicite:1]{index=1}
  5. Cite‑as‑you‑build

    • Encourage users to cite the software (DOI) and the paper (if any). Adopt the FAIR4RS principles to track software lineage alongside papers. :contentReference[oaicite:2]{index=2}
  6. Reproducible builds

    • Pair Docker images with lock‑files (pip‑compile, conda‑lock) so anyone can rebuild the exact environment years later.

Treat the list as iterative—each new release can tick more boxes until you hit Level 5 and full 25 / 25 pts. Happy FAIR‑ifying!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment