先看宣告如何相連,再談啟動。COMPOSE FIELD NOTES / 16
把服務關係,與未知分開看。
單份 Compose YAML 的有限結構與引用預檢。分清服務相依、network 連接與 volume 掛載,回到真正的來源位置;遇到 profiles、插值或外部資源,就把尚未確認的部分留下。
01 / 放入一份 YAML,不執行它
ONE DOCUMENT / NO ENVIRONMENT固定案例皆人工合成;載入與編輯不觸發解析,按 Run 才建立獨立 worker。
每份 500K UTF-16、CST/nodes 100K、depth 64、每 collection 10K、token/scalar 65,536、name/key 256、services/networks/volumes 各 128、總 references 4,000、diagnostics 500、graph work 100K;path 2,048/合計 1M units。超限清除模型,不截斷成功。YAML anchors/aliases/tags/directives/merge/多文件不支援。
02 / 先核對覆蓋,不只看數量
沒有選擇任何 profiles
有定義的 profiled service 不等於
undeclared。相依不會自動啟用 profile;保留條件,而不是猜一個 active graph。
外部與執行狀態皆未檢查
Image 只有宣告狀態,external resources 是
not-checked。service_healthy/completed 是條件宣告,不是觀測結果。
規格參考:compose-spec snapshot 914ec15…(2026-09-17 schema 更新)。僅參考版本,不在 runtime 下載 schema,不宣稱官方 CLI 內嵌規格完全相同。
03 / 選一個服務,沿著引用看
FOCUS MAP / OUTGOING REFERENCES焦點圖只顯示所選服務的所有 outgoing records,不是整份部署拓撲。三條軌道分開呈現依賴、network、mount;每批 50 筆。目標存在才有宣告卡片,missing/unresolved 只有問題記錄,不造節點或確定連線。下方完整文字清單提供等同來源導覽。
04 / 宣告清單,不混同實際資源
SERVICES / NETWORKS / VOLUMESServices
Networks
Volumes
Implicit default network 由 absent/空 collection 的 service networks 推導,沒有虛構的宣告來源。Explicit default 可重用;networks:null 是錯誤。network_mode 或繼承來源未知時不猜 attachment。宣告但未使用的 volume 不造掛載。
05 / 逐筆引用與循環,回到來源
DECLARATIONS, NOT OBSERVED CONNECTIONS相依循環 · SCC 成員,不是執行順序
無條件循環是 covered error;只有 profile 條件的 SCC 不代表所有 activation 都失敗。較大條件 SCC 中若另含 unconditional subcycle,仍顯示具體錯誤。Condition/required/restart 未解析時不猜預設確定性。Undeclared optional target 仍是 reference error,依實測官方 CLI v5.5.0;已定義、未啟用的 optional profiled target 則不同。
06 / 結構、未解析與支援邊界
PATH / ORIGINAL SOURCE RANGE覆蓋範圍與官方 CLI 固定案例
本機官方 Compose v5.5.0 已在隔離環境執行 23 組人工案例、46 次 config。Primary:config --format json --no-env-resolution --no-path-resolution;secondary 額外 --no-interpolate。在此版本,secondary 會接受 primary 拒絕的 missing refs/cycles,所以其 exit 0 不能作為一致性證明。固定結果與逐項差異見專案 docs/validation/stw-8/cli/README.md、results.json 與 comparison.md;產品不執行 CLI。
Primary 可用隔離檔案解析 include/extends,也會對缺少環境變數代空值/解析 default;本工具不讀環境/檔案,所有 $VAR/${…}(含 defaults)仍未解析,絕不以空字串冒充有效值。$$ 只代表 escape;動態 graph 名稱仍保守未知。Include/extends/多 -f 合併/env_file 不處理,x-* 明示忽略,其他不支援設定保守 partial。
Complete 僅代表有限靜態子集,不是完整 schema/resolved application/啟動/健康驗證。CLI config 接受 service_healthy 而沒有 healthcheck、接受 external resource 名稱,也不能證明服務成功或資源存在。無 daemon/pull/up/create/filesystem probes;不把官方參考當 runtime 依賴。
07 / 只帶走精簡 metadata
REVIEW BEFORE SHARING只用公開 exportComposeSummary 投影:狀態、規格參考、服務/資源 metadata、條件/引用/cycles、static codes/來源位置、限額與範圍。不含原始 YAML、image/environment/command/mount path 或任意值。不是匿名化,不匯出完整 report 或 SVG。Limit 無模型不可下載;其他狀態仍保留不完整標記。
設定的關係圖,不是服務的實況。
免登入,來源只在目前頁面與專用 module worker 記憶體。不連 Docker、不上傳/記錄輸入、不保存、不放進 query/hash/分享 URL。按 Run 才建立每次獨立 worker;20 秒逾時、取消、編輯、重跑、清除、離開或錯誤會終止,沒有主執行緒解析 fallback。全部資源隨網站提供。
來源位置為原始 UTF-16 end-exclusive,行/欄從 1 起算;YAML path 使用 JSON Pointer 跳脫,dynamic key 用 @dynamic:index 不複製插值內容。圖與清單皆安全純文字,不渲染使用者 HTML。下載是主動行為,Blob URL 短期回收;分享前仍須檢查名稱與 metadata。