以 prompt 子指令供應流程正本 #27
Notifications
Due Date
No due date set.
Blocks
Depends on
#28 以轉接檔版本比對提示重跑佈署
plugins/tea-sdlc
#26 以 npm 安裝並建立 tea-sdlc 指令入口
plugins/tea-sdlc
Reference: plugins/tea-sdlc#27
Reference in New Issue
Block a user
母議題
#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,輸出逐字等於正本檔案內容--name指向不存在的指令時回PROMPT_NOT_FOUND的單行 JSON + exit 1--name時沿用既有的MISSING_FLAG+ exit 1runBin()新增原樣輸出的斷言,與單行 JSON 斷言並存且互不影響PLUGIN_LAYOUT_BROKEN阻擋於
已於 #36(merge commit
dcbd71c)交付。原樣輸出以RawText實作在lib.main(),只有回傳它時才跳過 JSON envelope,其餘腳本輸出不變。