Backbone for Huang Lab repos. Use this template, then SETUP.md.
This is a menu, not a mandate. Take the parts that fit your project and delete the rest - an unused scaffold or a convention nobody follows is worse than nothing. Only two things are lab-wide: the git identity in SETUP step 3, and never committing raw data.
Each piece exists because a repo needed it patched in by hand later (2026-08-13 review).
| Keep if... | Files |
|---|---|
| always | .gitignore, LICENSE |
| an agent touches this repo | AGENTS.md, CLAUDE.md |
| you have tests | .github/workflows/ci.yml - detects Python/R/Rust, runs only what's present |
| the repo will go public or back a manuscript | scripts/scan_history.sh, scripts/check_hygiene.sh |
| it's a pipeline | src/ steps/ tests/ (Python), R/, crates/ (Rust) - one passing test each |
| it touches participant data | data/README.md |
| it produces committed outputs | results/README.md |
| the reasoning matters more than the code | doc/ - DD-numbered decisions, pseudocode |
| you want them | CONVENTIONS.md, PR/issue templates, dependabot, pre-commit, CITATION.cff |
Repos are kebab-case (cancer-risk-msm) unless the repo is a published tool, which keeps its own name (fastVEP, RastQC). Details.
- Mutation-check tests - break the code, confirm the test fails, then commit. (fastVEP #80)
- Commit bodies like methods sections - name the real-data observation. (Cancer-risk-MSM)
_NOT_GROUND_TRUTHin column names - can't be mistaken for truth downstream. (Proteomic-CKD)