These rules govern how code lands in this repository. They are non-negotiable.
main— release-ready. Only fast-forward merges fromdevafter a release.dev— integration branch. All feature work converges here. Always green.feat/<short-name>— feature branches. Branched offdev, merged back intodev.fix/<short-name>— bug-fix branches. Same flow as feature branches.
-
Branch off
dev— never branch offmainfor feature work.git checkout dev git pull git checkout -b feat/<short-name>
-
Build the feature on the feature branch. Commit early and often. Keep the branch focused on one feature.
-
Test before merging. A feature branch must not be merged into
devuntil:- All unit, integration, and contract tests pass locally (
make test). - Eval harness still passes if retrieval/chunking/embedding code changed (
make eval). - Lint and type checks pass.
- The feature has been manually exercised end-to-end where applicable.
- All unit, integration, and contract tests pass locally (
-
Open a pull request into
dev. PR description states what changed and why.git push -u origin feat/<short-name> gh pr create --base dev --title "feat(<scope>): <summary>"
-
Merge into
devonly after tests pass and review is complete. Use--no-ffto preserve history.git checkout dev git merge --no-ff feat/<short-name> git push origin dev git branch -d feat/<short-name>
-
Release — when
devis stable and ready to ship, fast-forwardmainfromdev.
- ❌ No direct commits to
devormain. Always go through a feature branch. - ❌ No merging untested code into
dev. If tests fail, fix them on the feature branch first. - ❌ No force-pushing to
devormain. - ❌ No skipping pre-commit hooks (
--no-verify) without an explicit reason in the commit message. - ✅ One feature, one branch. Don't bundle unrelated work.
- ✅ Rebase your feature branch on
devbefore opening the PR ifdevhas moved on.
<type>(<scope>): <short summary>
What changed:
- <specific change>
- <specific change>
Why:
<reason or context>
Author: harisahmed510.00@gmail.com
Types: feat, fix, refactor, test, chore, docs, perf, security