DSH Taskify:在 DSH Web 中固定任務範圍與硬約束

前言

DSH 的插件生態強調「一切皆插件」。在 DSH Web 中運行 Coding Agent 類任務時,開頭寫下的範圍與限制可能隨着輪次增加而被弱化或忽略。Taskify 是一個 DSH Web 插件,目標是不修改 composer 中的原始 Prompt,把“這次只做什麼”和“哪些不能動”作爲持續邊界帶入後續輪次。

下面介紹 GearVoid/dsh-taskify 的定位、核心機制、安裝方式和注意事項。

這是什麼

dsh-taskify 是一個 DSH Web 插件,用於爲當前 Session 建立任務邊界:

  • 用 Focus 固定當前任務的執行範圍;一個 Session 最多一個 Focus。
  • 用 Persistent Anchors 保留用戶明確說出的硬約束;一個 Session 可以有多個 Anchors。
  • 不改寫 composer 中的原始 Prompt,也不替用戶自動發送。
  • 項目位於 GitHub 倉庫 GearVoid/dsh-taskify,許可證爲 MIT。

核心機制

Focus:固定本次最多做到哪裏

Focus 回答的問題是:“這次最多做到哪裏?”

  • 可以由用戶手寫,也可以來自 AI 建議。
  • AI 給出的 Focus suggestion 只是草稿,必須由用戶確認後才成爲當前 Session 的 Focus。
  • 用戶可以對 Focus 執行 Set、Edit、Pause、Resume 或 Clear。

Persistent Anchors:保留明確硬約束

Persistent Anchors 回答的問題是:“哪些東西不能變?”

  • Anchors 從當前 Prompt 或草稿中提取用戶明確說出的硬約束。
  • 每個 Anchor 必須帶有來自當前草稿的 exact evidence。
  • 偏好或弱化表達不會升級成硬約束;anchors: [] 是合法成功結果。
  • 用戶可以對單個 Anchor 執行 Pause、Resume、Remove,也可以 Clear All。

提取保護

  • Literal Lock:保護代碼塊、行內代碼、路徑、URL、IP/端口、版本、CLI 和常見標識符。
  • Provenance:evidence 必須是當前草稿的精確子串。
  • Concrete Claim Guard:防止 Anchor 憑空加入新路徑、URL、CLI、版本或明顯代碼標識符。

狀態與後續輪次

  • Host 是權威狀態;Client 只是可丟棄快照緩存。
  • Revision/CAS 會拒絕過期寫入。
  • Durable replay:當 DSH persistence provider 確認 flush 時,狀態可通過已知事件重放恢復;失敗或不可確認時會明確降級。
  • Session isolation:狀態按精確 session id 隔離;新 Session 和 fork 默認不繼承 Focus 或 Anchors。
  • 後續輪次通過 DSH 官方 systemPrompt.context 獲得 active Focus 與 active Anchors;paused 項不會進入上下文。

安裝與更新

使用 Web profile 安裝指定版本:

dsh plugin --profile web add github:GearVoid/dsh-taskify#v0.4.1

執行完成後啓動 Web:

dsh web

已列出的兼容環境如下:

  • DeepSeek Harness 啓動器:0.1.2-rc.1
  • DSH 核心插件 API:0.1.2-rc.1
  • DSH Web Client API:0.1.2-rc.1
  • Node.js:^22.19.0 || >=24.0.0
  • pnpm:11.x(本倉庫使用 11.19.0

典型用法

先寫原始任務,再點擊 Taskify,確認邊界,最後發送原始 Prompt。

1、在 composer 中寫原始任務。
2、點擊 Taskify,讓插件建議 Focus 並提取 Anchors。
3、對 Focus 做確認、編輯或忽略;檢查 Anchors。
4、發送原始 Prompt。
5、後續輪次中,active Focus 與 active Anchors 持續進入上下文。

示例輸入:

把 dashboard 卡片佈局改得更緊湊、整齊一點,後端別動,不要新增依賴,也別順手改其他功能

生成結果可以是:

Focus
調整 dashboard 卡片佈局,使其更緊湊、整齊

Anchors
不修改後端
不新增依賴
不處理其他功能

這裏的原始 Prompt 保持不變。

適用場景與注意

適合在多輪任務中持續保留“範圍”和“硬約束”的場景,例如只調整某個模塊、不動後端、不新增依賴、不擴展到鄰近功能。

需要注意以下邊界:

  • Taskify 是持續的 model guidance,不是 sandbox、policy engine 或機械攔截層。
  • 當前不包含文件寫入攔截、依賴安裝攔截、自動 rollback、Git baseline、semantic diff audit、native /goal replacement、watchState/polling/WebSocket、多 Client 即時同步、自動任務完成判斷。
  • Focus suggestion 不自動生效;只有用戶確認後纔會成爲當前 Session 的 Focus。
  • Anchors 只提取明確約束,不會把偏好或弱化表達升級成硬規則。
  • 修改尚未發送的草稿只會使 pending/armed request 失效,不會刪除 active Focus 或 Anchors。
  • 新 Session 和 fork 默認不繼承 Focus 或 Anchors。
  • 插件以當前 dsh 進程權限運行。安裝前應檢查源碼與許可證。
  • DSH 仍處於 Developer Preview,未來版本可能帶來兼容性變化。

參考

  • GitHub:https://github.com/GearVoid/dsh-taskify
  • 目錄頁(來自插件線索,未在當前抓取資料中逐項覈實):https://www.skillhub.cn/plugins/GearVoid/dsh-taskify
羽毛球分组比赛记分
小程序二维码

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

小夜