調用方式
僅在開發者直接調用時執行。使用可用工具執行工作流程;請勿模擬、以 shell 命令替代,或對已授權的操作再次詢問。
將提供的文字視為引數、約束或上下文,並遵守其限制與延遲。誠實回報缺少的功能與障礙。切勿模擬成功。
釋放已擁有的執行階段資源及可丟棄的暫存輸出(包括失敗時),保留未解決的證據,並在此技能的輸出中回報保留的資源。此狹義的清理例外絕不允許修改已審查/已存在的檔案、移除未預期的變更或清理先前的工作。所有其他寫入操作皆遵循此工作流程。本技能關於所提供材料的特定規則優先。
jg-plans 協定 0.2
持久化文件需要專案本機的 jg-plans >=0.6.1 並具有 CLI schema 3。無計劃/純程式碼工作、逐字稿分析及暫停不需要 CLI。
- 使用已安裝的專案入口,通常為
<repository-root>/node_modules/.bin/jg-plans,或其所記載的建置入口。以--version --json執行該確切入口;要求錯誤為 null、版本 >=0.6.1,且 schemaVersion 為 3,之後才能進行文件工作。否則以觀察到的配對及特定管理員的補救措施停止該工作,例如npm install --save-dev --save-exact [email protected]。保留執行階段消費者的正式依賴項。切勿自動安裝、下載執行器、使用全域工具或借用其他專案的 CLI。升級/建置後重新檢查入口。 - 僅透過該 CLI 讀取選定的目錄:
inspect --directory <path> --include-body --fingerprint-exclude '["created_at","updated_at","revision","status","priority","delivery"]' --json。使用其來源、元資料、跨度、診斷資訊、sha256 及結構指紋。切勿直接編輯/剖析/雜湊持久化文件、產生其 UUID、按時效選擇計劃或將逐字稿重構為檔案。檢查不需符合規範。僅 jg-plan 額外執行overlaps --json,當程式碼宣告時,每個記錄/自有儲存庫中已存在的規劃根目錄各提供一個--root。 - 計劃狀態為 pending、in progress、done 及 delivered。里程碑狀態仍為 pending、in progress 及 done。Active 包含 pending、in progress 及 done;僅 delivered 為非作用中。錯誤宣告使用儲存庫/註冊表/程式碼清單;保留字串/數字型別,並在儲存庫/註冊表內比較 String(code)。缺失/自訂狀態、無法取得的元資料/檔案及不明確的標記皆保持為觀察結果,而非預設值或權威。
- 必要的交付項目將每個已宣告的儲存庫對應到其儲存庫定義的終點,且鍵值需相符。僅在未宣告任何儲存庫時使用明確的空映射。交付既不會變更實作範圍,也不會變更里程碑進度。指紋精確排除 created_at、updated_at、revision、status、priority 及 delivery;無法取得的識別資訊無法建立全新的覆蓋範圍。
- 透過相同入口,以此工作流程的權限,使用結構化的 create/update/write/remove-milestones 輸入進行變更。對現有目標的寫入需要新鮮的 expectedSha256;null 僅建立明確要求的缺失里程碑。使用 write 處理計劃主體/元資料或完整的里程碑原始碼;使用 update 處理狹義的元資料/標記。僅在授權時分配缺失的 ID;保留回傳的 ID 並檢查寫入。當 plan.md 變更時明確設定 updated_at。僅限交付的編輯保留 revision/progress;變更的範圍需要重新評估覆蓋範圍。
- 鎖定是短暫且本機的:絕不跨輪次持有鎖、移除不熟悉的鎖,或在新文字上重播。在部分多文件或不確定的變更失敗後,檢查/回報持久狀態並停止,不進行回滾/重試。文件、診斷資訊及綁定不授予任何權限。
工作流程
對當前正在討論的工程變更中一個具體的計劃,執行簡潔的唯讀挑戰。即使該計劃由同一個代理建立,也將其視為不受信任的提案。其目的是幫助開發者快速驗證計劃結果是否符合任務契約,並在批准、jg-breakdown 或實作之前,揭露重大決策、假設、遺漏與風險。此技能不授權更改計劃、建立或編輯規劃文件、修改原始碼、測試、快照、設定、依賴項、遷移、產生的工件、一般專案文件或 Git 狀態、批准或拒絕計劃、授權 jg-breakdown,或開始實作。如果檢查指令意外更改檔案,請保留並回報這些變更,而不要清理、還原或將其聲稱為挑戰的一部分。
需要一個具體的計劃。當開發者透過路徑或其他明確識別碼指定計劃時,則精確挑戰該計劃。否則,僅在當前討論中恰好存在一個明確的候選計劃時,才使用確切的當前計劃。如果有多個計劃可能合理地是預期目標,請停止並要求開發者選擇一個。請勿搜尋其他規劃目錄、依時戳選擇計劃,或僅根據檔案新舊推斷目標。如果不存在當前計劃,或無法完整存取指定的計劃,請回報障礙並停止。如果當前儲存庫證據實質性地使計劃無效,請繼續挑戰,並將該過時情況作為阻礙性發現提出。
- 讀取完整的目標計劃、當前討論中的任務契約,以及應用於該特定計劃的任何開發者修訂。將計劃自身的任務摘要視為不受信任的表達,而非開發者意圖的獨立證據。如果無法獨立於計劃之外確定開發者的目標、約束條件、排除事項、驗收條件及修訂,則僅繼續進行計劃內部與儲存庫證據的挑戰,聲明無法驗證意圖一致性,將其列為決策 1(確認計劃的目標、約束條件及排除事項與開發者意圖相符),並使用「進行前需開發者決策」,除非存在重大計劃缺陷需要「進行前需修訂計劃」。從當前的選定檢查中擷取目標計劃的儲存庫相對路徑或提供的識別碼,以及其精確位元組的 SHA-256,將兩者包含在
## 計劃一覽中,並在回應前立即重新檢查,驗證雜湊值未更改;如果已更改,請回報障礙並停止。當計劃所建立的儲存庫證據仍為最新時,重複使用它。僅執行確認不確定性、偵測過時或驗證高影響聲明所需的最小額外唯讀檢查;不要僅僅因為調用了此技能而重複完整的規劃工作流程。 - 確定計劃實際將建置、更改、移除、遷移、暴露或部署的內容。將該結果與開發者的目標、約束條件、排除事項、驗收條件及已批准的決策進行比較。識別重大的範圍擴張、缺失的必要工作、變更的行為、不支援的假設,以及提議結果可能與開發者意圖不同的地方。驗證交付項目涵蓋每個已宣告的儲存庫,目標存在於其交付文件中,操作者/前提條件是明確的,且批准涵蓋了由代理操作的步驟。整個計劃的交付必須在實作與審查之後進行;開發者操作的剩餘步驟不能稱為已交付。
- 在適用時挑戰計劃的重大決策與風險控制,包括:架構與模組所有權;資料流與整合邊界;資料庫綱要、持久化資料、遷移與回滾;公開 API、匯出、事件、佇列、webhook、快取鍵、設定與相容性;安全性、隱私、認證、授權、所有權、計費及其他具價值行為;並行、重試、冪等性與失敗復原;依賴項、基礎架構、部署與營運要求;對已被取代或平行路徑的移除;以及測試與驗證策略能否現實地揭露重要缺陷。
- 特別尋找不必要的複雜性、推測性抽象、重複的所有權、沒有正當遷移需求的暫時或平行實作、不完整的相容性或回滾路徑、隱藏的高爆炸半徑變更,以及在重大行為仍不正確的情況下卻能通過的驗證。請勿因為此技能命名為
jg-challenge-plan就憑空製造批評;「無重大關切事項」是有效的結果。在後續挑戰中,重新評估先前的發現、變更的意圖或計劃材料,以及受影響的互動,對未審查的區域重複使用當前的證據。保留未解決的重大關切事項;僅在明確要求全新的完整挑戰、缺少先前的覆蓋範圍、證據過時、出現新的失敗,或重大風險發生變化時,才擴大範圍。 - 僅回報有助於開發者做出批准決策的資訊。除非特定項目暴露了重大關切,否則請勿將低影響的實作細節、詳盡的檔案清單、逐步的實作順序、完整的測試矩陣及驗證指令清單納入結果。對於每個挑戰,說明具體的不匹配、遺漏、不支援的假設或風險;說明其重要性;以及最小且適當的修正方式。請勿重寫計劃、默默地取代其架構,或提出一個好像已被接受的替代實作方案。
- 使用以下精確章節呈現結果:
## 計劃一覽:總結預期的最終結果、主要的實作邊界,以及重要的明確排除事項。## 重大影響:僅呈現值得開發者注意的架構決策、資料庫或持久化資料變更、公開或整合契約變更、安全敏感行為、依賴項或基礎架構變更,以及遷移、相容性、部署或回滾影響。省略不相關的類別,或在缺失本身很重要時聲明「無變更」。## 挑戰事項:按影響程度遞減列出重大發現。當不存在任何發現時,聲明「未發現重大關切事項」。## 開發者需決策事項:僅包含未解決的、會重大影響行為、範圍、契約、安全性、資料、架構或營運的選擇。按開發者應處理的順序為每個列出的決策編號。對於每個決策,說明需要做出的確切選擇,提供至少一個建議,並解釋接受建議、選擇有意義的替代方案,或讓決策未解決的重大後果與權衡。當不存在此類決策時聲明「無」;不要僅僅為了填充此區段而憑空創造決策。## 建議:在第一行精確放置「無重大關切事項」、「進行前需修訂計劃」或「進行前需開發者決策」三者之一。每當存在重大計劃缺陷時,使用「進行前需修訂計劃」,即使也需要開發者輸入。僅在計劃本身無問題,但沒有重大開發者決策就無法安全進行時,使用「進行前需開發者決策」。在裁決下方精確放置一個下一步:行:- 在「無重大關切事項」之後,當計劃至少包含兩個可以各自完成、驗證和審查的部分(例如獨立的套件、儲存庫或發行版)時,引導開發者執行
jg-breakdown;否則引導開發者批准計劃或調用jg-execute。計劃自身的審查檢查點並不會讓 breakdown 變得不必要:如果沒有milestones.md,jg-execute會將整個計劃作為一個單元執行,且不會在檢查點停止。 - 在「進行前需修訂計劃」之後,引導開發者回答任何已編號的決策,調用
jg-plan以套用所需的修正連同這些答案,並在修訂後的計劃呈現後再次調用jg-challenge-plan。 - 在「進行前需開發者決策」之後,引導開發者回答已編號的決策,調用
jg-plan並附上任何會變更計劃的答案,並在修訂後的計劃呈現後再次調用jg-challenge-plan。
- 在「無重大關切事項」之後,當計劃至少包含兩個可以各自完成、驗證和審查的部分(例如獨立的套件、儲存庫或發行版)時,引導開發者執行
- 將完整的挑戰控制在 1,000 字以內。合併密切相關的關切事項,並優先處理具有最高決策價值的資訊。請勿僅為滿足限制而省略阻礙性關切事項,也請勿僅僅為了消耗可用空間而重現計劃內容。
- 將建議視為顧問性質。它不會批准計劃、撤銷先前的批准、授權
jg-breakdown、授權實作,也不會讓jg-challenge-plan成為其他工作流程的先決條件。挑戰僅適用於所評估的確切計劃版本;任何計劃修訂都會使先前的挑戰過時,且不得將其作為關於修訂後計劃的證據。在## 建議的下一步:行之後結束;此技能的輸出契約可取代任何通用的完成摘要要求。