--- tags: [薄殼, 平台原則, 踩坑, 案例經驗] gloss: MCP 與 CLI 不一致的根因不是開發先後,而是薄殼紀律(rule 07)2026-06-07 才從壓測釐清,補立之前兩介面各自接後端而漂移。 --- # 薄殼規則晚於實作 — MCP 漂移是歷史債 ← [[decisions/00-INDEX]] **來源**:`system-dev/docs/5-records/test-reports/壓測-recipe-library-2026-06-07.md` §5、`.claude/rules/07-thin-shell.md` 檔頭、decisions-summary(薄殼原則 2026-06-15 釐清) **最後更新**:2026-06-27 ## 摘要 MCP 和 CLI 不一致的根因不是「MCP 更早開發所以舊」,而是**薄殼原則本身是 2026-06-07 壓測時才釐清的**——規則補立之前,兩個介面各自接後端、自然漂移,留下歷史債。 ## 重點 - **規則晚於實作**:rule 07 檔頭自承來源是「壓測報告 §5.4/§5.5,設計者本人於壓測中釐清」。薄殼不是開局戒律,是撞牆後回頭講清楚的產物。 - **病徵(壓測 §5.1 原記)**:CLI 改了讀全域/專案/.env 身份,**MCP 沒跟上**,兩者打不同帳號。能力在兩介面各寫各的,沒有「先有 API、介面只暴露」的紀律約束。 - **化石證據**:MCP `u6u_deploy_workflow` 打 `/workflows/deploy`(從不存在的端點 → 404),CLI `acr push` 走 `/webhooks/named`(活的)。兩條部署路徑底層根本不同 = 規則沒到位前各長各的(2026-06-27 issue #8 實作期挖出)。 - **同根的其他漂移**:self-hosted MCP 連官方帳號([[薄殼原則-能力長在API]] §4、mistakes §5);YAML→graph 編排被寫在 CLI push.ts 介面層、MCP 期待 server 端點 → 兩邊都想自己編排。 - **校正常見誤解**:不是「先後」造成不一致,是「**紀律後補、補前漂移**」。修法是回頭把能力下沉 API(rule 07),不是怪某介面舊。 - **查證限制**:`.claude/`/`docs/`/`system-dev/` 全 gitignored,git 無這些檔歷史 → 「精確定立時間」查不到,只能靠檔內日期註記(2026-06-07 壓測、2026-06-15 「MCP=CLI 是出貨目標非不變量」釐清)。 ## 實體 - **薄殼原則**(rule 07/薄殼鐵律)— 能力只實作一次放 API、介面只暴露的紀律,2026-06-07 從壓測釐清。 - **規則晚於實作**(紀律後補)— 原則在介面已各自長成後才補立,是漂移的根因。 - **MCP 漂移**(CLI/MCP 不一致)— 兩介面各自接後端、打不同帳號/端點的歷史債。 - **死端點 404**(/workflows/deploy 不存在)— MCP 打一個從未存在的部署端點,是漂移的具體化石。 ## 關聯 ### 內文知識關係 - 規則晚於實作 >> 導致 >> MCP 漂移 - MCP 漂移 >> 具體表現為 >> 死端點 404 - 薄殼原則 >> 補立晚於 >> MCP 漂移 - 薄殼原則 >> 修正 >> MCP 漂移 ### 卡片關係 - [[薄殼規則晚於實作-MCP漂移是歷史債]] >> 補充歷史成因於 >> [[薄殼原則-能力長在API]] - (相關 memory:`mcp-self-hosted-bug-fixed`、`thin-shell-capability-in-api` — MCP 後端接線與薄殼鐵律)