Files
Rendezvous/docs/evidence/production-readiness-v1.json
KyuubiYoru 95c3a4aed6
quality-gate / quality (push) Failing after 1m29s
quality-gate / container (push) Has been skipped
docs(operations): record v1 readiness evidence (#23)
2026-07-16 22:39:50 +02:00

125 lines
4.5 KiB
JSON

{
"schemaVersion": 1,
"kind": "rendezvous-production-readiness",
"evaluatedCommit": "00d5ff776408e7d80ce6648953e62a7233aca35c",
"decision": "not-ready",
"localGates": [
{
"id": "immutable-release-artifacts",
"status": "pass",
"evidenceRef": "docs/evidence/releases/v1.0.0-local-candidate.json",
"note": "Clean candidate packages and server archive are byte reproducible and fully verified."
},
{
"id": "debug-and-release-verification",
"status": "pass",
"evidenceRef": "docs/evidence/releases/v1.0.0-local-candidate.json",
"note": "All 300 tests pass in Debug and Release; the Release build has zero warnings and errors."
},
{
"id": "real-consumer-pilots",
"status": "pass",
"evidenceRef": "docs/evidence/releases/v1.0.0-local-candidate.json",
"note": "Pinned real projects restore the candidate and both game launch pilots pass direct traffic."
},
{
"id": "candidate-capacity-resilience",
"status": "pass",
"evidenceRef": "docs/evidence/capacity/v2/candidate-2cpu.json",
"note": "The clean two-CPU five-minute candidate passes all budgets with zero retained state."
},
{
"id": "production-process-recovery",
"status": "pass",
"evidenceRef": "docs/evidence/releases/v1.0.0-local-candidate.json",
"note": "All selected restart, drain, socket release, overload, and recovery tests pass."
},
{
"id": "security-privacy-observability",
"status": "pass",
"evidenceRef": "docs/evidence/releases/v1.0.0-local-candidate.json",
"note": "The complete security, privacy, health, audit, telemetry, and release suite passes."
}
],
"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."
}
]
}