Template
docs(rules): compose-only lifecycle doctrine (no dev.sh/Makefile); prod container suffixes
This commit is contained in:
@@ -10,7 +10,7 @@ question (see Questions). Effective 2026-08-31.
|
|||||||
|
|
||||||
## Promotion tiers (alpha -> beta -> uat -> prod; each slower than the last)
|
## Promotion tiers (alpha -> beta -> uat -> prod; each slower than the last)
|
||||||
|
|
||||||
- alpha: build + vet + test in the digest-pinned builder (`./dev.sh check`). Nothing deployed.
|
- alpha: build + vet + test via the repo's compose `check` service (pinned builder). Nothing deployed.
|
||||||
- beta: candidate image on the isolated beta lane (own Postgres, loopback bind; gateway: compose.beta.yaml, 127.0.0.1:4002) + scripted UAT.
|
- beta: candidate image on the isolated beta lane (own Postgres, loopback bind; gateway: compose.beta.yaml, 127.0.0.1:4002) + scripted UAT.
|
||||||
- uat: the REAL client against the beta lane (crush: `crushgw-uat`; gateway: `./promote.sh uat`). Spend lands in beta accounting only.
|
- uat: the REAL client against the beta lane (crush: `crushgw-uat`; gateway: `./promote.sh uat`). Spend lands in beta accounting only.
|
||||||
- prod: the live stack. **HUMAN RELEASE ONLY** (gateway: `./promote.sh release`, typed by human hands). An agent NEVER promotes to prod, NEVER restarts prod for convenience. If prod must bounce, drain-aware: quiet logs, 30s graceful, in-flight turns may retry.
|
- prod: the live stack. **HUMAN RELEASE ONLY** (gateway: `./promote.sh release`, typed by human hands). An agent NEVER promotes to prod, NEVER restarts prod for convenience. If prod must bounce, drain-aware: quiet logs, 30s graceful, in-flight turns may retry.
|
||||||
@@ -28,7 +28,7 @@ question (see Questions). Effective 2026-08-31.
|
|||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|
||||||
- ALL builds/tests in Docker via each repo's pinned builder. NEVER run toolchains on the host. Host runs only git, docker, unix utils.
|
- ALL builds/tests through the repo's compose lifecycle services (pinned-builder `check`). NEVER run toolchains on the host. Host runs only git, docker, unix utils. NO dev.sh, NO Makefile — docker compose is the only lifecycle interface (k8s/gitops-portable; template: go-cli-mcp-template #578).
|
||||||
- Secrets: ONE place — ~/.creds (0600 env files). NEVER in repos, images, compose files, app databases, logs, or error strings. Configs hold refs (env:/file:), never material.
|
- Secrets: ONE place — ~/.creds (0600 env files). NEVER in repos, images, compose files, app databases, logs, or error strings. Configs hold refs (env:/file:), never material.
|
||||||
- curl is banned. HTTP from host = python3 urllib.
|
- curl is banned. HTTP from host = python3 urllib.
|
||||||
- 100% compose lifecycle: every container is a compose service with container_name; storage in named volumes; no ad-hoc docker run for services, no manual renames. Scoped ops only — NEVER bare `down`.
|
- 100% compose lifecycle: every container is a compose service with container_name; storage in named volumes; no ad-hoc docker run for services, no manual renames. Scoped ops only — NEVER bare `down`.
|
||||||
|
|||||||
Reference in New Issue
Block a user