🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

项目进度看板 sunzhiyueaa/dsh-project-board

DeepSeek Harness
sunzhiyueaa9 天前有提交已提供中文文档扫描:含敏感能力

拖动卡片改项目状态,单击即可进入继续开发

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sunzhiyueaa/dsh-project-board
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 23 处,展示前 22 条)
  • 读取本地文件
    lib/host/index.js:44
    return parseYaml(readFileSync(SOURCE, 'utf8')) ?? {}
  • 读取本地文件
    lib/host/index.js:101
    if (!existsSync(WORKSPACE_STORE)) return null
  • 读取本地文件
    lib/host/index.js:105
    raw = JSON.parse(readFileSync(WORKSPACE_STORE, 'utf8'))
  • 写入本地文件
    lib/host/index.js:279
    writeFileSync(target, Buffer.from(base64, 'base64'))
  • 发起网络请求
    lib/client.js:65
    const res = await fetch(url, {
  • 发起网络请求
    lib/client.js:461
    const res = await fetch(url, { headers: { "cache-control": "no-cache" } });
  • 读取本地文件
    lib/host/evidence.js:36
    return JSON.parse(readFileSync(file, 'utf8'))
  • 读取本地文件
    lib/host/evidence.js:44
    return JSON.parse(await readFile(file, 'utf8'))
  • 读取本地文件
    lib/host/evidence.js:64
    names = (await readdir(dir)).filter((name) => name.endsWith('.json'))
  • 执行外部命令固定命令
    lib/host/evidence.js:97
    execFile(
  • 读取本地文件
    lib/host/evidence.js:117
    if (!existsSync(join(path, '.git'))) return null
  • 读取本地文件
    lib/host/evidence.js:147
    const stat = statSync(join(path, target.replace(/^"|"$/g, '')))
  • 读取本地文件
    lib/host/evidence.js:169
    entries = await readdir(dir, { withFileTypes: true })
  • 读取本地文件
    lib/host/edit.js:39
    const before = readFileSync(source, 'utf8')
  • 写入本地文件
    lib/host/edit.js:47
    if (existsSync(source)) copyFileSync(source, source + '.bak')
  • 读取本地文件
    lib/host/edit.js:47
    if (existsSync(source)) copyFileSync(source, source + '.bak')
  • 写入本地文件
    lib/host/edit.js:48
    writeFileSync(source, after, 'utf8')
  • 读取本地文件
    lib/host/edit.js:158
    const doc = parseYaml(readFileSync(source, 'utf8'))
  • 读取本地文件
    lib/host/edit.js:164
    const doc = parseYaml(readFileSync(source, 'utf8'))
  • 读取本地文件
    lib/host/edit.js:172
    return { dir, created: !existsSync(dir) }
  • 读取本地文件
    lib/host/edit.js:182
    if (!existsSync(dir)) mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/host/edit.js:182
    if (!existsSync(dir)) mkdirSync(dir, { recursive: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH Web 的原生项目进度看板:五列按状态分,天数只读机器时间,拖动改状态写回 yaml,单击进项目继续开发。A native project board plugin for DSH Web.

README

由 DeepSeek 最新模型翻译生成
项目进度看板 · dsh-project-board DSH Web 侧边栏里的原生项目看板:五列按状态分,天数只读机器时间,拖动改状态直接写回 projects.yaml,单击就进那个项目继续开发。 项目进度看板 English · 中文 它解决什么 任务看板管的是「一件事」,没有卡就什么都不显示。这里管的是「一个项目」: - 项目永远在,哪怕它一张卡都没有。 - 不用你维护时间。天数是算出来的,取四个证据里最新的那个: DSH 会话记录 · git 提交(含未提交改动的文件 mtime)· 目录里最新文件改动 · 任务看板卡片执行时间。 - 首屏永远是最该动的那个。按「最久没动」排序,不是按你上次想改的顺序。 它不统计百分比,不做甘特图,也不在面板里写 intent / next——那两句是你和 agent 说话时改的。 装 前置:dsh web 已经能跑,用 web profile。
展开完整文档(README 剩余 1 节)
项目进度看板 · dsh-project-board

DSH Web 侧边栏里的原生项目看板:五列按状态分,天数只读机器时间,拖动改状态直接写回 projects.yaml,单击就进那个项目继续开发。

项目进度看板

English · 中文

它解决什么

任务看板管的是「一件事」,没有卡就什么都不显示。这里管的是「一个项目」:

- 项目永远在,哪怕它一张卡都没有。
- 不用你维护时间。天数是算出来的,取四个证据里最新的那个: DSH 会话记录 · git 提交(含未提交改动的文件 mtime)· 目录里最新文件改动 · 任务看板卡片执行时间。
- 首屏永远是最该动的那个。按「最久没动」排序,不是按你上次想改的顺序。

它不统计百分比,不做甘特图,也不在面板里写 intent / next——那两句是你和 agent 说话时改的。

装

前置:dsh web 已经能跑,用 web profile。

git clone https://github.com/sunzhiyueaa/dsh-project-board.git D:\dsh-plugins\dsh-project-board
cd D:\dsh-plugins\dsh-project-board
copy projects.example.yaml projects.yaml # 然后填你自己的项目
dsh plugin --profile web add link:D:\dsh-plugins\dsh-project-board

装完要重启 dsh web:客户端插件清单每个进程只扫一次,不重启侧边栏不会出现这一行。
之后改 lib/client.js 只需刷新页面;改 package.json 的 dsh.client 才需要再重启。

侧边栏出现「项目进度」,点它就是这张板。

怎么用(三件事)

1. 拖 → 改状态

把卡片拖到另一列,松手即写回 projects.yaml,4 秒内可撤销。

拖动改状态

落哪一列决定写哪个词:代码型拖到「在做」是 building,素材型拖到「在做」是 editing。
拖动过程不碰文件;松手才写。

2. 单击 → 进这个项目

打开它最后一次会话继续干活;没有会话就新建一个工作区 + 会话。

单击进入项目

3. 新增项目

右上角「+ 新增项目」。名称和「要干的内容」必填,其余可以以后补。
描述可以口语气,点「让 AI 改写」压成一句。

新增项目

- 类型:代码 / 素材——决定状态词表和素材往哪放。
- 素材:多选文件,落到 <项目路径>/素材/(没有路径时落到插件的 materials/<id>/)。
- 路径:给了路径才算得出「多久没动」。

数据文件

只有一份:projects.yaml,放在插件目录下。

settings:
staleDays: 5 # 超过这么多天没动静 → 黄 zombieDays: 14 # 超过这么多天 → 红 wipSoftLimit: 3 # 「在做」超过这个数,列头变黄提醒(只是提醒)

projects:
- id: dsh-project-board
name: dsh-project-board
path: D:\dsh-plugins\dsh-project-board
kind: code # code | material
status: building
intent: 一句话说清这个项目现在为了什么 next: 下一个具体动作,一句话

人只写三样:intent、next、status(可选 stage 自由文本)。不要手写时间戳——那是机器算的。

状态词表故意按 kind 分两套:

| kind | 列 | 状态 |
| code | 在做 / 卡住 / 搁置 / 已完成 / 认账不做 | building / blocked / paused / shipped / shelved |
| material | 在做 / 卡住 / 搁置 / 已完成 / 认账不做 | editing / blocked / paused / exported / shelved |

paused 是「先停下,还会回来」;shelved 是「这事我不做了」。shelved 不删记录,它照样在板上,只是不再是你的负担。

红黄绿怎么来的

最后动静 = max(最后会话时间, 最后 git 提交, 目录内最新文件改动, 最后一张卡的执行时间)

- 超过 staleDays(默认 5 天)→ 黄
- 超过 zombieDays(默认 14 天)→ 红
- 卡在 14 天那根红刻度上,一条 0–30 天的微条告诉你「离被忘掉还有多久」

这个判定和你写的 status 完全无关。所以你不会因为「忘了更新状态」而看不到真相。

几个设计取舍

- 颜色只编码时间,不编码状态。状态已经写在列名上了,再染一遍颜色等于说两遍。
- 不做百分比。项目进度没有分母,百分比只是让人安心的装饰。
- 面板只读,除了状态。intent / next 由你和 agent 对话时改——那是需要思考的两句话,不该在输入框里顺手敲。
- 打开不等人:宿主持有 15 秒缓存并在后台补算,客户端把上次结果存在 localStorage 先画出来。
实测点开到第一张卡 41 ms。

目录结构

lib/host/index.js 路由、缓存、stale-while-revalidate、预热 lib/host/evidence.js 证据折叠:会话索引 / git / 文件 mtime / 看板卡片 lib/host/edit.js yaml 行级改写(保留注释)、新建项目、素材落盘 lib/host/ai.js 描述改写(一次 llm 调用,45 秒超时) lib/host/page.js v1 的独立网页(/project-board 仍可直接打开) lib/client.js 面板本体,手写 bundle,无构建链 cordis.patch.yml 把插件插进 profile 的一行 docs/ 截图 scripts/check.mjs 离线自检:yaml 合法 + 路由能响应

已知限制

- 客户端插件清单每个 dsh web 进程只扫一次,新装或改 dsh.client 必须重启。
- Windows 上起 git 子进程很贵,所以 git 结果按路径缓存 20 秒,并行折叠。
- 写完 yaml 后面板自己刷新;外部改文件最多等 15 秒(或者点「刷新」)。
- 面板不写 intent / next,这是故意的。

License

MIT
预览分享卡片长什么样 ↓sunzhiyueaa/dsh-project-board
分享 · DeepSeek Harness Hub
sunzhiyueaa/dsh-project-board

拖动卡片改项目状态,单击即可进入继续开发

这是你的仓库?认领条目

回到顶部