A language-agnostic base for a new GitHub repository. It holds the community health files, the issue and pull request templates, a pinned toolchain, git hooks, a CI gate, and the documentation convention. Every other template in the blueprints set starts from it.
It holds no application code. A repo made from it adds the language tools and fills in the task contract.
| Tool | Owns |
|---|---|
| mise | Tool versions and tasks |
| lefthook | Git hooks |
| cocogitto | Conventional Commits checks |
| rumdl | Markdown lint |
| gitleaks | Secret scan |
| Renovate | Updates to the pinned versions |
-
Install mise.
-
Clone the repo and install the tools and hooks:
git clone git@github.com:tabmadi/github-project-template.git cd github-project-template mise install mise run setup -
Run the gate:
mise run check
| Task | Does |
|---|---|
mise run setup |
Installs the git hooks |
mise run format |
Applies every formatter |
mise run lint |
Runs every linter: lint:md and lint:secrets |
mise run test |
Runs the tests. Here it is a placeholder |
mise run check |
Runs lint and test. Run it before you finish a change |
mise run ci |
Runs exactly what CI runs. The pre-push hook runs it too |
.
├── .github/
│ ├── ISSUE_TEMPLATE/ Bug, feature, and documentation issue forms
│ ├── workflows/check.yml The CI gate: mise run ci
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── renovate.json Updates to the pinned versions
├── docs/adr/ The decisions: foundations, doc conventions, toolchain
├── .mise.toml Tool pins and tasks
├── .lefthook.yml Git hooks
├── cog.toml Commit types
├── .rumdl.toml Markdown rules
├── .gitleaks.toml Secret scan rules
├── AGENTS.md Hints for coding agents
├── CODE_OF_CONDUCT.md
├── SECURITY.md
└── LICENSE
- Create a repository from this template on GitHub.
- Add your language tools to
[tools]in.mise.toml, pinned to an exact version. - Fill in the
format,lint, andtesttasks with real commands. Keep the task names. - Rewrite this README with the template skeleton from readme-template.
- Update the contacts in
SECURITY.mdand the copyright line inLICENSE. - Install the Renovate app on the new repository.
The ADRs in docs/adr record every decision and the reason for it. ADR-0001 is the house style for all text.
Follow the Code of Conduct. Commit messages follow Conventional Commits, and the commit-msg hook checks them. Run mise run check before you open a pull request.
To report a vulnerability, follow SECURITY.md.
Apache License 2.0. See LICENSE.