SolGuard uses two long-lived branches:
developis the integration branch for active development.maincontains release-ready work only.
Feature and repair work should branch from develop and return to develop. A release pull request promotes the verified state of develop into main.
feature/<issue>-<slug> -> develop -> main
Do not push feature work directly to main. Force pushes and branch deletion are disabled for both long-lived branches.
- Start from the latest
developbranch. - Create a narrowly scoped branch named
feature/<issue>-<slug>,fix/<issue>-<slug>, ordocs/<issue>-<slug>. - Implement one issue and its tests.
- Run the complete local verification suite.
- Open a pull request into
developand complete the repository checklist. - Merge only after all configured checks pass and conversations are resolved.
- Confirm every included issue is implemented and verified.
- Confirm the complete test suite and security checks pass on
develop. - Open a release pull request from
developintomain. - Describe the verified functionality, test evidence, known limitations, and rollback plan.
- Squash-merge only when the release candidate is ready to represent the public production baseline.
No direct feature branch should target main.
- Never commit credentials, wallet keys, seed phrases, tokens, or populated
.envfiles. - Use fixed-precision financial values; never binary floating point for money.
- Keep security decisions fail closed.
- Add tests for every changed security invariant.
- Do not present simulated activity as real settlement.
- Do not add placeholder statistics that appear to be runtime evidence.
- Report vulnerabilities through GitHub private vulnerability reporting, following
SECURITY.md.
An issue is complete only when its acceptance criteria are implemented, its tests pass, the existing suite remains green, and the feature has been run successfully at least once.