dsh-project-deck:把倉庫和半成品項目掛成一塊看得見進度的甲板

前言

用 DeepSeek Harness(DSH)做開發久了,手邊通常不止一個活:幾個正在改的倉庫、幾個開了頭沒下文的半成品、一堆散在不同工作區的會話。會話記錄躺在各自的工作區裏,項目的當前狀態和下一步要靠腦子記,或者靠翻目錄、翻 git log 自己拼。看板類工具要麼偏重流程管理、要麼不貼合本地倉庫和 DSH 會話,定時彙報基本要自己寫腳本湊。

下面介紹 peng456 維護的社區插件 dsh-project-deck,它把「項目註冊表 + 可視化面板 + 定時微信播報 + 自動發現 + 多機掃描」這幾件事打包到一個插件裏:先把倉庫或目錄登記進來,再讓面板和定時播報替你盯着進度。

這是什麼

dsh-project-deck 是一個面向 DSH 的項目管理插件,npm 包名爲 dsh-project-deck,當前版本 0.1.8,作者 peng456,許可證 MIT,plugin 元數據裏聲明 engines.node >= 22.15。它解決的是「倉庫、半成品和散在各處的會話沒有統一視圖」的問題,README 裏把它概括爲把倉庫、目錄和半途項目變成一塊看得見進度的甲板。

它由兩部分組成:

1、一個在本地運行的後端,提供 deck 命令行、Web 面板和定時器;
2、一個掛進 DSH 的前端插件,在桌面端左下角放一個 📋 入口,點開就是面板。

核心功能

README 把能力分成四塊,下面逐條說明。

1、項目註冊表。用 deck add <id> --root <path> 登記一個項目,可以帶別名、類型、優先級和下一步說明,之後用 deck list、deck status、deck doctor 查看整體狀態。

2、可視化面板。每個項目一張卡片,顯示 git 狀態、最近活動、下一步;點項目標題可以跳到它最近的 DSH 會話。面板入口可以拖到頁面任意位置,位置會被記住。

3、定時播報。默認每 4 小時推一條微信消息(文字 + 看板圖),有變化的項目排在前面並展開,沒變化的摺疊成一行;每到空閒時段(schedule.quiet,默認 00:30–06:30)不播報也不掃描。

4、自動發現與多機掃描。定時掃 DSH 工作區、git 倉庫和標記文件,超過分數線的新項目自動登記;另一臺機器或手機上可以跑只讀掃描器節點,把項目清單上報給主機。

另有 off / assist / auto 三個等級的自主推進開關:assist 只給選項和推薦,auto 會自己查事實、選方案、做可逆的事,把 push / 刪除 / 發佈這類不可逆動作放進審批隊列等你確認,規則寫在倉庫的 docs/AUTONOMY.md。

安裝與啓用

README 給出的安裝分兩步,先是後端,再是 DSH 插件。

# 1. 後端(CLI + 面板 + 定時器)
git clone https://github.com/peng456/dsh-project-deck && cd dsh-project-deck && ./install.sh

# 2. DSH 插件(npm 或 GitHub 二選一)
dsh plugin --profile desktop add dsh-project-deck
# dsh plugin --profile desktop add github:peng456/dsh-project-deck
# 或 Desktop → 插件 → 搜索/安裝 dsh-project-deck

第一步在安裝面板的同時裝好 deck CLI 和定時器;第二步把插件掛進 DSH。裝完重啓 DSH,左下角會出現 📋 圖標,可以拖動並記住位置。

如果只想先看看效果,README 提供了一個不需要安裝任何依賴的 demo(需要 Python 3.9+):

git clone https://github.com/peng456/dsh-project-deck
cd dsh-project-deck
python3 backend/deck demo          # 生成 4 個假項目,起面板
# → http://127.0.0.1:9299

這個命令會生成 4 個示例項目並起一個面板,瀏覽器打開 http://127.0.0.1:9299 就能看到長什麼樣。

典型用法

登記和查看項目:

deck add blog --root ~/code/blog --kind content --note "每週一篇實測"
deck list / status / doctor
deck report               # 立刻播報(文字 + 圖)
deck scan / scan --add    # 發現新項目
deck nodes add --id phone --name "我的手機" --platform android
deck demo                 # 演示環境

deck add 把一個本地目錄登記成項目,--kind 標類型,--note 寫下一步;deck scan --add 會把掃描到的新項目真正寫進註冊表。deck report 用於臨時手動發一條播報,驗證通道是否通。

播報出來是一段純文本,README 給的樣例形如:

項目播報 · 11-05 06:49
12 個項目|活躍 12 · 阻塞 0 · 近 6 小時更新 3

- **個人 Agent**(代碼)· 剛剛
  進展:新增 1 個會話(共 5)·「多項目管理機制」
  下一步:給 12 個項目建 STATE 骨架
- **API 服務**(代碼)· 12 分鐘前
  進展:git 2 次提交(fix: 鑑權)· 3 個文件待提交
  下一步:遷 v2 接口,補 12 個測試
無變化:官網改版、基礎設施、…

有變化的項目展開寫進展和下一步,沒有變化的歸到「無變化」一行摺疊掉。

配置文件

默認配置放在 ~/.project-deck/config.json,README 列出的鍵如下:

key 默認 說明
report.intervalHours 4 播報週期
report.image true 附看板圖(需要 Chrome 無頭截圖)
scan.intervalHours 12 自動發現週期
scan.threshold 70 自動登記分數線
schedule.quiet 00:30–06:30 安靜時段,不播報不掃描
panel.allowLanRead true 允許手機通過局域網看面板(只讀)

其中 report.image 依賴 Chrome 無頭模式截圖,scan.threshold 決定掃描到的新項目達到多少分才被自動登記。README 同時提醒不要把 nodes.json / config.json 提交進倉庫,因爲裏面有 token。

通知渠道

播報的發送器通過 report.delivery 選擇,README 強調默認不依賴任何外部服務,其中 ilink 是內置的微信連接:在面板點「連接微信」→ 掃碼 → 在微信裏給 bot 發一句話即可推送。其他通道分別是複用本機 wxpush 網關、ServerChan SendKey、任意 webhook(兼容企業微信機器人)和自寫腳本(stdin 收文本,退出碼 0 視爲成功)。

"report": {
  "enabled": true,
  "image": false,                          // 附圖僅 wxpush 通道支持
  "delivery": {
    "type": "wxpush",                      // wxpush | serverchan | webhook | command
    "url": "http://127.0.0.1:9098",        // wxpush(ilink 模式忽略)
    "key": "",                             // ServerChan SendKey
    "webhook": "",                         // 任意 webhook(企業微信機器人等)
    "command": ""                          // 自寫腳本:stdin 收文本,退出碼 0 = 成功
  }
}

配好後在面板頂部的「通知渠道」下拉里選保存即可,ilink 模式下會直接顯示二維碼。deck status 會顯示當前通道和連通狀態,通道不通時播報不會堆積,只會跳過;附圖通道有有限重試。

多機掃描

節點只讀上報,不傳文件內容。README 給了三種實現,都在倉庫的 backend/ 目錄下:

# Python / Node / Windows PowerShell 三種實現都在 backend/
python3 deck-node push --server http://<host>:9199 --token <token> --id my-phone
node     deck-node.js loop --server ... --token ... --id my-laptop
powershell -File deck-node.ps1 -Server ... -Token ... -Id my-win

--server 指向主機面板所在地址,--token 是主機上分配給該節點的 token,--id 是節點標識。先用 deck nodes add 在主機端登記節點,再在節點機器上跑對應的掃描腳本。

安全與權限

README 的安全部分給出三條:

1、面板寫接口只對本機開放;讀接口可以開局域網(給手機看面板只讀用),POST /api/node-scan 始終要求每節點 token;
2、微信推送走本地 wxpush(iLink),token 在幾小時無互動後會過期,過期時播報跳過而不是堆積,給 bot 發一句話即可恢復;
3、nodes.json / config.json 含 token,不要提交到倉庫。

需要留意的是,插件隨當前 DSH 進程運行,擁有該進程的權限。安裝前建議先讀一遍源碼,確認它訪問的文件路徑、命令和 network 行爲符合預期,再決定是否在生產工作區啓用。該插件是社區維護(peng456),不是 DeepSeek 官方組件。

小結

dsh-project-deck 的價值在於把「項目有哪些、各自什麼狀態、下一步是什麼」這件事從記憶和翻目錄變成註冊表 + 面板 + 定時微信播報:登記一次,面板和播報替你盯着 git 變化和會話進展,多機節點還能把另一臺機器上的項目清單一起彙總。它對本地倉庫和半成品比較對口,不適合替代面向團隊的項目管理工具。

  • 目錄頁:https://www.skillhub.cn/plugins/peng456/dsh-project-deck
  • GitHub:https://github.com/peng456/dsh-project-deck

分類爲「工作流」,安裝前請覈對上述源碼與許可證(MIT)。

羽毛球分组比赛记分
小程序二维码

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

小夜