Thanks for contributing.
After cloning, run the onboarding-safe baseline checks:
make helpmake quickstart-verify- Code of conduct: CODE_OF_CONDUCT.md
If you want starter tasks, browse labels:
good first issuehelp wanteddocumentationobservability
Before opening or merging a PR, confirm all items below:
Use the repository PR template at .github/pull_request_template.md when opening PRs.
- CI workflows pass on your branch
- Cross-platform lanes are green for relevant changes (
Build and Test,Windows Client EXE Build,macOS Client Smoke) - Security checks pass (including CodeQL)
- Documentation is updated for any behavior/config changes
- Documentation sync completed when workflows, tests, or security defaults changed
- No secrets or credentials are committed
To avoid recurring CI failures and match GitHub Actions behavior locally, run these checks before pushing:
make quickstart-verifymake lint-softmake alerts-testpython3 -m black --check ../.venv/bin/python tests/scripts/python/run_full_validation_suite.py --profile deep
Notes:
- The
Lint Code Baseworkflow enforcesPYTHON_BLACK. Treat Black failures as merge-blocking. - If
make lint-softfails due localTOOLROOTmismatch, rerun withmake lint-soft TOOLROOT=$(go env GOROOT). - The full validation suite now uses the invoking interpreter (
sys.executable) for Python checks. Prefer running it from./.venv/bin/pythonto avoid dependency drift.
For changes that affect runtime APIs, auth, trust, or deployment defaults, documentation updates are mandatory in the same PR.
Minimum required files to update:
README.mdfor user-facing behavior, endpoints, headers, and env varsDocumentation/Project/ROADMAP.mdfor milestone status and next steps- Any affected deployment/testing guide under
Documentation/
Examples of changes that require doc sync:
- New/changed HTTP endpoints or request/response fields
- New/changed auth modes, token locations, or role checks
- New/changed environment variables or compose overlays
- New test harnesses or validation flows used for release confidence
A PR touching proof verification, hybrid verification, ledger, TPM trust, or transport security should include:
- Unit tests for happy-path and at least one negative path
- Integration coverage where route registration or middleware behavior changed
- README endpoint and auth examples aligned with the implementation
- Roadmap status update indicating whether the change is completed or follow-up work remains
The repository includes a Git-based reward scoring system to rank contributions.
- Run
make contributors-rankings - Outputs:
test-results/contributor-rankings/CONTRIBUTOR_RANKINGS.mdtest-results/contributor-rankings/contributor_rankings.json
Current points formula:
points = commits*5 + additions*0.05 + deletions*0.02 + files_touched*0.5
Default scoring window is the last 30 days. You can customize window and output paths with:
python3 scripts/contributor_rankings.py --since "90 days ago" --until "now" --top 50
This repository uses an advanced CodeQL workflow at .github/workflows/codeql-analysis.yml.
- Do not enable GitHub CodeQL Default Setup for this repository.
- Enabling Default Setup can trigger Java/Kotlin analysis on
mobile-apps/and fail withbuild-mode: none. - If this happens, disable Default Setup in Security → Code scanning and re-run the advanced workflow.
For details, see .github/CODEQL.md.
For main, enable branch protection with:
- Require pull requests before merge
- Require status checks to pass before merge
- Require branches to be up to date before merge
At minimum, require these checks:
CodeQL Security Analysis / Analyze Code (go)CodeQL Security Analysis / Analyze Code (javascript-typescript)CodeQL Security Analysis / Analyze Code (python)Reproducibility Check / Clone ReproducibilityWorkflow Action Pin Check / Enforce SHA-Pinned ActionsGovernance Check / Governance IntegrityBuild and Test / buildWindows Client EXE Build / Build Windows Client EXEmacOS Client Smoke / macOS Client SmokeObservability CI / Validate Dashboard Queriesdocs-markdownlint / markdownlintDocs Quality / markdown-lint-and-linksDocs Pages / deploy
Branch protection alignment rule:
- If a workflow or job name is renamed, update required checks in repository settings in the same change window. Stale required check names can block merges even when CI is healthy.
Metadata updates for description, homepage, and topics require repository admin permissions. Use:
- Runbook:
Documentation/Project/REPO_SETTINGS_ADMIN_RUNBOOK.md - Fallback helper:
scripts/repo_settings_fallback.sh