以 prompt 子指令供應流程正本 #27

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

母議題

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

要做出什麼

agent 讀到轉接檔之後,要有辦法拿到流程正本的原文。這張票交付那個管道:tea-sdlc prompt --name sdlc-plan 把對應的流程正本原樣印到 stdout。

目標以 --name 指定而非位置參數,因為既有的 flag 解析拒絕位置參數。

輸出是原樣 markdown,不包 JSON。這是全專案唯一輸出非 JSON 的子指令,例外的理由只有一個:它的輸出要餵給模型讀。把幾百行 markdown 包進單行 JSON、再逼模型反跳脫,只會增加它讀錯的機率;JSON envelope 的價值是可程式化判斷成敗,而這條路徑的成功就是內容本身。失敗仍走 JSON envelope + exit 1——成功是內容,失敗才需要結構。

prompts/ 目前是空的(六份流程正本由母議題 #1 底下的其他工作包產出),所以測試要能在不依賴真實正本的情況下驗完整路徑。做法是在測試暫存裡複製出一棵完整的假 plugin 根,從那裡啟動入口:既有的路徑回推機制會自然指向假根,不必為測試新增任何環境變數(那段回推明寫不依賴 cwd 也不依賴環境變數,不該為測試破它),並且順便把「plugin 目錄不完整」那條路徑一起測到。

驗收標準

  • tea-sdlc prompt --name <指令名> 原樣輸出流程正本、exit 0,輸出逐字等於正本檔案內容
  • 輸出不是 JSON,且允許多行
  • --name 指向不存在的指令時回 PROMPT_NOT_FOUND 的單行 JSON + exit 1
  • 未帶 --name 時沿用既有的 MISSING_FLAG + exit 1
  • 共用函式庫的進入點新增原樣輸出模式,既有的單行 JSON 行為與所有現存腳本的輸出不變
  • runBin() 新增原樣輸出的斷言,與單行 JSON 斷言並存且互不影響
  • 測試 helper 能在測試暫存裡建出完整的假 plugin 根並從該處啟動入口
  • 假 plugin 根缺少必要目錄時回既有的 PLUGIN_LAYOUT_BROKEN

阻擋於

  • #26 — 以 npm 安裝並建立 tea-sdlc 指令入口
## 母議題 #25 — 以 npm 佈署並提供 tea-sdlc 指令 ## 要做出什麼 agent 讀到轉接檔之後,要有辦法拿到流程正本的原文。這張票交付那個管道:`tea-sdlc prompt --name sdlc-plan` 把對應的流程正本原樣印到 stdout。 目標以 `--name` 指定而非位置參數,因為既有的 flag 解析拒絕位置參數。 輸出是**原樣 markdown**,不包 JSON。這是全專案唯一輸出非 JSON 的子指令,例外的理由只有一個:它的輸出要餵給模型讀。把幾百行 markdown 包進單行 JSON、再逼模型反跳脫,只會增加它讀錯的機率;JSON envelope 的價值是可程式化判斷成敗,而這條路徑的成功就是內容本身。失敗仍走 JSON envelope + exit 1——成功是內容,失敗才需要結構。 `prompts/` 目前是空的(六份流程正本由母議題 #1 底下的其他工作包產出),所以測試要能在不依賴真實正本的情況下驗完整路徑。做法是在測試暫存裡複製出一棵完整的假 plugin 根,從那裡啟動入口:既有的路徑回推機制會自然指向假根,不必為測試新增任何環境變數(那段回推明寫不依賴 cwd 也不依賴環境變數,不該為測試破它),並且順便把「plugin 目錄不完整」那條路徑一起測到。 ## 驗收標準 - [x] `tea-sdlc prompt --name <指令名>` 原樣輸出流程正本、exit 0,輸出逐字等於正本檔案內容 - [x] 輸出不是 JSON,且允許多行 - [x] `--name` 指向不存在的指令時回 `PROMPT_NOT_FOUND` 的單行 JSON + exit 1 - [x] 未帶 `--name` 時沿用既有的 `MISSING_FLAG` + exit 1 - [x] 共用函式庫的進入點新增原樣輸出模式,既有的單行 JSON 行為與所有現存腳本的輸出不變 - [x] `runBin()` 新增原樣輸出的斷言,與單行 JSON 斷言並存且互不影響 - [x] 測試 helper 能在測試暫存裡建出完整的假 plugin 根並從該處啟動入口 - [x] 假 plugin 根缺少必要目錄時回既有的 `PLUGIN_LAYOUT_BROKEN` ## 阻擋於 - #26 — 以 npm 安裝並建立 tea-sdlc 指令入口
jiantw83 added the ready-for-agent label 2026-09-17 06:00:34 +00:00
jiantw83 added a new dependency 2026-09-17 06:00:35 +00:00
jiantw83 added a new dependency 2026-09-17 06:00:35 +00:00
Author
Member

已於 #36(merge commit dcbd71c)交付。原樣輸出以 RawText 實作在 lib.main(),只有回傳它時才跳過 JSON envelope,其餘腳本輸出不變。

已於 #36(merge commit `dcbd71c`)交付。原樣輸出以 `RawText` 實作在 `lib.main()`,只有回傳它時才跳過 JSON envelope,其餘腳本輸出不變。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: plugins/tea-sdlc#27