跳轉到

D-20260727-02|文檔站 origin 定為 docs.open4wd.org

背景與驅動力

規劃中的靜態文檔站沒有部署落點。D-20260724-01 釘死的 穩定名稱是 open4wd.orgsignal.pin.bootstrap.turn. 四個子網域,全部是 runtime 服務端點;部署資訊.md 的 Pages 與 origin 敘述也一律以主 repo 為主詞。文檔站 既不是 runtime 服務、執行又閘在首測與轉 public 之後,於是從未進入任何一輪部署裁決——這是空白 而非衝突。

先把 origin 定下來,是因為它會影響建站設定(base path、站內連結、graphify 靜態圖的子路徑), 晚定會讓已寫好的設定重做。

考慮過的選項

  • open4wd.org/docs/ 同 origin 子路徑:主站是 PWA,Service Worker 註冊在 root scope 會攔截 /docs/ 導覽,CSP 也由 app build 時注入 meta;且該 origin 的 Pages 來自主 repo,等於要把 spec corpus 的產物搬進主 repo 的部署流程,形成跨 repo 耦合。棄。
  • 沿用 GitHub Pages 預設網域:零 DNS、零裁決,但 base path 帶 repo 名,且日後改用自訂網域會 製造第二個公開 origin——正是首次公開直接綁正式域名所要避免的模式。棄。
  • specs.open4wd.org:與 repo 名一對一,但既有子網域命名的是功能而非 repo(signal 而非 signaling、pin 而非 pinning),且站上內容寬於規格。棄。
  • docs.open4wd.org 獨立子網域(採納)。

決定

  • 文檔站的 canonical origin 為 https://docs.open4wd.org/,由 spec corpus 自己的 repo 以 GitHub Pages 發布;與主站分屬不同 origin,不與 app 的 Service Worker scope、CSP 或 PWA manifest 產生交互。
  • 該名稱加入穩定名稱集合,但比照 signal.open4wd.org 的既有處置:僅先保留名稱與部署契約, 在站點實際建置並通過 smoke 之前不得宣稱可用,也不得作為任何 runtime 設定值。
  • 站點執行仍閘在首次本機測試與轉 public 之後;本裁決只定 origin,不觸發建站。
  • graphify 的靜態圖產物若上線,掛在同站 /graph/ 子路徑,不另立 origin。

後果與影響

建站設定可以先寫定:base path 為根、站內連結不必遷就 repo 名前綴、/graph/ 子路徑的位置確定。 文檔站與 app 完全隔離,兩邊的部署與快取策略互不影響。

代價是多一筆 DNS 與一個要維護的 origin。改名成本低:文檔站沒有任何 origin-bound 識別子(不像 app 有綁 origin 的儲存與 PWA scope),日後若要更名,一筆 DNS 加一條 301 即可,不需走 D-20260704-03 的遷移程序。