@godv61/dsh-task-engine 0.18.0 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -3
- package/docs/manual.html +17 -6
- package/lib/client.js +409 -166
- package/lib/client.js.map +4 -4
- package/lib/controller.d.ts +55 -0
- package/lib/controller.js +226 -0
- package/lib/controller.js.map +1 -1
- package/lib/dev-task.js +39 -31
- package/lib/dev-task.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -24,8 +24,8 @@ src/seed-preset.ts 对齐当前 standard 复制出 eng 预设(换人设 +
|
|
|
24
24
|
src/agent.ts agent 入口(./agent 出品):在调用它的预设 scope 里注册 dev_task + 内置技能
|
|
25
25
|
src/dev-task.ts dev_task 工具定义 + 全部文件系统辅助(模型门禁,随 agent 入口激活)
|
|
26
26
|
src/shipped-skills.ts 内置技能扫描 + 注册(随 agent 入口激活)
|
|
27
|
-
src/controller.ts Host 端 Remote 控制器:网页读写 .dsh/eng.json + skill/rule
|
|
28
|
-
src/client/
|
|
27
|
+
src/controller.ts Host 端 Remote 控制器:网页读写 .dsh/eng.json + skill/rule + 项目初始化(AGENTS.md)
|
|
28
|
+
src/client/ 浏览器半:全屏工作台(项目初始化 / 流程配置 / 任务 / 技能 skill / 规则 rule 五个标签页)
|
|
29
29
|
skills/ 内置技能库(需求分析/方案设计/实现/验证/审核/提交/交付编排)
|
|
30
30
|
rules/ 内置规则库(编码规范/提交规范/安全红线)
|
|
31
31
|
preset/agent.cordis.yml 预设接入片段(persona 行 + agent 行,供自定义预设照抄)
|
|
@@ -147,6 +147,7 @@ dsh plugin --profile <name> add .
|
|
|
147
147
|
- **为什么是 `AGENTS.md`**:DSH 平台会把项目根的 `AGENTS.md` **自动注入到每个会话**——生成一次,之后每个任务开工 AI 都自带这份项目认知,引擎无需额外的注入逻辑。
|
|
148
148
|
- **行数上限**:`AGENTS.md` 每次都进上下文,200 行(约 4–6K token)是硬约束,逼着只写「项目是什么 → 怎么跑 → 结构 → 约定 → 坑」,而不是塞长篇文档。
|
|
149
149
|
- **治理文件保护**:`AGENTS.md` 默认受保护——已有文件时 `apply` 不裸覆盖,需显式 `overwrite` + 人工批准。
|
|
150
|
+
- **工作台可视化入口(0.19.0)**:以上三阶段也能在网页工作台点按钮完成。工作台第一个标签页「项目初始化」会**加载展示**当前 `AGENTS.md`(无则显示「未初始化」);点「让 AI 初始化 / 重新初始化」由工作台调用默认模型扫描项目生成草稿(预览,不落盘),点「保存并覆盖」才写回;也可「手动编辑」后保存。页面入口与 `dev_task init` 读写的是同一份 `AGENTS.md`,两处共用 200 行硬约束。
|
|
150
151
|
|
|
151
152
|
## 状态与待办
|
|
152
153
|
|
|
@@ -168,4 +169,7 @@ dsh plugin --profile <name> add .
|
|
|
168
169
|
- **弹窗 + markdown 查看(0.15.0)**:skill/rule 的查看与编辑从内联卡片改为居中宽弹窗;查看时正文用 DSH 自带的 `MarkdownText` 渲染成 markdown 富文本(不引入任何新依赖),编辑时正文保持纯文本。
|
|
169
170
|
- **流程预设收敛(0.16.0)**:把「自由编辑阶段图/守卫/产物/提交规则/验证开关」收敛为「选一套内置流程预设 + 给节点挂 skill/rule」。新增 `src/workflows.ts` 内置 `standard` / `agile` / `minimal` 三套流程(阶段图、守卫、产物字段、提交规则、验证证据开关全部固化);`.dsh/eng.json` 从完整配置精简为 `{ flow, stage_bindings }`;工作台删掉流转/产物/提交规则/验证开关编辑 UI,只剩「流程预设 + 流程节点(只读)+ 阶段技能/规则」;git 提交钩子同步按 `flow` 选预设。
|
|
170
171
|
- **项目初始化 + 语言无关内置规则(0.17.0)**:`dev_task` 新增 `init` 操作,生成项目根 `AGENTS.md`(DSH 每会话自动注入),落盘前做 200 行硬校验、已存在需 `overwrite` 才覆盖;内置 `solution-design` / `coding-conventions` / `security-redlines` 去掉 Java 专属概念(Impl / DTO / VO、Controller / Mapper),改成语言中立骨架,语言特定规范交给项目自建 rule。
|
|
171
|
-
- **工程可靠性加固(0.18.0)**:① 高风险任务与流程能力绑定——`high_risk` 任务只能在具备「验证门 + 文件范围 + 评审门」能力的流程创建,选 `agile`/`minimal` 直接拒绝;② 任务创建时固化流程快照(预设 id + version + 完整配置),后续 `status`/`advance`/`verify`/`review`/`commit` 一律用快照,中途改 `.dsh/eng.json` 不再漂移在途任务的门禁;③ 未知流程失败关闭——`.dsh/eng.json` 缺 `flow` 或 `flow` 不在预设里一律报错(`UNKNOWN_FLOW` / 缺字段),不再静默回退 `standard`;④ 核心 skill/rule 不可取消、不可被同名覆盖——项目阶段绑定只能追加不能移除预设自带绑定,同名规则/技能读内置版、新建同名被拒;⑤ `init` 升级 `inspect → propose → apply` 三阶段,覆盖已有 `AGENTS.md` 需人工批准。
|
|
172
|
+
- **工程可靠性加固(0.18.0)**:① 高风险任务与流程能力绑定——`high_risk` 任务只能在具备「验证门 + 文件范围 + 评审门」能力的流程创建,选 `agile`/`minimal` 直接拒绝;② 任务创建时固化流程快照(预设 id + version + 完整配置),后续 `status`/`advance`/`verify`/`review`/`commit` 一律用快照,中途改 `.dsh/eng.json` 不再漂移在途任务的门禁;③ 未知流程失败关闭——`.dsh/eng.json` 缺 `flow` 或 `flow` 不在预设里一律报错(`UNKNOWN_FLOW` / 缺字段),不再静默回退 `standard`;④ 核心 skill/rule 不可取消、不可被同名覆盖——项目阶段绑定只能追加不能移除预设自带绑定,同名规则/技能读内置版、新建同名被拒;⑤ `init` 升级 `inspect → propose → apply` 三阶段,覆盖已有 `AGENTS.md` 需人工批准。
|
|
173
|
+
- **会话工作目录修复(0.18.1)**:`dev_task` 的所有文件操作此前用 `fs.resolve(相对路径)` 不带 cwd,落到了 fs 后端默认目录(DSH 进程目录)而非会话工作区——在 web 会话里会把台账、配置、`AGENTS.md`、git 钩子写到/读到错误位置。改为从 `exec.agent.session.header.cwd` 取会话工作区并传给每个解析,补 4 项回归测试。
|
|
174
|
+
- **工作台项目初始化(0.19.0)**:工作台新增置顶的「项目初始化」标签页——加载展示项目根 `AGENTS.md`、一键让 AI 扫描项目生成草稿(预览后再确认写回)、支持手动编辑与覆盖;Host 控制器新增 `readInit`/`writeInit`/`generateInit` 三个 Remote,`generateInit` 通过 `ctx.llm` + 默认模型在 Host 端直接生成,复用 `dev_task init` 的 200 行硬约束。
|
|
175
|
+
- **使用手册跟进(0.19.1)**:随包发布的 `docs/manual.html` 补上工作台「项目初始化」(默认置顶标签页、项目根自动发现、AI 生成 150 秒超时 + 覆盖需人工确认),第 7 节标签页从「三个」改为「五个」;删除顶层已废弃的 `USER_GUIDE.html`(v0.9.1、无引用、不随包发布),README 目录结构描述同步为五标签页。
|
package/docs/manual.html
CHANGED
|
@@ -183,7 +183,7 @@ pnpm install && pnpm run build && pnpm dsh web</code></pre>
|
|
|
183
183
|
|
|
184
184
|
<section id="configure">
|
|
185
185
|
<h2>7. 配置流程与挂载</h2>
|
|
186
|
-
<p
|
|
186
|
+
<p>侧边栏点「工程流程」打开工作台,五个标签页:<strong>项目初始化 / 流程配置 / 任务 / 技能 skill / 规则 rule</strong>,默认落在「项目初始化」(详见第 8 节)。日常配流程只需在「流程配置」页做两件事:</p>
|
|
187
187
|
<ol>
|
|
188
188
|
<li><strong>选流程预设</strong>:standard / agile / minimal 点一下即切。</li>
|
|
189
189
|
<li><strong>给节点挂 skill / rule</strong>:先选一个节点(如「开发」),再勾选它用什么 skill、守哪条 rule,保存。</li>
|
|
@@ -203,12 +203,23 @@ pnpm install && pnpm run build && pnpm dsh web</code></pre>
|
|
|
203
203
|
|
|
204
204
|
<section id="init">
|
|
205
205
|
<h2>8. 项目初始化(init)</h2>
|
|
206
|
-
<p>二开 /
|
|
207
|
-
<div class="callout"><p><strong
|
|
206
|
+
<p>二开 / 遗留项目没有文档时,先给项目建一份「描述文件」——项目根的 <code>AGENTS.md</code>。DSH 平台会把它<b>自动注入到每个会话</b>,生成一次,之后每个任务开工 AI 都自带这份项目认知(项目是什么 → 怎么跑 → 结构 → 约定 → 坑)。</p>
|
|
207
|
+
<div class="callout"><p><strong>两种入口,推荐工作台:</strong>① 工作台「项目初始化」标签页(点按钮,可视化预览 + 保存,0.19.0 起,默认第一个标签页);② 对话式 init(对 AI 说「帮我初始化这个项目」,AI 调 <code>dev_task</code> 走 inspect → propose → apply)。</p></div>
|
|
208
|
+
|
|
209
|
+
<h3>工作台初始化(推荐)</h3>
|
|
210
|
+
<ol>
|
|
211
|
+
<li>侧边栏点「工程流程」,工作台<b>默认落在「项目初始化」标签页</b>。</li>
|
|
212
|
+
<li><b>先看已有文档</b>:顶部显示「未初始化」或「已初始化 · N 行(上限 200)」。工作区根没有 <code>AGENTS.md</code> 时,会自动向下找唯一子项目、向上找父目录,并把实际定位路径标出来(如 <code>已定位到 D:\qdmai\qms\AGENTS.md</code>)。</li>
|
|
213
|
+
<li><b>让 AI 初始化</b>:点按钮,AI 扫描项目(目录结构、关键文件、技术栈、构建 / 运行命令、约定与红线)生成草稿——<b>只预览、不落盘</b>,硬校验<b>行数 ≤ 200 行</b>,超了精简到「项目是什么 → 怎么跑 → 结构 → 约定 → 坑」,只留骨架不塞长文。运行中实时显示「已耗时 X 秒」,最长 150 秒超时,超时提示重试即可。</li>
|
|
214
|
+
<li><b>保存 / 保存并覆盖</b>:预览满意点「保存」——首次创建直接写入;已有 <code>AGENTS.md</code> 会标「保存并覆盖」,必须人工点确认才覆盖,保护项目已有治理文件不被裸覆盖。</li>
|
|
215
|
+
<li>也可点「手动编辑」直接改正文后保存。</li>
|
|
216
|
+
</ol>
|
|
217
|
+
|
|
218
|
+
<h3>对话式 init</h3>
|
|
208
219
|
<ol>
|
|
209
220
|
<li><b>inspect</b>:对 AI 说「帮我初始化这个项目」;AI 读现有 <code>AGENTS.md</code>(若有)返回,没有则扫目录结构、技术栈、构建 / 运行命令、约定与红线。</li>
|
|
210
|
-
<li><b>propose</b>:AI 写成 <code>AGENTS.md</code> 草稿,此步<b>只预览、不落盘</b
|
|
211
|
-
<li><b>apply</b>:落盘。首次创建直接写入;覆盖已有 <code>AGENTS.md</code> 必须带 <code>overwrite</code> 且<b>经人工批准</b
|
|
221
|
+
<li><b>propose</b>:AI 写成 <code>AGENTS.md</code> 草稿,此步<b>只预览、不落盘</b>,同样硬校验<b>行数 ≤ 200 行</b>。</li>
|
|
222
|
+
<li><b>apply</b>:落盘。首次创建直接写入;覆盖已有 <code>AGENTS.md</code> 必须带 <code>overwrite</code> 且<b>经人工批准</b>。</li>
|
|
212
223
|
</ol>
|
|
213
224
|
<pre><code>项目根/
|
|
214
225
|
├─ AGENTS.md ← init 生成,DSH 每会话自动注入
|
|
@@ -346,7 +357,7 @@ risk_level: high_risk // 涉及鉴权,验证要加证据
|
|
|
346
357
|
<details><summary>一个会话能同时做两个需求吗?</summary><div>一个任务对应一份状态文档、一个分支。新需求保存当前进度后切新分支,切回原分支即可恢复。</div></details>
|
|
347
358
|
<details><summary>提交被拒是怎么回事?</summary><div>通常是四类:没建 dev_task 任务、阶段没到提交检查点、消息格式不符、提交文件不在任务范围内。按拒绝原因修正即可。</div></details>
|
|
348
359
|
<details><summary>「完成」等于上线了吗?</summary><div>不等于。<code>done</code> 只表示本地验证与必要评审通过;上线、合并、发布需人另行决定。</div></details>
|
|
349
|
-
<p class="stamp">当前结构基线:三套流程预设 · 最后更新:2026-
|
|
360
|
+
<p class="stamp">当前结构基线:三套流程预设 · 工作台项目初始化(0.19.0)· 最后更新:2026-09-12</p>
|
|
350
361
|
</section>
|
|
351
362
|
</main>
|
|
352
363
|
</div>
|