diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..68c9983 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contributing + +## Before you code + +1. Read [design/DESIGN_PLAN.md](design/DESIGN_PLAN.md). +2. Read [design/use-cases.md](design/use-cases.md), [design/scenarios.md](design/scenarios.md), [design/DECISIONS.md](design/DECISIONS.md). +3. Implementation requires an explicit **build** decision for greenfield features; structural and documentation work follows this CONTRIBUTING guide. + +## Platform-first + +- Sandbox, policy, credentials, channels, inference: **`nemohermes` / `openshell` only**. +- Product scripts wrap those CLIs. Do not add a parallel control API. + +## Git ops for this product + +- Remote: Gitea **Ty_Tech/Salon_Assistant**. +- Agent Git MCP for this product: **gitea_vps** only (`https://giteamcp1.vps1.afterthedemo.com/mcp`, User-Agent `grok-connectors-manager/`). + +## Pull requests + +- Branch from `main`. +- Keep use-case SSOT in `design/use-cases.md` (do not duplicate full matrices in README). +- Run `make verify` when implementation exists (fixture CI). +- No secrets in commits. + +## Code style + +- Python 3.11+ for skill scripts and providers. +- Deterministic logic in code; LLM only where the design matrix allows. + +## Releases + +- Tag releases (`vX.Y.Z`). +- Pin images and MCP package versions in the release manifest. +- `scripts/upgrade.sh` is the operator upgrade entrypoint (see docs/UPGRADE.md).