Thank you for your interest in contributing!
This repository focuses on cloud infrastructure for trading research. Contributions should preserve clarity, explicitness, and reproducibility.
- GitOps-first for long-lived Kubernetes resources reconciled by Argo CD
- No secrets in Git (ever)
- Prefer declarative manifests for application state; do not reintroduce Version 1 imperative host bootstrap scripts
- Keep changes minimal and documented
- Single source of truth for each owned resource
- Avoid ad-hoc live cluster mutations outside an explicit architecture decision
- Multi-arch native
- Minimal, reviewable, and operationally explicit
Verify first. Fix only if confirmed.
The standard Cursor/AI-assisted sequence is documented in
docs/AI_AGENT_WORKFLOW.md. Language behavior
and Git authorization boundaries are defined in AGENTS.md.
- Never work directly on
main. Use a feature branch and open one logical scope per pull request. - Prefer Ask/Plan modes or manually reviewed execution for risky work.
- Agents must not perform live OCI, Terraform, Ansible, or Kubernetes operations.
- Implementation, independent PRE-COMMIT review, and an explicitly authorized finalization task are separate authorization boundaries. An implementation or review task is not permission to commit, push, or merge.
- Use
./tools/check-agent-safety,./tools/check-sensitive-metadata, and./tools/validate-safefor local static checks after reviewing wrapper contents when they change. - Classify evidence honestly (
live validated,CI validated,statically validated,statically identified,not yet validated,intentional behavior,planned). - Changes to
.cursor/**,.cursorignore,AGENTS.md, safety wrappers, or their tests require extra review and a dedicated scope. - Repository guardrails (rules, allow/deny lists, ignore files, and Auto-review instructions) are best-effort steering. They are not a hard security boundary and do not replace OS sandboxing or human review.
- Fork the repository or create a feature branch from current
main - Implement a small, logical change and stage it
- Obtain an independent PRE-COMMIT review of the staged diff
- After
BLOCKER/HIGH/MEDIUM= 0, an explicitly authorized finalization task may commit that reviewed diff, push or update the pull request, wait for the five required checks, apply the exact-head gate, squash-merge, delete the remote feature branch, and verify main CI
Use clear commit messages:
feat: add monitoring overlayfix: correct SecretProviderClass parametersdocs: update bootstrap instructions
Every logical repository change must update CHANGELOG.md under [Unreleased] unless the change is explicitly exempted during review.
Do not create a new SemVer release section until an intentional release cut.
Validation grows with the architecture. A pull request that introduces a new infrastructure tool or configuration domain must add or extend the relevant CI validation in the same logical scope when practical.
Examples:
- Security / leak hygiene → add or extend Security validation in that pull request
- Terraform foundation → add Terraform validation in that pull request
- Ansible foundation → add Ansible validation in that pull request
- Kubernetes / Argo CD validation scope → add render/schema validation in that pull request
A green static CI workflow does not constitute live infrastructure validation.
Terraform changes must pass formatting, backend-disabled initialization, and validation in CI. Static Terraform validation does not prove that OCI resources can be provisioned successfully.
Ansible changes must pass ansible-lint and playbook syntax validation in CI. Static Ansible validation does not constitute successful host convergence.
Before submitting:
- Prefer local static validation with
./tools/validate-safewhen changing safety, shell, or security-hygiene tooling - Ensure GitHub Actions repository validation remains green for the pull request when CI applies, including Security validation
kustomize buildmust succeed for manifest changes- YAML must be valid