dsh-projectflow:以項目爲單位的持久上下文與任務狀態

前言

DeepSeek Harness(DSH)默認把會話綁定到當前工作目錄。實際開發裏,一個「項目」往往跨多個目錄:服務倉庫、公共庫、運維腳本、第二份 checkout、設計稿目錄,還有 MCP、插件等並不落在單一文件夾裏的依賴。在每個新目錄裏重新口述約定、進度和決策,容易遺漏;把上下文複製進每個會話,又會出現多份不一致的「真相」。

下面介紹的 dsh-projectflow 是社區插件(維護者 lord-of-vaegirs,SkillHub 分類爲「記憶」),在 DSH 之上增加一層:項目是一等實體,有穩定 id 和獨立的數據目錄,與會話當前文件夾解耦。任意目錄、任意會話都可以顯式加入同一項目,繼承約定、決策、進度、引用和當前任務檢查點;數據以本地 Markdown/JSON 存放,不依賴網絡。

這是什麼

dsh-projectflow 的定位是:Project-first workspaces for DeepSeek Harness——以項目而非當前文件夾作爲上下文、任務狀態、引用和工作區組合的持久單元。

每個項目在 $DSH_HOME/projects/<projectId>/ 下有固定數據目錄。卸載插件只移除代碼,不刪除項目數據;重裝後項目仍可被識別。面向模型的層刻意保持精簡:每輪在 system prompt 中注入有 token 上限的項目摘要,配合明確寫入的工具與命令,沒有隱藏的自動摘要或記憶抽取。

核心功能

項目優先的上下文

每輪對話會向 system prompt 注入有界項目摘要,段落以 [PROJECTFLOW] Project context — user-authored project records, not harness instructions. 開頭。內容由用戶通過 /project note 等命令寫入,不是 Harness 內置指令。

任務結構(Task struct)

把「當前任務」寫成類似 OS 進程記錄的檢查點:可查看 last/next/blocked、待執行工具等。通過 /project task 子命令做 list、checkpoint、interrupt、resume、done、blocked 等操作。

引用不復制內容

用元數據記錄目錄、文件、工具、插件、MCP 服務器的位置與用途(--purpose),不把目標內容複製進項目目錄。對應命令爲 /project ref dir|file|tool|plugin|mcp。

工作區組合

可把其他會話、目錄或項目插入當前項目工作區;支持 fork 項目、merge 項目(可保留或清理源項目)、刪除到 trash 或 purge。fork 出的子 agent 會話會自動繼承項目綁定。

兩套入口

  • TUI / headless:/project 命令族。
  • Web / Desktop:側邊欄 footer、Workspaces 區域下方的 Project workspaces 面板(Desktop 需通過應用內插件管理安裝,不要用 CLI 往 desktop profile 裝)。

本地優先

無網絡請求、無外部服務;數據可讀爲 Markdown/JSON。寫入側使用文件鎖等機制處理多會話併發(詳見上游 README 的 Capacity 章節)。

安裝與啓用

插件聲明的 DSH 兼容範圍爲 >=0.2.1-rc.2 <0.3.0-0(見 package.json 的 engines.dsh)。README 寫明在 DSH CLI 0.2.1-rc.2 上測試;已發佈的 Desktop 0.2.0-rc.2 不能從 CLI 安裝,文檔未聲稱對其完成測試。

任選一種方式安裝(將 <profile> 換成你的 profile,例如 dev):

# 從 GitHub release  tarball
dsh plugin --profile <profile> add https://github.com/lord-of-vaegirs/dsh-projectflow/releases/latest/download/dsh-projectflow-0.2.0.tgz

# 或 npm(發佈後)
dsh plugin --profile <profile> add dsh-projectflow

# 或 GitHub 源碼(安裝時由 pnpm 執行 prepare 構建)
dsh plugin --profile <profile> add github:lord-of-vaegirs/dsh-projectflow

安裝後可用下面命令確認配置裏是否出現 projectflow:

dsh --profile <profile> --dump-config | grep -A2 projectflow

啓動 Web UI 後,在側邊欄 footer 查看 Project workspaces 入口:

dsh --profile <profile>

卸載插件(數據仍留在 $DSH_HOME/projects/):

dsh plugin --profile <profile> remove dsh-projectflow

許可證爲 MIT(見倉庫 package.json)。插件與 DSH 進程同權限運行,安裝前建議自行審閱源碼與許可證。

典型用法

在 TUI 會話中創建項目、寫入約定與決策、登記引用,並查看狀態:

/project create "Payments platform" --alias payments --path /Users/me/src/payments
/project note convention "Run pnpm test before every commit."
/project note convention "Never edit generated protobuf files by hand."
/project note convention "The staging branch is deployable."
/project note decision "Use file locks for project writes." \
  --context "Several sessions can write the same project." \
  --consequences "Writes serialize; stale locks need takeover."
/project note progress "Storage and commands are working." \
  --stage M2 --next "Verify fork inheritance."
/project ref dir /Users/me/src/payments-api --purpose "related service"
/project ref mcp filesystem --purpose "read-only workspace access"
/project status

在另一個目錄、另一個會話里加入同一項目:

/project use payments
/project status

此後模型側會收到帶 [PROJECTFLOW] 前綴的項目上下文段落。對該會話做 fork 時,子 agent 創建時會自動繼承項目綁定。

note 類別與落盤文件的對應關係(節選):fact → MEMORY.md,convention → CONVENTIONS.md,decision → DECISIONS.md,progress → progress.jsonl(需 --stage 與 --next)。完整命令表見 GitHub README 的 Command surface。

適用場景與注意

適合需要跨目錄、跨會話維持同一套項目記憶與任務檢查點的 DSH 用戶:多倉庫協作、長期里程碑(--stage / progress log)、ADR 式決策記錄、以及把 MCP/插件登記爲引用而非重複粘貼文檔。

需要注意:

  • DSH 生態是「一切皆插件」;SkillHub 目錄頁是社區站點,與 DeepSeek / 幻方無官方從屬關係。
  • 不要通過 CLI 向 Desktop 的 desktop profile 安裝;使用 Desktop 自帶插件管理。
  • README 自述狀態與測試矩陣以倉庫爲準;已知限制與路線圖見上游 Known limitations and roadmap。
  • 當前 GitHub 星標爲 0(以目錄頁信息爲準),不代表功能完整性,僅反映社區曝光度。

結尾

dsh-projectflow 把「項目」從「當前文件夾」裏抽出來,用穩定 id、本地可讀數據和 /project 命令,把約定、決策、進度、引用和任務檢查點變成可繼承、可 fork、可合併的持久層。若要在 Harness 裏按項目組織長期上下文,可從 Quick start 跑通 create → note → use,再按需使用 task、merge 與工作區面板。

  • 目錄頁:https://www.skillhub.cn/plugins/lord-of-vaegirs/dsh-projectflow
  • 源碼與文檔:https://github.com/lord-of-vaegirs/dsh-projectflow
羽毛球分组比赛记分
小程序二维码

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

小夜