以安裝驗證確認轉接檔真的叫得動 #59

Closed
opened 2026-09-17 10:00:45 +00:00 by jiantw83 · 0 comments
Member

母議題

#56 — 補上六個指令走通後浮現的四個缺口

要做出什麼

安裝完成等於驗過能用。目前 tea-sdlc install 跑完會回報寫了哪些轉接檔,但沒有人驗過那條鏈真的通:轉接檔 → PATH 上的 tea-sdlc → 流程正本。最脆弱的一環在中間——套件裝在某個 Node 版本底下,換個版本就找不到了,而轉接檔本身看起來完全正常。使用者要到第一次打 /sdlc-plan 才發現,那時他已經離開安裝的心智狀態很久了。

install 寫完轉接檔後自動驗一次真實的叫用鏈:實際取回一次流程正本、比對各平台轉接檔存在且內容含正確的叫用行,逐平台 pass/fail 併入輸出。任一平台不通就讓 install 回失敗——「要經過測試才算完成」要做實,不能只是一句期許。

驗證完全不需要網路:取正本是讀套件內的檔案,比對轉接檔是讀本機目錄。所以它無條件執行,不受 Gitea 登入或時間追蹤狀態影響。

失敗不回滾,保留已寫的轉接檔。回滾在升級情境下會造成淨損失:使用者原本有一組能用的舊轉接檔,覆蓋後驗證失敗,回滾把新的刪掉、舊的也已經沒了,他從「有點舊但能用」變成「什麼都沒有」。而且最可能的病灶是「PATH 上找不到 tea-sdlc」,那不是轉接檔的問題,刪掉它一點幫助也沒有。輸出要指出病灶與修復方式。

不沿用既有的現況回報:它查的是環境與轉接檔數量,不驗這條鏈叫不叫得動。也不把測試檔打包給使用者跑:那些測試驗的是開發期的契約,不是安裝結果。

驗收標準

  • install 寫完轉接檔後自動執行驗證,結果併入輸出
  • 驗證實際取回一次流程正本,不只檢查檔案存在
  • 驗證比對各平台轉接檔存在且內容含正確的叫用行
  • 驗證結果逐平台回報 pass/fail
  • 任一平台驗證失敗時 install 回 ok:false
  • 驗證失敗時已寫的轉接檔仍然存在,不回滾
  • 驗證失敗時輸出指出病灶與修復方式
  • 驗證過程不發出任何網路請求
  • --dry-run 下不寫入轉接檔,也不因此誤報驗證失敗
  • 測試在臨時家目錄上涵蓋:全部通過、刻意破壞某平台轉接檔內容後該平台 fail 且整體 ok:false、失敗後轉接檔仍在
  • 不將 test/ 加入套件白名單

阻擋於

無,可立即開始

## 母議題 #56 — 補上六個指令走通後浮現的四個缺口 ## 要做出什麼 安裝完成等於驗過能用。目前 `tea-sdlc install` 跑完會回報寫了哪些轉接檔,但沒有人驗過那條鏈真的通:轉接檔 → PATH 上的 `tea-sdlc` → 流程正本。最脆弱的一環在中間——套件裝在某個 Node 版本底下,換個版本就找不到了,而轉接檔本身看起來完全正常。使用者要到第一次打 `/sdlc-plan` 才發現,那時他已經離開安裝的心智狀態很久了。 `install` 寫完轉接檔後自動驗一次真實的叫用鏈:實際取回一次流程正本、比對各平台轉接檔存在且內容含正確的叫用行,逐平台 pass/fail 併入輸出。任一平台不通就讓 `install` 回失敗——「要經過測試才算完成」要做實,不能只是一句期許。 驗證**完全不需要網路**:取正本是讀套件內的檔案,比對轉接檔是讀本機目錄。所以它無條件執行,不受 Gitea 登入或時間追蹤狀態影響。 **失敗不回滾**,保留已寫的轉接檔。回滾在升級情境下會造成淨損失:使用者原本有一組能用的舊轉接檔,覆蓋後驗證失敗,回滾把新的刪掉、舊的也已經沒了,他從「有點舊但能用」變成「什麼都沒有」。而且最可能的病灶是「PATH 上找不到 `tea-sdlc`」,那不是轉接檔的問題,刪掉它一點幫助也沒有。輸出要指出病灶與修復方式。 不沿用既有的現況回報:它查的是環境與轉接檔數量,不驗這條鏈叫不叫得動。也不把測試檔打包給使用者跑:那些測試驗的是開發期的契約,不是安裝結果。 ## 驗收標準 - [x] `install` 寫完轉接檔後自動執行驗證,結果併入輸出 - [x] 驗證實際取回一次流程正本,不只檢查檔案存在 - [x] 驗證比對各平台轉接檔存在且內容含正確的叫用行 - [x] 驗證結果逐平台回報 pass/fail - [x] 任一平台驗證失敗時 `install` 回 `ok:false` - [x] 驗證失敗時已寫的轉接檔仍然存在,不回滾 - [x] 驗證失敗時輸出指出病灶與修復方式 - [x] 驗證過程不發出任何網路請求 - [x] `--dry-run` 下不寫入轉接檔,也不因此誤報驗證失敗 - [x] 測試在臨時家目錄上涵蓋:全部通過、刻意破壞某平台轉接檔內容後該平台 fail 且整體 `ok:false`、失敗後轉接檔仍在 - [x] 不將 `test/` 加入套件白名單 ## 阻擋於 無,可立即開始
jiantw83 added the ready-for-agent label 2026-09-17 10:00:45 +00:00
admin closed this issue 2026-09-18 00:52:13 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/tea-sdlc#59