dsh-openspec-pipeline:把 OpenSpec 變更排成流水線按圖執行

前言

在 DeepSeek Harness(DSH)裏用 OpenSpec 管多個 change 時,常見做法是逐個開對話、自己記誰先誰後。依賴一多,容易漏跑、重複開跑,或某一格卡在「沒歸檔」卻已經把下游拉起來。下面介紹社區插件 dsh-openspec-pipeline(維護者 heibaoxia,分類:工作流):用一張圖畫出 change 之間的先後與並行關係,在面板選定的工作區裏按圖新建頂層對話執行;進度與規劃狀態交給 openspec CLI,卡住時可用面板上的「歸檔」走 validate --strict 再人工決定是否歸檔。

這是什麼

dsh-openspec-pipeline 是 DSH 上的 OpenSpec 變更流水線插件。一張流水線對應倉庫裏的 openspec/pipeline.json,每個節點綁定一個 change;按依賴順序(或並行)在當前面板所選工作區裏開普通頂層對話,默認首句爲 執行 <change> Change,具體驗收與歸檔口徑寫在節點的「附加提示詞」裏。

插件不做 AI 驗收、也不替代 settle:節點「完成」的判定是這一輪對話正常收尾,且 change 目錄已從 openspec/changes/ 進入 archive/(只查目錄,不替 OpenSpec 做質量判斷)。任務進度優先讀 openspec list --json;規劃進度(proposal / specs / design / tasks)讀 openspec status --all --json,避免「只有 proposal」與「四件套只差 tasks」在列表裏都被標成 no-tasks 而分不清。

核心功能

畫布與持久化

面板由頂欄、全寬畫布、未歸檔 change 列表組成。從列表單擊加入節點,從節點右側連到「開工」或上游節點表示依賴;改位置、連線、斷開、節點設置都會自動寫入 openspec/pipeline.json(無單獨「保存」按鈕)。0.12.0 起高頻拖動約 350ms 防抖落盤;開跑、歸檔、切工作區前會等寫入完成。

按圖開跑與歸檔門禁

點「開始」後 runner 按圖推進:前置完成或 change 已歸檔則放行下一格。對話結束後若 change 仍在 changes/,節點記「等你」,下游不動;0.9.2 起 runner 每秒查看 archive/,手動或對話內歸檔後約一秒內自動記「完成」並繼續,無需再點「開始」。

0.18.0 起開跑前多一道閘:沒有任務清單或規劃未寫完(isPlanningComplete 爲假)的格子不進對話,記「等你 · 等寫好」,寫完自動放行。已歸檔或倉庫裏找不到的 change 可用畫布右上角「清理 N」一次刪掉。

進度與卡住時的「歸檔」

  • 任務:openspec list --json 提供 completedTasks / totalTasks / status;CLI 不可用時會退回數 tasks.md,頂欄會說明原因。
  • 規劃:面板顯示如「規劃 2/4」,懸停可看缺哪些產物與 nextSteps 原文。
  • 歸檔按鈕(對話已停且 change 仍在 changes/):先 openspec validate <change> --strict 展示問題,人點「仍然歸檔」才執行 openspec archive <change> -y。驗證失敗不會自動放行;這與 0.8 移除的帶 AI 判斷的 settle 不同。

節點可勾選「歸檔之後自動提交」:進入 archive/ 後 Host 在工作區執行 git add -A 與 git commit(信息 openspec: <change>);提交失敗則本格仍停「等你」。

工作區與並行

0.12.0 起工作區按面板計:每個面板各看一個含 openspec/ 的倉庫、各有獨立 runner;A 在跑時可切到 B 看 B 的圖,切回 A 仍在跑。頂欄 ⋯ 可設並行上限、跑到哪停、默認組合(對話模式 / 運營商 / 模型 / 強度 / 附加提示詞)等。

監工與失敗(0.19.0)

runner 失敗或 15 分鐘無進展會投值班單;revive 可接回原對話或 fresh: true 換新對話,peek 只讀,supervisor.pending 保留未處理失敗並按節奏補投。

權限與日誌

package.json 中 disclosure 說明:主要讀寫所選倉庫的 openspec/ 與插件設置、spawn openspec CLI、通過 sessionController 新建對話;網絡與雲端披露爲無額外上報業務數據。Host 日誌路徑示例:

<DSH_PROFILE_DIR>/openspec-pipeline.log

客戶端異常經 POST /openspec-pipeline/api/client-log 上報。插件要求 Node >=20,許可證 MIT。

安裝與啓用

桌面端:側欄「插件」→「添加插件」,粘貼:

https://github.com/heibaoxia/dsh-openspec-pipeline

Web / CLI:

dsh plugin --profile web add github:heibaoxia/dsh-openspec-pipeline

裝完重啓 DSH(桌面端重啓應用;CLI 重跑 dsh web),刷新後面板頂欄出現版本號(資料中當前爲 v0.19.0)即表示加載成功。

前置條件(缺失不會導致崩潰,但功能會降級):

  • 目標倉庫已有 openspec/(例如 openspec init);
  • openspec 在 PATH 上,供 list / status / validate / archive 使用。

插件以當前 DSH 進程權限運行;安裝前建議閱讀倉庫源碼與 MIT 許可證,確認符合你的安全與合規要求。

典型用法

經過上面的安裝與重啓,可按 README 中的起步順序操作:

  1. 面板頂部選擇工作區(須含 openspec/)。
  2. 在列表中單擊 change,加入畫布(孤立節點,不自動連線)。
  3. 從節點拖到「開工」或上游節點,建立依賴。
  4. 按需雙擊節點:設組合、模型、附加提示詞(驗收、測試、歸檔步驟建議寫在這裏;不寫則對話結束後可能一直停在「等你」直到手動點「歸檔」或在對話裏補歸檔)。
  5. 點「開始」整批跑,或右鍵節點在滿足前置條件時「啓動」單格。

同一段附加提示詞可存爲「組合」,新節點套用默認組合以減少重複設置。提示詞保存在 openspec/pipeline.json,不進上述 Host 日誌。

適用場景與注意

適合:已在倉庫使用 OpenSpec、需要按依賴或有限並行批量驅動多個 change、希望進度與 OpenSpec CLI 口徑一致、並願意在提示詞裏自己定義每格驗收與歸檔方式的 DSH 用戶。

注意:

  • 流水線不替你做規範質量判斷;validate --strict 也管不了「只有 WHEN 或只有 THEN」的單邊 scenario(README v1.13.2 實測表)。
  • 對話 abort / error 標「失敗」,下游不開。
  • 桌面端若因插件客戶端半身拋錯導致 web boot 失敗,可按 README「桌面端起不來時的恢復」從 profile 的 dsh.profile.bundles 暫時移除 bundle 並查日誌。
  • 社區目錄 skillhub.cn 與 GitHub 倉庫由維護者發佈,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,安裝來源以你自行覈驗的倉庫爲準。

結尾

dsh-openspec-pipeline 把多個 OpenSpec change 收成一張可持久化的依賴圖,在選定工作區按序或並行開對話,用目錄級歸檔門禁和 CLI 進度對齊 OpenSpec 工作流;卡住時用 strict 校驗加人工確認歸檔,而不是插件側 AI 驗收。

  • 目錄頁:https://www.skillhub.cn/plugins/heibaoxia/dsh-openspec-pipeline
  • 源碼與完整說明:https://github.com/heibaoxia/dsh-openspec-pipeline
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜