---
status: STABLE_BOOTSTRAP_ORIGIN_PLAN_GATE_STAGED_NOT_PROVISIONED
candidate_version: 1.4.109-runtime-heartbeat-null-stale-fallback-default-off-locked
stable_origins_configured: 0
activation_allowed: false
current_continuity: false
production_changed: false
---

# 상시 3-origin bootstrap plan gate

3-WAN Quick Tunnel live canary는 성공했지만 임시 주소를 제거했으므로 상시 bootstrap origin은 아직 없다. 임시 주소를 production 후보로 오인하거나 하나의 provider/control plane에 세 주소를 몰아넣는 것을 막기 위해 별도의 durable plan gate를 추가했다.

## 강제 조건

- 공개 신뢰 HTTPS 443 origin 3개 이상
- 서로 다른 node key, hostname, network failure domain
- 서로 다른 control-plane failure domain
- Quick Tunnel `*.trycloudflare.com` 거부
- 인증서와 SPKI SHA-256 고정
- 인증서 잔여기간 최소 30일
- hostname 검증 및 공개 신뢰 인증서 요구
- stable address, 인증서 자동 갱신, PC 재시작 복구 증거 요구
- private key, token, password, credential, cookie 필드 거부
- production traffic, DNS, DB, validator, operator signing activation false

`scripts/prepare-stable-bootstrap-origins.js`는 기본적으로 plan을 offline 검증한다. `--probe`를 명시한 경우에만 TLS 1.2 이상, 인증서·SPKI, HSTS, node identity와 signed directory endpoint를 읽기 전용 확인한다. 출력되는 PC/Web/Android artifact는 항상 activation false다.

합성 3-origin 자체시험에서 독립 network/control-plane domain을 통과했고 Quick Tunnel, 중복 control plane, 단기 인증서, secret 필드와 activation true를 모두 거부했다.

## 현재 경계

실제 stable origin은 아직 0개다. 이 단계는 안전한 입력 규격과 실행 gate를 완성한 것이며 외부 origin·인증서·상시 tunnel을 생성하지 않았다. 실제 origin 3개를 준비하고 read-only probe를 통과하기 전에는 `current_continuity`를 true로 올리지 않는다.

증거: `evidence/stable-bootstrap-origin-plan-stage-redacted.json`
