# 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).