feat(operations): add production readiness gate (#23)

This commit is contained in:
KyuubiYoru
2026-07-16 22:19:51 +02:00
parent 6bad659c12
commit 00d5ff7764
13 changed files with 782 additions and 6 deletions
+124
View File
@@ -0,0 +1,124 @@
{
"schemaVersion": 1,
"kind": "rendezvous-production-readiness",
"evaluatedCommit": "6bad659c123ad45ad0d9d07f93217c2e8c42d459",
"decision": "not-ready",
"localGates": [
{
"id": "immutable-release-artifacts",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Rebuild after the readiness tooling checkpoint."
},
{
"id": "debug-and-release-verification",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Re-run after the readiness tooling checkpoint."
},
{
"id": "real-consumer-pilots",
"status": "pending",
"evidenceRef": "docs/integration/spacegame-pilot.md",
"note": "Pin and re-run both real consumer revisions."
},
{
"id": "candidate-capacity-resilience",
"status": "pending",
"evidenceRef": "docs/evidence/capacity/v2/candidate-2cpu.json",
"note": "Re-run the five-minute candidate on the tooling checkpoint."
},
{
"id": "production-process-recovery",
"status": "pending",
"evidenceRef": "docs/operations/capacity-and-resilience.md",
"note": "Re-run process restart, drain, and rollback gates."
},
{
"id": "security-privacy-observability",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Re-run the combined release verification matrix."
}
],
"externalGates": [
{
"id": "public-package-empty-cache-restore",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "The public registry does not currently resolve version 1.0.0."
},
{
"id": "signed-publication",
"status": "pending",
"evidenceRef": "docs/releases/README.md",
"note": "Protected release credentials and immutable tag publication are required."
},
{
"id": "source-preserving-udp-ingress",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "The public ingress path needs packet-level source and reply validation."
},
{
"id": "same-lan-direct-canary",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Requires two independently operated game clients."
},
{
"id": "home-nat-direct-canary",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Requires distinct residential networks."
},
{
"id": "restrictive-cgnat-typed-failure",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Requires a known restrictive carrier topology."
},
{
"id": "firewall-blocked-udp-typed-failure",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Requires an independently controlled firewall rule."
},
{
"id": "ipv6-direct-canary",
"status": "pending",
"evidenceRef": "docs/operations/production-readiness.md",
"note": "Requires two IPv6-capable external clients and public ingress."
},
{
"id": "public-rate-shaped-capacity",
"status": "pending",
"evidenceRef": "docs/operations/capacity-and-resilience.md",
"note": "The full public HTTP and UDP traffic mix has not been measured."
},
{
"id": "one-hour-candidate-endurance",
"status": "pending",
"evidenceRef": "docs/operations/capacity-and-resilience.md",
"note": "A production-shaped one-hour candidate run is required."
},
{
"id": "alert-delivery",
"status": "pending",
"evidenceRef": "docs/operations/incident-runbooks.md",
"note": "A real alert sink must observe trigger and recovery notifications."
},
{
"id": "cold-standby-rollback-drill",
"status": "pending",
"evidenceRef": "docs/operations/capacity-and-resilience.md",
"note": "The deployment must demonstrate the host-visible recovery objective."
},
{
"id": "documentation-only-runbook-exercise",
"status": "pending",
"evidenceRef": "docs/operations/incident-runbooks.md",
"note": "An independent operator must execute the runbooks using only the docs."
}
]
}