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

任务锻造台 121212165/dsh-plugin-task-forge

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

把大白话编译成任务书,跨窗口 AI 无损交接 —— /forge 编译 · /relay 交接 ·…

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 38 处,展示前 22 条)
  • 写入本地文件
    lib/plugin.js:30
    mkdirSync(dirname(dest), { recursive: true });
  • 写入本地文件
    lib/plugin.js:32
    writeFileSync(tmp, content, 'utf8');
  • 写入本地文件
    lib/plugin.js:33
    renameSync(tmp, dest);
  • 读取本地文件
    lib/plugin.js:64
    if (!existsSync(path))
  • 读取本地文件
    lib/plugin.js:66
    const { task, issues } = parseTaskMarkdown(readFileSync(path, 'utf8'));
  • 读取本地文件
    lib/plugin.js:78
    if (!existsSync(this.ledgerPath))
  • 读取本地文件
    lib/plugin.js:80
    return parseLedger(readFileSync(this.ledgerPath, 'utf8'));
  • 读取本地文件
    lib/plugin.js:85
    if (!existsSync(dir))
  • 读取本地文件
    lib/plugin.js:88
    for (const entry of readdirSync(dir, { withFileTypes: true })) {
  • 写入本地文件
    lib/plugin.js:108
    mkdirSync(dirname(this.ledgerPath), { recursive: true });
  • 写入本地文件
    lib/plugin.js:109
    appendFileSync(this.ledgerPath, eventLine(event) + '\n', 'utf8');
  • 写入本地文件
    src/plugin.ts:81
    mkdirSync(dirname(dest), { recursive: true });
  • 写入本地文件
    src/plugin.ts:83
    writeFileSync(tmp, content, 'utf8');
  • 写入本地文件
    src/plugin.ts:84
    renameSync(tmp, dest);
  • 读取本地文件
    src/plugin.ts:124
    if (!existsSync(path)) return null;
  • 读取本地文件
    src/plugin.ts:125
    const { task, issues } = parseTaskMarkdown(readFileSync(path, 'utf8'));
  • 读取本地文件
    src/plugin.ts:138
    if (!existsSync(this.ledgerPath)) return { events: [], skipped: 0 };
  • 读取本地文件
    src/plugin.ts:139
    return parseLedger(readFileSync(this.ledgerPath, 'utf8'));
  • 读取本地文件
    src/plugin.ts:145
    if (!existsSync(dir)) return [];
  • 读取本地文件
    src/plugin.ts:147
    for (const entry of readdirSync(dir, { withFileTypes: true })) {
  • 写入本地文件
    src/plugin.ts:164
    mkdirSync(dirname(this.ledgerPath), { recursive: true });
  • 写入本地文件
    src/plugin.ts:165
    appendFileSync(this.ledgerPath, eventLine(event) + '\n', 'utf8');
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-base@deepseek-ai/schemastery@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 编译需求为任务书
  • 任务书带版本
  • 回读握手交接

dsh 插件:把粗略需求编译成带版本的任务书,通过回读握手(/forge /relay /ack /answer /forge-list)无损交给任意 AI 窗口

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-task-forge 把大白话编译成任务书,跨窗口 AI 无损交接 —— /forge 编译 · /relay 交接 · 回读握手逼出理解损耗 · 缺口闭环、版本号跨窗口唯一权威 60 秒上手:dsh plugin --profile web add github:121212165/dsh-plugin-task-forge → 重启 dsh → 对话里输入 /forge <你的需求>(详细安装见下文) 🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 兄弟插件:ide-hub 跨 IDE 统一管理 · quota 实时用量仪表
展开完整文档(README 剩余 1 节)
dsh-plugin-task-forge

把大白话编译成任务书,跨窗口 AI 无损交接 —— /forge 编译 · /relay 交接 · 回读握手逼出理解损耗 · 缺口闭环、版本号跨窗口唯一权威

60 秒上手:dsh plugin --profile web add github:121212165/dsh-plugin-task-forge → 重启 dsh → 对话里输入 /forge <你的需求>(详细安装见下文)

🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 兄弟插件:ide-hub 跨 IDE 统一管理 · quota 实时用量仪表

EN · Compiles a rough need into a versioned task book, then hands it to any other AI window through a read-back handshake: /forge compiles, /relay emits, /ack proves the receiver got it byte-for-byte, /answer returns — aimed at the lossy copy-paste handoff between agents. · 61 node --test green · design notes in TASK-FORGE-DESIGN.md.

dsh 插件:先把大白话编译成任务书,再无损交接给任意窗口的 AI。

普通人和 AI 协作的真实瓶颈不是"不会写提示词",而是缺一道编译工序:你脑子里只有一个模糊需求,直接丢给干活的 AI,它理解歪了你也不知道;换了窗口、换了 IDE,上下文全靠人肉搬运。task-forge 把这件事产品化:

1. /forge 把你的大白话编译成一份开源项目标准的任务书(目标/背景/约束/验收标准/已定决策/开放缺口,全部编号);
2. /relay 导出自包含的交接包(单文件 markdown),粘贴给任何窗口的任何 AI;
3. 对方 AI 必须先回读握手(复述理解 + 列缺口 + STATUS: READY)才被允许开工——LLM 之间传东西永远有损耗,这套协议把损耗逼到明面上、几轮内逼到零;
4. /answer 补缺口自动版本 +1;/forge-list 台账总览"哪个窗口手里是哪个版本";进行中任务注入每个新会话的系统提示。

安装

三步,实测于 @deepseek-ai/dsh@0.1.7-alpha.1(需 pnpm 在 PATH 上):

① 装进 profile:dsh plugin 把参数原样转发给 pnpm,git 包会自动跑 prepare 构建 lib/
dsh plugin --profile web add github:121212165/dsh-plugin-task-forge

② 把本仓库根目录 cordis.patch.yml 的内容并进 $DSH_HOME/profiles/web/cordis.patch.yml。
该文件默认是 [],所以要么整份替换,要么把 insert 条目并进同一个数组;不要直接追加——追加会形成两个 YAML 文档,启动即报 failed to parse overlay ... end of the stream or a document separator is expected(本机实测踩过)。

③ 重启 dsh。配置层与 client 半都要重启才生效(客户端按 boot 时算出的内容 rev 下发,硬刷新浏览器没用)。

自检挂载:dsh --profile web --dump-config | grep dsh-plugin-task-forge,应看到该条目。

命令

| 命令 | 作用 |
| /forge <需求> [--mode interview] | 编译。默认 auto:模型自己推演、暴露假设,定不了的写成编号缺口 Q1/Q2…;--mode interview 先出问题清单等你答完再编译。编译结果经 forge_write 工具落盘 |
| /relay <id> [--to <窗口名>\|ide:<工具名>] | 导出交接包到 ~/.dsh/task-forge/outbox/<id>-v<n>.md,全文粘贴给对方窗口;--to ide:zcode 这类还会在当前项目 <hubPath>/tasks/ 落一份同字节副本,并打印该 IDE 的接手步骤。输出还带这份任务书预计烧多少 token(见下) |
| /ack <id> [--to <窗口名>] <回读全文> | 登记对方回读:READY 放行并给该窗口盖上「确认了哪一版」;NEED-INPUT 的缺口自动登记进任务书。有多个窗口时必须带 --to,否则不知道该记在谁头上 |
| /answer <id> <答案> | 缺口答案写入已定决策(D 编号),版本 +1,提醒你重新 relay 新版;interview 任务答完最后一个 Q 会自动重新注入编译指令,不用你二次触发 |
| /forge-list | 台账:任务 × 版本 × 每个窗口的回读状态(窗口A✓v2 / 窗口B◐v1 / 窗口C○)× 缺口/决策计数 × 下一步 |
| /forge-done <id> | 标记完成(不再注入系统提示) |

单任务 token 预估

派发之前先知道这一趟要烧多少。口径在 src/task-cost.ts(纯函数,同输入同输出):

- 分相:编译(任务书自身 token)+ 回读(有观测就取各步 output 的中位数,没有就按任务书字数的 40%)+ 交接(任务书 × 持有窗口数,每窗口都要重发一遍全文)+ 执行(唯一给区间的一段:有观测按中位步长 × 6–20 步,没有就按任务书规模 × 8–18 倍);
- 基数分两种,输出里写明是哪种:基于 3 步观测 或 按字数启发式估算(无观测)——tokens ≈ 字数 / 2.4 是混合中英文的近似,不是分词器,别拿这个数去跟厂商对账;
- 钱只在有真实价目时出现:单价从 quota 自己的仪表里取(todayCostMicros / todayTokens 的混合单价),拿不到就只报 token,不编价格;
- /forge-list 每个任务多一行 预估 99k–232k。

回读握手协议(无损的全部保障)

每份任务书尾部固定携带握手指令,要求接收方在开工前输出:

version: <它读到的版本号> 【回读】用自己的话复述目标、约束、验收标准(逐条对应编号)【缺口】发现的信息不足或矛盾,逐条编号;没有写"无" STATUS: READY 或 STATUS: NEED-INPUT

- 回读结构不完整(缺 STATUS / 缺 version / 缺复述)→ /ack 直接判无效并给出补救话术;
- version 和最新版不一致 → 按旧版处理并警告,需要重发新版;
- 缺口逐条 /answer 后版本 +1,所有交接引用必须带 id@version——版本号是跨窗口唯一权威。

数据落盘

~/.dsh/task-forge/
├── tasks/<id>/task.md # 任务书本体(frontmatter + 六段正文 + 握手指令) ├── outbox/<id>-v<n>.md # 交接包导出 └── ledger.jsonl # 握手台账(每次 created/revised/relayed/acked/… 一行)

进行中任务(非 done)按 limit/maxChars 预算注入每个会话的系统提示(## 进行中任务(task-forge)),新窗口一开就知道有哪些任务在飞。

配置

| 字段 | 默认 | 作用 |
| enabled | true | 关掉后 apply 直接返回,不注册任何命令/工具/注入 |
| dataPath | ~/.dsh/task-forge | 任务书本体、交接包与台账的根目录;支持 ~ 前缀 |
| hubPath | .hub | --to ide:<工具名> 那份项目内副本的目录,相对当前工作目录解析(写绝对路径也可以) |
| quotaSummaryPath | ~/.dsh/quota/summary.json | quota 发布的预算契约文件;读不到就当没装 quota,不警告也不报错。支持 ~ 前缀 |
| quotaHistoryPath | ~/.dsh/quota/history.json | quota 的每步用量历史({sessionId: [{input,output,cacheRead}]}),单任务预估的观测基数;读不到就退回按字数的启发式并在输出里明说 |
| limit / maxChars | 8 / 900 | 注入段的条数与字符预算;超限的行截断而不是丢弃最新任务 |
| order | 690 | 注入段在系统提示里的排序位置 |

limit、maxChars、order、hubPath、quotaHistoryPath 都走启动自检:填错启动即失败并点名 task-forge,不会带着一个不可用的台账静默运行。

借鉴来源与差异(不盲目抄)

| 来源 | 借鉴 | 改编 | 原创 |
| dsh-plugin-pinboard(自家) | systemPrompt.section 注入机制、limit/maxChars 预算模型 | 注入内容从静态便签换成读台账现算的任务状态 | —— |
| dsh-plugin-ide-hub(自家) | "一份本体多 IDE 生效"的指针思想 | 本体从规则文件换成任务书;交接走自包含单文件,不依赖任何 IDE 读取器 | —— |
| dsh-plugin-prompt-vault(自家) | ctx.agents.followup() 注入通道、v4 producer-owned source kind | vault 降级为非依赖;编译指令按 auto/interview 双模式生成 | —— |
| kaanozhan/Frame(394★) | spec 四件套、编号化决策 | 四件套收敛为单文件任务书,加版本号与握手 | 回读握手协议 |
| distilly(25k★) | "思维→结构化产物"的大方向 | 它蒸馏成 Skill,我们编译成任务书+握手,面向跨工具交接 | 无损传递的判定机制 |
| dsh-auto-review(222★,PerryLink) | 装配层测试方法论:mock ctx harness + 把命令 handler 当真函数调,补上"纯函数层测试好、装配层零覆盖"的断层(其五层模型的第 1-3 层) | 它用 vitest fork pool,我们按家族标准用 node:test + 真临时目录;其第 4-5 层(真实 Loader 子进程组装)暂未引入 | —— |

测试

npm run check # typecheck + node --test + tsc build

82 个测试,两层:

- 纯函数层(53):单任务预估的分相、中位数斜率、无观测降级、窗口倍数、坏 history 容错;任务书校验/版本推进/缺口应答、frontmatter 里每个窗口的回读版本(旧格式纯字符串照常解析)、interview 相位(phase)落盘与清除、答复被编译器丢掉时自动补回、握手解析(中文冒号/旧版本/结构残缺/空缺口/自作主张的 READY 降级)、台账解析/折叠/注入预算、IDE 派发表;
- 装配层(29,test/harness.ts + test/plugin.test.ts):真实 apply() 挂到脚本化 mock ctx 上(命令、工具、注入、followup 全部捕获),在真临时目录里驱动完整协议流——/forge 落盘并注入编译指令(含 headless 粘贴回退)、forge_write 校验拒绝、interview 出问题清单 → /answer 答完最后一问自动二次注入编译、/relay 导出交接包与 --to ide:* 的项目内同字节副本、/ack 垃圾输入拒绝、READY 放行、降级、旧版本拦截、每窗口盖章、/answer 版本推进与缺口编号不复用、/forge-list 的每窗口状态、forge_write 的 presentCall/presentResult 卡片、坏配置启动点名。全家第一个有装配层覆盖的插件,harness 可直接复制给其他 17 个。

已做到 / 下一步

v0.2 已落地:interview 多轮闭环(答完最后一问自动重编译)、--to ide:<工具名> 派发(落项目内副本 + 逐 IDE 接手步骤)、每窗口回读台账(✓当前版 / ◐旧版 / ○未回读)、forge_write 的 presentCall/presentResult 卡片。

- IDE 侧仍是人工接手一步:真自动注入等 ide-hub 的指针生成器(/hub-init)上线后接上;
- /relay 会读 quota 的 summary.json(家族契约:budgetTokens/maxSessionRatio/nextTurnEstTokens),预算已用到 80% 以上时在交接输出里追加一行警告;quota 没装、文件坏、或读数是一小时以前的都保持沉默——拿昨天的仪表吓人是更糟的结果;
- 超长输入的非拦截「建议编译」提醒;
- ctx.agents.followup() 的运行时验证仍在观察(headless 无活动会话时走粘贴回退,已在测试里覆盖)。

License

MIT
预览分享卡片长什么样 ↓121212165/dsh-plugin-task-forge
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-task-forge

把大白话编译成任务书,跨窗口 AI 无损交接 —— /forge 编译 · /relay 交接 ·…

回到顶部