以 status 子指令回報安裝與環境現況 #29

Closed
opened 2026-09-17 06:00:35 +00:00 by jiantw83 · 1 comment
Member

母議題

#25 — 以 npm 佈署並提供 tea-sdlc 指令

要做出什麼

使用者要能在出事前問一句「我現在到底是什麼狀態」。tea-sdlc status 用一行 JSON 回答四件事:裝的是哪個版本、正本實際解析到哪個目錄(順帶揭露是不是 npm link 開發模式)、node / git / tea 在不在 PATH、Gitea 登入還有沒有效。

登入那層要查,即使它會打網路:status 存在的理由就是在出事前先知道,而 token 失效是實務上最常見的故障;一次使用者主動發起的查詢很便宜,為它多開一個旗標是把判斷推回給使用者。

ok 與健康狀態必須分離。ok 在既有契約裡的意思是「這支指令跑成功了」,不兼差表達環境好壞:環境不健康時 ok 仍為 true,健康旗標是 data.healthy。混用會讓呼叫端分不出「status 掛了」和「status 成功查到你環境有問題」,而這兩件事的下一步完全不同。

各平台轉接檔現況(platforms)不在這張票:平台目錄結構的知識依模組邊界專屬於 #17 的安裝器,這裡不複製一份。

驗收標準

  • tea-sdlc status 輸出單行 JSON,data 含 version、root、linked、healthy、environment
  • environment 含 node、git、tea、login 四項
  • root 為入口實際解析到的套件目錄;npm link 情境下指向 working tree 且 linked 為 true
  • 缺少 git 或 tea 時對應欄位為 false,且 healthy 為 false
  • Gitea 登入失效時 ok 仍為 true、healthy 為 false
  • 登入檢查走既有的單一 HTTP 出口,測試以既有的 stub server 機制隔離
  • 缺少執行檔的情境以既有的 PATH 收斂 helper 精確造出
  • 不回報 platforms

阻擋於

  • #26 — 以 npm 安裝並建立 tea-sdlc 指令入口
## 母議題 #25 — 以 npm 佈署並提供 tea-sdlc 指令 ## 要做出什麼 使用者要能在出事前問一句「我現在到底是什麼狀態」。`tea-sdlc status` 用一行 JSON 回答四件事:裝的是哪個版本、正本實際解析到哪個目錄(順帶揭露是不是 `npm link` 開發模式)、`node` / `git` / `tea` 在不在 PATH、Gitea 登入還有沒有效。 登入那層要查,即使它會打網路:`status` 存在的理由就是在出事前先知道,而 token 失效是實務上最常見的故障;一次使用者主動發起的查詢很便宜,為它多開一個旗標是把判斷推回給使用者。 `ok` 與健康狀態必須分離。`ok` 在既有契約裡的意思是「這支指令跑成功了」,不兼差表達環境好壞:環境不健康時 `ok` 仍為 `true`,健康旗標是 `data.healthy`。混用會讓呼叫端分不出「status 掛了」和「status 成功查到你環境有問題」,而這兩件事的下一步完全不同。 各平台轉接檔現況(`platforms`)**不在這張票**:平台目錄結構的知識依模組邊界專屬於 #17 的安裝器,這裡不複製一份。 ## 驗收標準 - [x] `tea-sdlc status` 輸出單行 JSON,`data` 含 version、root、linked、healthy、environment - [x] `environment` 含 node、git、tea、login 四項 - [x] `root` 為入口實際解析到的套件目錄;`npm link` 情境下指向 working tree 且 `linked` 為 `true` - [x] 缺少 `git` 或 `tea` 時對應欄位為 false,且 `healthy` 為 false - [x] Gitea 登入失效時 `ok` 仍為 `true`、`healthy` 為 `false` - [x] 登入檢查走既有的單一 HTTP 出口,測試以既有的 stub server 機制隔離 - [x] 缺少執行檔的情境以既有的 PATH 收斂 helper 精確造出 - [ ] 不回報 `platforms` ## 阻擋於 - #26 — 以 npm 安裝並建立 tea-sdlc 指令入口
jiantw83 added the ready-for-agent label 2026-09-17 06:00:35 +00:00
jiantw83 added a new dependency 2026-09-17 06:00:36 +00:00
jiantw83 added a new dependency 2026-09-17 06:00:36 +00:00
Author
Member

已於 #36(merge commit dcbd71c)交付,八條驗收標準勾了七條。

未勾選:「不回報 platforms」。 這條與 #17 的「補上 tea-sdlc status 的 platforms 欄位」直接衝突。兩張票在同一輪一起交付,因此以 #17 為準,status 有回報 platforms。

本票原本的理由(平台目錄結構的知識專屬於 #17 的安裝器,這裡不複製一份)仍然成立且有被遵守:platforms 的內容由 scripts/install.js 匯出的 platformReport() 產生,scripts/status.js 不知道任何平台目錄結構。

已於 #36(merge commit `dcbd71c`)交付,八條驗收標準勾了七條。 **未勾選:「不回報 `platforms`」。** 這條與 #17 的「補上 `tea-sdlc status` 的 `platforms` 欄位」直接衝突。兩張票在同一輪一起交付,因此以 #17 為準,`status` 有回報 `platforms`。 本票原本的理由(平台目錄結構的知識專屬於 #17 的安裝器,這裡不複製一份)仍然成立且有被遵守:`platforms` 的內容由 `scripts/install.js` 匯出的 `platformReport()` 產生,`scripts/status.js` 不知道任何平台目錄結構。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: plugins/tea-sdlc#29