Default guide for cronai-labs repositories. A repository with its own CONTRIBUTING.md
overrides this one.
- An issue first. Describe the problem and the evidence for it, not just the desired change. Large efforts become a tracking issue with sub-issues.
- Branch from the issue so it is linked and named
<issue-number>-<short-kebab-summary>. Docs-only changes without an issue usedocs/<short-kebab-summary>. - Pull request to
main, referencingCloses #<n>. Never commit tomaindirectly. - Squash merge. One PR becomes one commit: one changelog entry, one revert unit.
Sequential work should be a stack rather than one
large PR — gh extension install github/gh-stack, then gh stack init / add / submit.
Conventional Commits, enforced on the PR title because that becomes the squash subject:
<type>(<optional scope>): <subject>
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore,
revert. Add BREAKING CHANGE: in the body when it applies.
Branch commits are not linted — write them for whoever reads the PR.
Run the repository's own checks and put the real results in the template. If a check cannot run in your environment — no container runtime, no API key — say so explicitly rather than leaving the row blank.
Required approvals are currently 0: there is one maintainer, and a repository cannot deadlock waiting for someone to approve their own work. CI, linear history and revertability are the real controls. That changes when a second maintainer joins.
Do not open a public issue for a vulnerability — see SECURITY.md.