All changes to main go through pull requests. Direct pushes to main are blocked.
-
Create a feature branch
git checkout -b your-branch-name
-
Make your changes, commit, and push
git add . git commit -m "your change description" git push origin your-branch-name
-
Open a pull request
gh pr create --base main --title "Your PR title" --body "Description of changes"
-
Wait for CI checks to pass
The following checks must pass before merge:
task-linkify-regression-gate— validates task-linkify behavior, SSOT indicator states, and URL-guard logic
-
Get a review approval
At least one reviewer must approve the PR.
-
Merge
gh pr merge --squash
| Rule | Status |
|---|---|
| PRs required (no direct push to main) | ✅ Enforced |
task-linkify-regression-gate must pass |
✅ Required |
| At least 1 review approval | ✅ Required |
| Admin bypass disabled | ✅ Enforced for all users |
| Branch up-to-date before merge | ✅ Required (strict mode) |
npm run build
npm run test:task-linkify:regression
npm run test:ssot-indicator:regressionIf all pass, your PR should clear CI.
- Check the GitHub Actions run for the failing job
- Run the same test locally to reproduce
- Fix and push — CI re-runs automatically
Admin bypass is disabled. If an emergency requires direct push:
- Temporarily re-enable admin bypass via GitHub repo settings
- Make the push
- Immediately re-disable admin bypass
- Document the bypass in the PR/commit message
This should be extremely rare and always documented.