Project Setup Checklist
Use this checklist after creating a repository from the template. Keep it practical: unfinished setup tasks stay here, stable project explanations move to README.md, index.qmd, or documentation/.
Owner Labels
| Label | Meaning |
|---|---|
[Agent] |
A coding agent can usually do this directly in the repository. |
[Shared] |
An agent can prepare the work, but a maintainer approves the external action. |
[Manual] |
Complete this in GitHub, Zenodo, or another external service. |
Before You Start
Phase 1: Make The Project Identifiable
Outcome: badges, metadata, contact details, and citation files describe the project rather than the template.
Phase 2: Prepare Data For Publication
Outcome: datasets are clean, anonymized, documented, and provided in open formats.
Phase 3: Put Content In The Right Place
Outcome: readers can understand the project without reading setup notes.
Phase 4: Configure GitHub And Zenodo
Outcome: the repository can publish, preserve releases, and receive security updates.
Phase 5: Validate The Project Locally
Outcome: formatting, website preview, and language-specific checks pass before publication.
Phase 6: Commit, Publish, And Archive
Outcome: the GitHub repository, website, changelog, and Zenodo archive describe the same release.
GitHub CLI Reference
Install the GitHub CLI if needed:
| Platform | Command or instructions |
|---|---|
| macOS | brew install gh |
| Windows | winget install --id GitHub.cli |
| Linux | GitHub CLI Linux instructions |
Check authentication before running repository-setting commands:
gh auth statusEnable security alerts and Dependabot security updates:
gh api --method PUT "repos/:owner/:repo/vulnerability-alerts" --silent
gh api --method PUT "repos/:owner/:repo/automated-security-fixes" --silentProtect main by requiring pull request review, disallowing force pushes and deletions, and requiring conversation resolution:
gh api --method PUT "repos/:owner/:repo/branches/main/protection" --input - <<'JSON'
{
"required_status_checks": null,
"enforce_admins": false,
"required_pull_request_reviews": {
"required_approving_review_count": 1
},
"restrictions": null,
"allow_force_pushes": false,
"allow_deletions": false,
"required_conversation_resolution": true
}
JSONVerification Summary
The setup is complete when placeholders are gone, README.md is the repository front door, index.qmd is the public homepage, checks pass for the languages you use, npm run preview renders without errors, GitHub Pages loads, security settings are active, and Zenodo DOI metadata is correct after the first release.