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 status

Enable 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" --silent

Protect 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
}
JSON

Verification 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.

Back to top