This guide provides generic onboarding defaults intended for template-based repositories.
- Git 2.40+
- Bash or another POSIX-compatible shell for helper scripts
- A language runtime/toolchain for your project such as Node, Python, Go, Rust, or similar
- A package manager such as npm, pnpm, pip, poetry, go, or cargo
git clone <your-repo-url>
cd <your-repo>
bash scripts/bootstrap.shIf your repository is not Node.js based, adapt scripts/bootstrap.sh to your stack and keep command names consistent with CI.
To keep automation portable, define task commands with predictable names:
format:check— formatting validationlint— static analysis/lintingtest— automated tests
This template's reusable workflow can call any shell command, but these names improve discoverability.
The repository ships with:
.github/workflows/reusable-quality.ymlas the reusable workflow.github/workflows/ci.ymlas the default entry workflow.github/workflows/release.ymlfor release PR and tag automation
In ci.yml, enable checks by setting:
setup-node: truefor JS/TS projectsrun-format-check: truerun-lint: truerun-test: true
Then optionally override commands:
with:
setup-node: true
format-command: npm run format:check
lint-command: npm run lint
test-command: npm test- Create a branch from
main. - Run local validation commands before opening a PR.
- Open a focused PR and include context for reviewers.
- Merge only when CI checks pass.
- Keep workflows minimal and composable.
- Prefer reusable workflows over duplicated YAML.
- Avoid stack-specific assumptions in template defaults.
- Keep commands configurable through workflow inputs.
- Fail fast in CI and keep logs clear.