Thank you for your interest in SP-DIFFER. This project aims to be practical, strict, and easy to reproduce.
The standard to aim for here is closer to review-grade systems work than to "green on my machine." Changes should be easy to reason about, easy to reproduce, and easy for another reviewer to verify independently.
In order:
- Correctness and deterministic reproduction
- Reviewability and auditability
- Release evidence and operator clarity
- Performance, ergonomics, and new integrations
- Open an issue describing the bug, edge case, or idea.
- Provide minimal reproduction steps or a test case when possible.
- Keep discussions focused on correctness, determinism, and interoperability.
Run the narrowest commands that prove your change and list the exact commands in the PR:
make lint
make test
make sanitize-smoke SANITIZE_CXX=clang++If the change is adapter-specific, vector-specific, benchmark-specific, or release-specific, run the smallest additional target that directly covers the modified behavior.
- Keep patches small, focused, and reviewable.
- Make behavior changes and their tests land in the same patch.
- Separate mechanical refactors or formatting-only churn from behavioral changes.
- Do not mix dependency updates with unrelated logic changes unless there is a clear correctness reason.
- Write claims in evidence-first language. If a result is measured only in this harness, say so plainly.
- Avoid adding nondeterministic behavior, hidden network requirements, or machine-specific assumptions.
Please include:
- The input case or a seed that reproduces the issue.
- The implementation versions or commit hashes.
- The exact output mismatch and any logs.
- Add tests or regression cases when behavior changes.
- Prefer replayable regression artifacts over anecdotal bug descriptions.
- Keep Rust code
rustfmt-clean and Go codegofmt-clean. - Keep Rust code
clippy-clean under the repository's-D warningslane. - Keep Go code
go vet-clean under the repository's readonly module lane. - Keep C++ code warning-clean under the repository's strict warning lane.
- Avoid adding non-deterministic behavior.
- If your change affects release evidence, benchmark outputs, or operator-facing readiness claims, update the relevant docs and make sure the new output can be reproduced from the Make targets.
- Explain the concrete problem and failure mode.
- Explain why the fix is correct, not just why tests are green.
- Mention the exact commands you ran and the outcome.
- Update docs when behavior, workflow, or operator-facing output changes.
- Respect
.github/CODEOWNERSfor sensitive paths; changes to core semantics, release plumbing, CI, and security docs should not merge without the named owner review once public branch protection is ready for it. - Respond to review comments directly and keep the branch history coherent.
- Avoid broad cleanup PRs unless they reduce maintenance or review risk in a way the diff and test evidence make explicit.
Do not use real wallet keys. Only use disposable keys in tests.
If you believe you found a security issue, prefer GitHub private security advisories when they are available for the repository. Avoid posting sensitive details publicly before maintainers have had time to assess the report.
- Do not describe a candidate as release-ready unless
make maturity-signoffis green. - Do not describe a public tag as verified unless its signing key is published in
SECURITY.mdand the tag signature verifies.