@godv61/dsh-task-engine 0.23.1 → 0.23.2
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/.p0-test.mjs +10 -10
- package/.workflow-test.mjs +274 -218
- package/README.md +10 -8
- package/cordis.patch.yml +10 -10
- package/defaults/eng.json +3 -3
- package/docs/CHANGELOG.md +47 -40
- package/docs/README.md +6 -4
- package/docs/configuration.md +4 -4
- package/docs/faq.md +6 -2
- package/docs/manual.html +9 -8
- package/docs/release-0.23.1.md +58 -58
- package/docs/release-0.23.2.md +21 -0
- package/docs/testing/0.23.1//346/265/213/350/257/225/346/212/245/345/221/212.md +34 -34
- package/docs/testing/0.23.2/R02/344/270/232/345/212/241/346/265/213/350/257/225/346/230/216/347/273/206.md +56 -0
- package/docs/testing/0.23.2/R03/344/270/232/345/212/241/346/265/213/350/257/225/346/230/216/347/273/206.md +38 -0
- package/docs/testing/0.23.2//346/265/213/350/257/225/346/212/245/345/221/212.md +65 -0
- package/docs/testing/0.23.2//350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/346/230/216/347/273/206.md +43 -0
- package/docs/workflow-regression.md +36 -36
- package/lib/client.js +8 -8
- package/lib/client.js.map +2 -2
- package/lib/custom-flow.d.ts +212 -0
- package/lib/custom-flow.js +50 -0
- package/lib/custom-flow.js.map +1 -0
- package/lib/dev-task.js +18 -8
- package/lib/dev-task.js.map +1 -1
- package/package.json +4 -4
- package/preset/agent.cordis.yml +21 -21
- package/preset/enable.mjs +87 -87
- package/preset/persona.md +4 -4
- package/preset/preset.yml +1 -1
- package/rules/coding-conventions.md +6 -6
- package/rules/commit-conventions.md +6 -6
- package/rules/security-redlines.md +5 -5
- package/skills/code-commit/SKILL.md +3 -3
- package/skills/code-implement/SKILL.md +10 -10
- package/skills/code-review/SKILL.md +2 -2
- package/skills/code-verify/SKILL.md +10 -8
- package/skills/eng-delivery/SKILL.md +8 -8
- package/skills/requirement-analysis/SKILL.md +4 -4
- package/skills/solution-design/SKILL.md +7 -7
package/cordis.patch.yml
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# dsh-task-engine bundle: one host-plane row that mounts the `task-engine`
|
|
2
|
-
# Remote namespace (what the browser workbench reads/writes) plus, via
|
|
3
|
-
# `dsh.client`, the workbench UI. This host row registers NO model-facing tool
|
|
4
|
-
# and NO skill — `dev_task` and the shipped skills live on the AGENT plane,
|
|
5
|
-
# behind the `@godv61/dsh-task-engine/agent` entry. A preset's
|
|
6
|
-
# `agent.cordis.yml` names that agent row to activate the flow for its
|
|
7
|
-
# sessions; presets that never name it get neither the tool nor the skills
|
|
8
|
-
# (the workbench stays available so a human can still configure the flow).
|
|
9
|
-
- insert:
|
|
10
|
-
- id: task-engine
|
|
1
|
+
# dsh-task-engine bundle: one host-plane row that mounts the `task-engine`
|
|
2
|
+
# Remote namespace (what the browser workbench reads/writes) plus, via
|
|
3
|
+
# `dsh.client`, the workbench UI. This host row registers NO model-facing tool
|
|
4
|
+
# and NO skill — `dev_task` and the shipped skills live on the AGENT plane,
|
|
5
|
+
# behind the `@godv61/dsh-task-engine/agent` entry. A preset's
|
|
6
|
+
# `agent.cordis.yml` names that agent row to activate the flow for its
|
|
7
|
+
# sessions; presets that never name it get neither the tool nor the skills
|
|
8
|
+
# (the workbench stays available so a human can still configure the flow).
|
|
9
|
+
- insert:
|
|
10
|
+
- id: task-engine
|
|
11
11
|
name: '@godv61/dsh-task-engine'
|
package/defaults/eng.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"需求评审": { "skills": ["requirement-analysis"], "rules": ["security-redlines"] },
|
|
5
5
|
"设计": { "skills": ["solution-design"] },
|
|
6
6
|
"开发": { "skills": ["code-implement"], "rules": ["coding-conventions"] },
|
|
7
|
-
"交付": { "skills": ["code-verify"], "rules": ["coding-conventions"] },
|
|
8
|
-
"代码审核": { "skills": ["code-review", "code-commit"], "rules": ["security-redlines", "commit-conventions"] }
|
|
7
|
+
"交付": { "skills": ["code-verify"], "rules": ["coding-conventions"] },
|
|
8
|
+
"代码审核": { "skills": ["code-review", "code-commit"], "rules": ["security-redlines", "commit-conventions"] }
|
|
9
9
|
}
|
|
10
|
-
}
|
|
10
|
+
}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -4,48 +4,55 @@
|
|
|
4
4
|
|
|
5
5
|
按版本查阅功能变化。当前使用方式以[项目首页](../README.md)和使用指南为准;历史条目中的实现方式、限制与测试数量可能已被后续版本替代。
|
|
6
6
|
|
|
7
|
-
## 0.23.
|
|
8
|
-
|
|
9
|
-
- 汇总本轮候选版的资源来源、Windows 技能加载、实施审核保留、派工状态、真实技能/验证/提交回执及状态一致性修复。
|
|
10
|
-
- 新增 status.artifact_requirements,提前披露当前阶段的记录字段和缺项;未知字段拒绝时给出恢复指引,整次写入保持不变。
|
|
11
|
-
- 需求技能按预设实际字段记录,修正敏捷流程误用标准字段的问题;小修正、权限恢复、契约核对和测试证据说明同步更新。
|
|
12
|
-
- 旧任务保留冻结流程,新任务使用标准 v2 和执行证据门禁。实际能力及未覆盖边界见[发布说明](release-0.23.1.md)与[测试说明](testing/0.23.1/测试报告.md)。
|
|
13
|
-
|
|
14
|
-
以下 rc 条目为本轮迭代历史,已汇总至 0.23.1;“尚未发布”描述的是当时状态。
|
|
15
|
-
|
|
16
|
-
## 0.23.1-rc.5(本地回归候选,尚未发布)
|
|
17
|
-
|
|
18
|
-
- 修复状态查询显示允许提交、实际却因技能未执行或回执过期而拒绝的不一致。status 新增 evidence_blockers,commit.allowed 纳入同一技能与文件摘要检查;不改写历史验证回执。
|
|
19
|
-
- 回归覆盖缺失技能、两种回执同时过期、只刷新验证、全部刷新后恢复,以及只读状态查询不修改台账。
|
|
20
|
-
- 测试说明区分已执行但失败、依赖阻塞未执行和模拟验证,要求测试对象与证据对应;不以报告行数证明质量。
|
|
21
|
-
|
|
22
|
-
## 0.23.1-rc.4(本地回归候选,尚未发布)
|
|
7
|
+
## 0.23.2
|
|
23
8
|
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
## 0.23.1-rc.3(本地回归候选,尚未发布)
|
|
29
|
-
|
|
30
|
-
- 状态明确列出需要命令回执的附加技能;内置技能不重复要求 skill_result,可选的内置回执过期不会额外阻塞流程。
|
|
31
|
-
- 派工前登记 dispatch,自动标记实施项进行中;重派清除旧审核,禁止同时派发另一进行中项。登记表示派工意图,实际执行以工具日志为准。
|
|
32
|
-
- 已有实施项更新可省略标题,保留原文和审核;已审核项改标题且仍标完成时立即拒绝,避免追加修复项造成审核静默丢失。
|
|
33
|
-
- 方案要求核对真实接口字段及组件行为;审批驳回后先获取反馈、修订方案,再重新申请。
|
|
34
|
-
- 验证和审核指引补充异步时序、组件交互及上游异常响应检查;编译和源码匹配不能代替行为测试。
|
|
35
|
-
- 已安装并在原 EAMDEV-R2 任务实机验证:省略标题保留审核、派工先设进行中、重派撤销旧审核。完整终态闭环仍在验证。
|
|
36
|
-
|
|
37
|
-
## 0.23.1-rc.2(本地回归候选,尚未发布)
|
|
38
|
-
|
|
39
|
-
- 修复同名项目/个人资源覆盖导致来源误标。
|
|
40
|
-
- 第二轮实机发现并修复 Windows CRLF / BOM 导致内置技能注册、技能列表与正文读取失败;安装包检查覆盖七个内置技能注册。
|
|
41
|
-
- status 支持不带 task_id 发现工作区任务;更新实施项状态保留已有审核记录。
|
|
42
|
-
- 验证命令继承调用会话的沙箱策略及取消信号,返回真实失败与沙箱信息。
|
|
43
|
-
- 标准流程 v2 将提交放在审核之后;新任务完成前检查真实提交回执。
|
|
44
|
-
- 新任务检查技能加载记录,附加技能要求执行证据;终态技能提前执行。
|
|
45
|
-
- 验证回执关联声明文件内容,文件或范围变化后须重验。旧任务不强制迁移。
|
|
46
|
-
|
|
47
|
-
真实 EAM 项目重跑尚未完成,不能据自动化测试宣告实机闭环通过。
|
|
9
|
+
- 修复 verify / skill_result 先执行命令后审批、批准权限未传入 shell 的问题;拒绝、取消或审批不可用时不执行命令。
|
|
10
|
+
- 审批显示实际验证命令;批准模式只用于本次命令和回执写入,不改变会话策略,也不重复申请保存回执的审批。
|
|
11
|
+
- 修正提交规则与手册中的模块名示例,第一段使用当前任务 id,第二段使用 status 的 commit.label;自定义格式以任务冻结流程为准。
|
|
12
|
+
- dshtest 首轮在 0.23.1 复现权限问题;修复后连续两轮完整开发、验证、审核、本地提交及归档回退通过。专项覆盖审批拒绝、原命令批准执行、证据过期和单次权限恢复,详见[发布说明](release-0.23.2.md)与[测试报告](testing/0.23.2/测试报告.md)。
|
|
48
13
|
|
|
14
|
+
## 0.23.1
|
|
15
|
+
|
|
16
|
+
- 汇总本轮候选版的资源来源、Windows 技能加载、实施审核保留、派工状态、真实技能/验证/提交回执及状态一致性修复。
|
|
17
|
+
- 新增 status.artifact_requirements,提前披露当前阶段的记录字段和缺项;未知字段拒绝时给出恢复指引,整次写入保持不变。
|
|
18
|
+
- 需求技能按预设实际字段记录,修正敏捷流程误用标准字段的问题;小修正、权限恢复、契约核对和测试证据说明同步更新。
|
|
19
|
+
- 旧任务保留冻结流程,新任务使用标准 v2 和执行证据门禁。实际能力及未覆盖边界见[发布说明](release-0.23.1.md)与[测试说明](testing/0.23.1/测试报告.md)。
|
|
20
|
+
|
|
21
|
+
以下 rc 条目为本轮迭代历史,已汇总至 0.23.1;“尚未发布”描述的是当时状态。
|
|
22
|
+
|
|
23
|
+
## 0.23.1-rc.5(本地回归候选,尚未发布)
|
|
24
|
+
|
|
25
|
+
- 修复状态查询显示允许提交、实际却因技能未执行或回执过期而拒绝的不一致。status 新增 evidence_blockers,commit.allowed 纳入同一技能与文件摘要检查;不改写历史验证回执。
|
|
26
|
+
- 回归覆盖缺失技能、两种回执同时过期、只刷新验证、全部刷新后恢复,以及只读状态查询不修改台账。
|
|
27
|
+
- 测试说明区分已执行但失败、依赖阻塞未执行和模拟验证,要求测试对象与证据对应;不以报告行数证明质量。
|
|
28
|
+
|
|
29
|
+
## 0.23.1-rc.4(本地回归候选,尚未发布)
|
|
30
|
+
|
|
31
|
+
- 小修正允许主代理实施,保留两阶段审核与必要验证,不强制重新派子代理和无关编译。
|
|
32
|
+
- 子任务指引要求沙箱拒绝后走正式审批或报告阻塞,禁止反复换等价命令、改 ACL 规避。
|
|
33
|
+
- 这些是执行指引改进,不替代 Harness 沙箱或子代理控制能力;实际回归仍在进行。
|
|
34
|
+
|
|
35
|
+
## 0.23.1-rc.3(本地回归候选,尚未发布)
|
|
36
|
+
|
|
37
|
+
- 状态明确列出需要命令回执的附加技能;内置技能不重复要求 skill_result,可选的内置回执过期不会额外阻塞流程。
|
|
38
|
+
- 派工前登记 dispatch,自动标记实施项进行中;重派清除旧审核,禁止同时派发另一进行中项。登记表示派工意图,实际执行以工具日志为准。
|
|
39
|
+
- 已有实施项更新可省略标题,保留原文和审核;已审核项改标题且仍标完成时立即拒绝,避免追加修复项造成审核静默丢失。
|
|
40
|
+
- 方案要求核对真实接口字段及组件行为;审批驳回后先获取反馈、修订方案,再重新申请。
|
|
41
|
+
- 验证和审核指引补充异步时序、组件交互及上游异常响应检查;编译和源码匹配不能代替行为测试。
|
|
42
|
+
- 已安装并在原 EAMDEV-R2 任务实机验证:省略标题保留审核、派工先设进行中、重派撤销旧审核。完整终态闭环仍在验证。
|
|
43
|
+
|
|
44
|
+
## 0.23.1-rc.2(本地回归候选,尚未发布)
|
|
45
|
+
|
|
46
|
+
- 修复同名项目/个人资源覆盖导致来源误标。
|
|
47
|
+
- 第二轮实机发现并修复 Windows CRLF / BOM 导致内置技能注册、技能列表与正文读取失败;安装包检查覆盖七个内置技能注册。
|
|
48
|
+
- status 支持不带 task_id 发现工作区任务;更新实施项状态保留已有审核记录。
|
|
49
|
+
- 验证命令继承调用会话的沙箱策略及取消信号,返回真实失败与沙箱信息。
|
|
50
|
+
- 标准流程 v2 将提交放在审核之后;新任务完成前检查真实提交回执。
|
|
51
|
+
- 新任务检查技能加载记录,附加技能要求执行证据;终态技能提前执行。
|
|
52
|
+
- 验证回执关联声明文件内容,文件或范围变化后须重验。旧任务不强制迁移。
|
|
53
|
+
|
|
54
|
+
真实 EAM 项目重跑尚未完成,不能据自动化测试宣告实机闭环通过。
|
|
55
|
+
|
|
49
56
|
## 0.23.0
|
|
50
57
|
|
|
51
58
|
- 技能选择系统文件夹,规则选择 Markdown 文件,预览后确认安装。
|
package/docs/README.md
CHANGED
|
@@ -20,8 +20,10 @@ DSH Task Engine 是 DeepSeek Harness 的个人工程流程工作台。先完成
|
|
|
20
20
|
| :--- | :--- |
|
|
21
21
|
| [开发指南](development.md) | 构建、测试、包结构与可选 host 接入。 |
|
|
22
22
|
| [功能规划](roadmap.md) | 自定义流程的提案范围,区分已发布功能与规划。 |
|
|
23
|
-
| [更新日志](CHANGELOG.md) | 按版本查阅变化。 |
|
|
24
|
-
| [0.23.
|
|
25
|
-
| [0.23.
|
|
26
|
-
| [0.23.
|
|
23
|
+
| [更新日志](CHANGELOG.md) | 按版本查阅变化。 |
|
|
24
|
+
| [0.23.2 发布说明](release-0.23.2.md) | 验证命令单次审批修复、提交指引与管控边界。 |
|
|
25
|
+
| [0.23.2 测试报告](testing/0.23.2/测试报告.md) | 两轮完整开发、归档回退与门禁专项的实际结果。 |
|
|
26
|
+
| [0.23.1 发布说明](release-0.23.1.md) | 真实项目发现的问题、修复及能力边界。 |
|
|
27
|
+
| [0.23.1 测试说明](testing/0.23.1/测试报告.md) | 自动化、安装包与实机证据的适用范围。 |
|
|
28
|
+
| [0.23.0 发布说明](release-0.23.0.md) | 前一版安装交互及界面调整。 |
|
|
27
29
|
| [插件收录材料](listing/submission.md) | Awesome DSH Plugin 的提交条件与条目草稿。 |
|
package/docs/configuration.md
CHANGED
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
|
|
29
29
|
当前绑定采用追加方式:项目增加的名称会与预设默认项合并去重;取消默认项的勾选不会移除其绑定。内置同名资源优先,使用不同名称来安装自己的资源。
|
|
30
30
|
|
|
31
|
-
进入阶段后,`dev_task` 披露该阶段的技能名和规则内容。新任务离开阶段前会检查 Harness 的 skill 工具成功加载记录;附加技能还须记录 `skill_result`(技能名、执行场景、真实验收命令回执)。`status.skill_obligations` 中的 `command_receipts_required` 列出需要回执的技能;七个内置技能使用已有的记录、验证、审核和提交操作,无需重复登记附加回执。安装一个技能不会自动执行其中的脚本。
|
|
32
|
-
|
|
33
|
-
挂在终态(例如“完成”)的技能在进入终态前执行。测试技能通常建议挂在“交付”;现有“完成”绑定也会在审核阶段执行后才放行。标准流程 v2 在审核通过后提交,并核对真实 Git HEAD。修改文件或声明范围后,旧验证回执失效。
|
|
34
|
-
|
|
31
|
+
进入阶段后,`dev_task` 披露该阶段的技能名和规则内容。新任务离开阶段前会检查 Harness 的 skill 工具成功加载记录;附加技能还须记录 `skill_result`(技能名、执行场景、真实验收命令回执)。`status.skill_obligations` 中的 `command_receipts_required` 列出需要回执的技能;七个内置技能使用已有的记录、验证、审核和提交操作,无需重复登记附加回执。安装一个技能不会自动执行其中的脚本。
|
|
32
|
+
|
|
33
|
+
挂在终态(例如“完成”)的技能在进入终态前执行。测试技能通常建议挂在“交付”;现有“完成”绑定也会在审核阶段执行后才放行。标准流程 v2 在审核通过后提交,并核对真实 Git HEAD。修改文件或声明范围后,旧验证回执失效。
|
|
34
|
+
|
|
35
35
|
资源管理保留项目和个人目录的同名条目,避免来源误标和误操作。绑定仍按名称选择,内置优先;自建同名资源按项目优先于个人解析。技能最终由 Harness 的技能目录加载。
|
|
36
36
|
|
|
37
37
|
## 哪些内容暂时不能修改
|
package/docs/faq.md
CHANGED
|
@@ -28,9 +28,13 @@
|
|
|
28
28
|
|
|
29
29
|
## 工具显示验证或审核通过,能完全相信吗?
|
|
30
30
|
|
|
31
|
-
0.23.1 新建任务的验证需要真实命令回执,要求退出码为 0 且未超时、中止或被沙箱拒绝;代码修改后需重验。旧任务保持原验证约定。附加技能记录加载、命令和场景证据;审核和实施项结论仍由模型记录。命令覆盖是否充分、审核是否准确仍需判断,不能把一个成功退出码当作全部需求已验证。
|
|
31
|
+
0.23.1 新建任务的验证需要真实命令回执,要求退出码为 0 且未超时、中止或被沙箱拒绝;代码修改后需重验。旧任务保持原验证约定。附加技能记录加载、命令和场景证据;审核和实施项结论仍由模型记录。命令覆盖是否充分、审核是否准确仍需判断,不能把一个成功退出码当作全部需求已验证。
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## 验证命令被沙箱阻止怎么办?
|
|
34
|
+
|
|
35
|
+
`verify` 和 `skill_result` 默认使用会话沙箱策略。原命令因权限受阻时,可携带 `sandbox_permissions: "danger-full-access"` 与 `justification` 申请单次重试;审批显示实际命令,批准后才执行,不改变后续调用的会话权限。拒绝、取消或缺少审批服务均不运行命令、不写入回执。不要用另一条简单命令替代原验收。详见验证技能说明。
|
|
36
|
+
|
|
37
|
+
## 本地提交钩子有什么作用?
|
|
34
38
|
|
|
35
39
|
它在普通 git commit 时检查任务、阶段、消息和文件范围。`--no-verify`、替换 hooksPath 或直接修改本地数据仍可能绕过检查;项目需要更强的提交约束时,应结合自己的 CI 和人工审核。
|
|
36
40
|
|
package/docs/manual.html
CHANGED
|
@@ -265,14 +265,14 @@ pnpm install && pnpm run build && pnpm dsh web</code></pre>
|
|
|
265
265
|
<tbody>
|
|
266
266
|
<tr><td>需求评审</td><td>拆需求、落「需求说明」</td><td>字段填全,且<b>人点「允许」确认需求</b></td></tr>
|
|
267
267
|
<tr><td>设计</td><td>出最小方案、落「设计文档」</td><td>字段填全,且<b>人点「允许」确认方案</b></td></tr>
|
|
268
|
-
<tr><td>开发</td><td>独立交付可派子代理,小修正可由主代理实施;每项做规格 + 质量两阶段评审</td><td>实施项非空且全部 done(每项带两阶段评审);已有项可省略标题,改已审核标题须显式重开</td></tr>
|
|
268
|
+
<tr><td>开发</td><td>独立交付可派子代理,小修正可由主代理实施;每项做规格 + 质量两阶段评审</td><td>实施项非空且全部 done(每项带两阶段评审);已有项可省略标题,改已审核标题须显式重开</td></tr>
|
|
269
269
|
<tr><td>交付</td><td>执行验证、记录证据</td><td>新任务必须真实命令回执,退出码 0,未超时、取消或被沙箱拒绝</td></tr>
|
|
270
270
|
<tr><td>代码审核</td><td>评审变更,执行终态技能,受控提交</td><td>结论通过、字段填全、技能义务完成且真实 Git 提交已回写</td></tr>
|
|
271
271
|
<tr><td>完成</td><td>收尾</td><td>—</td></tr>
|
|
272
272
|
</tbody>
|
|
273
273
|
</table>
|
|
274
274
|
</div>
|
|
275
|
-
<p>新任务离开阶段前检查绑定技能是否通过 skill 工具成功加载;附加技能需通过 <code>skill_result</code> 记录执行场景与真实验收命令;状态中的 <code>command_receipts_required</code> 列出这些技能,七个内置技能无需重复登记。挂在“完成”的技能在前一阶段执行。命令成功只证明该命令通过,不证明测试覆盖完整。审核改动后须重跑验证。旧任务继续使用冻结快照。</p>
|
|
275
|
+
<p>新任务离开阶段前检查绑定技能是否通过 skill 工具成功加载;附加技能需通过 <code>skill_result</code> 记录执行场景与真实验收命令;状态中的 <code>command_receipts_required</code> 列出这些技能,七个内置技能无需重复登记。挂在“完成”的技能在前一阶段执行。命令成功只证明该命令通过,不证明测试覆盖完整。审核改动后须重跑验证。旧任务继续使用冻结快照。</p>
|
|
276
276
|
<h3>贯穿全程的硬规则</h3>
|
|
277
277
|
<ul>
|
|
278
278
|
<li>阶段是硬状态:status 说你在哪,就只做那一步,绝不倒带重走、绝不跳。</li>
|
|
@@ -329,7 +329,7 @@ pnpm install && pnpm run build && pnpm dsh web</code></pre>
|
|
|
329
329
|
</tbody>
|
|
330
330
|
</table>
|
|
331
331
|
</div>
|
|
332
|
-
<p
|
|
332
|
+
<p>内置流程的提交消息要求 <code>【任务 id】【TASK】结果说明</code>,第一段填写当前任务 id,第二段使用 <code>dev_task status</code> 返回的 <code>commit.label</code>;自定义格式由任务冻结流程决定。只提交任务 <code>files</code> 范围内的文件。要彻底封死模型绕过 <code>dev_task</code> 直接 <code>git commit</code>,给仓库装一道机械钩子:</p>
|
|
333
333
|
<pre><code>dev_task operation=install_hook # 装入 .git/hooks/commit-msg,装上后任何 git commit 都被同一套规则校验
|
|
334
334
|
dev_task operation=verify_hook # 随时比对安装钩子与内置门禁的 hash,被替换/篡改立即报错</code></pre>
|
|
335
335
|
<p><strong>钩子的额外硬校验(0.21/0.22):</strong>① 任务记录的流程快照带 SHA-256 hash,被手改过的快照一律拒绝提交;② 触及敏感路径(<code>.env</code>、credentials、secrets、<code>.git</code>;<code>.dsh</code> 的任务记录与流程配置由快照 hash 与豁免保护,项目级 rules/skills 属常规内容)的提交,要求任务为 <code>high_risk</code> 且验证有真实命令回执,否则拒绝;③ 删除、类型变换、重命名的旧·新路径都受范围检查。</p>
|
|
@@ -360,7 +360,7 @@ risk_level: high_risk // 涉及鉴权,验证要加证据
|
|
|
360
360
|
- 文件改动后必须重新验证,旧回执失效。
|
|
361
361
|
|
|
362
362
|
⑤ 代码审核
|
|
363
|
-
- 结论:通过 · 问题:无
|
|
363
|
+
- 结论:通过 · 问题:无
|
|
364
364
|
- 执行挂在完成阶段的附加技能,再提交并回写真实 hash。
|
|
365
365
|
|
|
366
366
|
⑥ 完成</code></pre>
|
|
@@ -382,11 +382,12 @@ risk_level: high_risk // 涉及鉴权,验证要加证据
|
|
|
382
382
|
<details><summary>Remote 如何限制工作区?</summary><div>有 <code>workspaceRegistry.resolveByPath</code> 的 Harness 使用主机注册目录;未注册路径拒绝。旧主机保留绝对路径和系统目录检查,并提供严格注册 API。工作区注册不等于当前会话授权;共享多用户部署仍需要调用上下文和主机权限边界。</div></details>
|
|
383
383
|
<details><summary>dev_task 写文件被沙箱拒绝(file access denied)怎么办?</summary><div>沙箱按调用策略放行写入,偶发的越界误判可用一次性升级重试:同一操作加 <code>sandbox_permissions: "workspace-write"(或 "danger-full-access")</code> 并配 <code>justification</code>(一句话说明原因),升级需要<b>人工批准</b>;无审批服务时直接拒绝。日常任务记录写入默认已在会话工作区内放行,通常无需升级。</div></details>
|
|
384
384
|
<details><summary>「完成」等于上线了吗?</summary><div>不等于。<code>done</code> 只表示本地验证与必要评审通过;上线、合并、发布需人另行决定。</div></details>
|
|
385
|
-
<p>状态查询中的 <code>evidence_blockers</code> 列出过期验证和附加技能回执;<code>commit.allowed</code> 同时检查这些阻塞及技能执行义务。<code>legal_next</code> 是流程定义的候选去向,不表示所有门禁已通过。</p>
|
|
386
|
-
<details><summary>记录需求时提示字段不存在怎么办?</summary><div>先读取 <code>status.artifact_requirements</code>,按当前阶段列出的字段填写。标准需求为 <code>scope</code> 和 <code>acceptance_criteria</code>,敏捷流程只有 <code>scope</code>。疑问、假设或待确认取舍写入字段正文,不新增字段名。错误输入整次不保存,修正后再提交;不需要修改流程配置或历史任务记录。</div></details>
|
|
387
|
-
<
|
|
385
|
+
<p>状态查询中的 <code>evidence_blockers</code> 列出过期验证和附加技能回执;<code>commit.allowed</code> 同时检查这些阻塞及技能执行义务。<code>legal_next</code> 是流程定义的候选去向,不表示所有门禁已通过。</p>
|
|
386
|
+
<details><summary>记录需求时提示字段不存在怎么办?</summary><div>先读取 <code>status.artifact_requirements</code>,按当前阶段列出的字段填写。标准需求为 <code>scope</code> 和 <code>acceptance_criteria</code>,敏捷流程只有 <code>scope</code>。疑问、假设或待确认取舍写入字段正文,不新增字段名。错误输入整次不保存,修正后再提交;不需要修改流程配置或历史任务记录。</div></details>
|
|
387
|
+
<details><summary>验证命令被沙箱阻止怎么办?</summary><div><code>verify</code> 与 <code>skill_result</code> 默认使用会话权限。原命令被沙箱阻止后,用相同命令和 <code>sandbox_permissions: "danger-full-access"</code>、<code>justification</code> 申请单次重试。审批显示命令,批准后才执行;拒绝、取消或审批不可用时不执行、不写回执。授权只对本次调用生效,不改变会话权限。以本次回执的实际模式和退出码判断结果。</div></details>
|
|
388
|
+
<p class="stamp">版本 0.23.2-rc.1 · 验证命令审批修复候选 · 最后更新:2026-09-17</p>
|
|
388
389
|
</section>
|
|
389
390
|
</main>
|
|
390
391
|
</div>
|
|
391
392
|
</body>
|
|
392
|
-
</html>
|
|
393
|
+
</html>
|
package/docs/release-0.23.1.md
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
# 0.23.1:真实项目回归后的流程修复
|
|
2
|
-
|
|
3
|
-
[← 文档导航](README.md)
|
|
4
|
-
|
|
5
|
-
本版集中修复真实开发中暴露的资源来源、技能执行、审核记录、验证与提交问题,并改善错误提示。仍使用三个预设流程,不包含自定义流程编排。
|
|
6
|
-
|
|
7
|
-
## 问题与处理
|
|
8
|
-
|
|
9
|
-
| 问题 | 处理方法 | 约束性质 |
|
|
10
|
-
| --- | --- | --- |
|
|
11
|
-
| 项目与个人同名技能被覆盖,界面来源误标 | 管理目录保留全部来源,绑定按名称去重;项目同名规则优先于个人规则 | 代码修复;技能正文最终解析由 Harness 负责 |
|
|
12
|
-
| Windows 的 BOM/CRLF 导致内置技能加载失败 | 技能注册、列表和正文读取兼容两种格式 | 代码修复及安装包测试 |
|
|
13
|
-
| 技能只披露而不执行,终态技能来不及参与验收 | 新任务检查成功的 skill 工具事件;附加技能登记真实命令回执;终态绑定在进入完成前执行 | 流转和提交门禁 |
|
|
14
|
-
| 内置技能被误当附加技能,重复登记导致多余阻塞 | status 列出 command_receipts_required;可选内置回执不升级为额外门禁 | 代码修复 |
|
|
15
|
-
| 更新实施项丢失审核;模型重写旧标题使审核消失 | 同 ID/标题保留审核,已有项可省略标题;已审核项改名须明确重开 | 写入前校验 |
|
|
16
|
-
| 子代理开工后任务项仍显示待办 | dispatch 提前登记并激活唯一进行项;重派清除旧审核 | 计划记录,不能证明子代理实际执行 |
|
|
17
|
-
| 验证未继承调用会话的权限与取消状态 | 验证传递会话沙箱策略、取消信号,保存退出码、超时和沙箱结果 | 代码修复 |
|
|
18
|
-
| 审核后错过提交窗口,完成缺少实际 Git 证据 | 新标准流程 v2 审核后提交;核对真实 HEAD、摘要及文件,回写哈希后完成 | 新任务门禁 |
|
|
19
|
-
| 文件变化后仍沿用旧测试结论 | 回执关联声明文件摘要,变化后重验 | 流转和提交门禁 |
|
|
20
|
-
| status 显示允许提交,实际被过期回执拒绝 | status.commit.allowed 同时检查技能与回执,evidence_blockers 列出过期原因 | 状态与执行校验一致 |
|
|
21
|
-
| 模型发明记录字段,需求写入被拒绝 | status.artifact_requirements 主动列出当前阶段允许字段和缺项;错误附恢复说明且不保存 | 保持严格校验,改善可发现性 |
|
|
22
|
-
| 小修正也强制派子代理,失败后重复换命令试探 | 小修正允许主代理实施,仍需审核与验证;权限拒绝走正式审批或报告阻塞 | 技能指引,不是硬拦截 |
|
|
23
|
-
| 猜测接口字段、混淆模拟测试与真实联调 | 设计核对原始契约与实际组件;报告区分对象、执行状态及证据来源 | 技能指引和人工审核 |
|
|
24
|
-
|
|
25
|
-
## 新的状态信息
|
|
26
|
-
|
|
27
|
-
标准流程在需求阶段返回的字段提示示例:
|
|
28
|
-
|
|
29
|
-
```json
|
|
30
|
-
{
|
|
31
|
-
"artifact_requirements": [
|
|
32
|
-
{
|
|
33
|
-
"id": "requirement",
|
|
34
|
-
"name": "需求说明",
|
|
35
|
-
"fields": ["scope", "acceptance_criteria"],
|
|
36
|
-
"missing_fields": ["scope", "acceptance_criteria"]
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
字段来自任务冻结流程,不硬编码同一套字段给所有预设。例如敏捷流程只有 scope;疑问和技术取舍写在已有字段正文,不增加字段名。无记录要求的阶段返回空列表。查询不会更改台账。
|
|
43
|
-
|
|
44
|
-
`legal_next` 是流程图中的候选去向,不表示门禁已经通过。`commit.allowed` 是阶段、技能和回执层面的提交资格;实际 commit 仍会检查此次输入的文件范围、摘要及所回写的 Git 证据。
|
|
45
|
-
|
|
46
|
-
## 验证结果与边界
|
|
47
|
-
|
|
48
|
-
自动化及安装包结果见 [0.23.1 测试说明](testing/0.23.1/测试报告.md)。候选版 rc.3 在一项真实需求中完成了需求/方案审批、8个实施项双阶段审核、测试技能执行、真实验证和本地提交回写。rc.5 与本次字段提示修复有定向回归及包验证,未再次执行整轮真实需求。
|
|
49
|
-
|
|
50
|
-
该实机过程包含观察方纠正契约、复现异步缺陷和修订报告的干预,不能称为完全自主交付。业务结构树真实联调仍有环境与请求差异待核实,不能用插件本地闭环证明业务端到端可用。
|
|
51
|
-
|
|
52
|
-
以下问题不由本版解决:Harness 内的文件删除权限限制、同步子代理反馈传播、模型服务鉴权/额度、旧业务项目的 Node/webpack 和测试运行器兼容问题。插件保留失败证据并指导正式恢复,不修改宿主权限系统或模型凭证。
|
|
53
|
-
|
|
54
|
-
命令退出码成功不证明覆盖充分;本地记录不是防篡改存储;声明文件摘要不涵盖数据库、远程服务和未声明文件。报告准确性与代码质量仍需审核。
|
|
55
|
-
|
|
56
|
-
## 升级与后续重跑
|
|
57
|
-
|
|
58
|
-
升级安装后重启 Harness。既有任务沿用冻结流程及原执行约定,不自动迁移到新标准流程;新的执行证据门禁用于带 execution_version=1 的任务。需要比较插件效果时,归档上一轮任务和业务差异,在独立测试项目中将本需求改动恢复到同一基线,再用新会话完整重跑。保留插件修复及历轮证据,不能为重跑无差别清理用户文件。
|
|
1
|
+
# 0.23.1:真实项目回归后的流程修复
|
|
2
|
+
|
|
3
|
+
[← 文档导航](README.md)
|
|
4
|
+
|
|
5
|
+
本版集中修复真实开发中暴露的资源来源、技能执行、审核记录、验证与提交问题,并改善错误提示。仍使用三个预设流程,不包含自定义流程编排。
|
|
6
|
+
|
|
7
|
+
## 问题与处理
|
|
8
|
+
|
|
9
|
+
| 问题 | 处理方法 | 约束性质 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| 项目与个人同名技能被覆盖,界面来源误标 | 管理目录保留全部来源,绑定按名称去重;项目同名规则优先于个人规则 | 代码修复;技能正文最终解析由 Harness 负责 |
|
|
12
|
+
| Windows 的 BOM/CRLF 导致内置技能加载失败 | 技能注册、列表和正文读取兼容两种格式 | 代码修复及安装包测试 |
|
|
13
|
+
| 技能只披露而不执行,终态技能来不及参与验收 | 新任务检查成功的 skill 工具事件;附加技能登记真实命令回执;终态绑定在进入完成前执行 | 流转和提交门禁 |
|
|
14
|
+
| 内置技能被误当附加技能,重复登记导致多余阻塞 | status 列出 command_receipts_required;可选内置回执不升级为额外门禁 | 代码修复 |
|
|
15
|
+
| 更新实施项丢失审核;模型重写旧标题使审核消失 | 同 ID/标题保留审核,已有项可省略标题;已审核项改名须明确重开 | 写入前校验 |
|
|
16
|
+
| 子代理开工后任务项仍显示待办 | dispatch 提前登记并激活唯一进行项;重派清除旧审核 | 计划记录,不能证明子代理实际执行 |
|
|
17
|
+
| 验证未继承调用会话的权限与取消状态 | 验证传递会话沙箱策略、取消信号,保存退出码、超时和沙箱结果 | 代码修复 |
|
|
18
|
+
| 审核后错过提交窗口,完成缺少实际 Git 证据 | 新标准流程 v2 审核后提交;核对真实 HEAD、摘要及文件,回写哈希后完成 | 新任务门禁 |
|
|
19
|
+
| 文件变化后仍沿用旧测试结论 | 回执关联声明文件摘要,变化后重验 | 流转和提交门禁 |
|
|
20
|
+
| status 显示允许提交,实际被过期回执拒绝 | status.commit.allowed 同时检查技能与回执,evidence_blockers 列出过期原因 | 状态与执行校验一致 |
|
|
21
|
+
| 模型发明记录字段,需求写入被拒绝 | status.artifact_requirements 主动列出当前阶段允许字段和缺项;错误附恢复说明且不保存 | 保持严格校验,改善可发现性 |
|
|
22
|
+
| 小修正也强制派子代理,失败后重复换命令试探 | 小修正允许主代理实施,仍需审核与验证;权限拒绝走正式审批或报告阻塞 | 技能指引,不是硬拦截 |
|
|
23
|
+
| 猜测接口字段、混淆模拟测试与真实联调 | 设计核对原始契约与实际组件;报告区分对象、执行状态及证据来源 | 技能指引和人工审核 |
|
|
24
|
+
|
|
25
|
+
## 新的状态信息
|
|
26
|
+
|
|
27
|
+
标准流程在需求阶段返回的字段提示示例:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"artifact_requirements": [
|
|
32
|
+
{
|
|
33
|
+
"id": "requirement",
|
|
34
|
+
"name": "需求说明",
|
|
35
|
+
"fields": ["scope", "acceptance_criteria"],
|
|
36
|
+
"missing_fields": ["scope", "acceptance_criteria"]
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
字段来自任务冻结流程,不硬编码同一套字段给所有预设。例如敏捷流程只有 scope;疑问和技术取舍写在已有字段正文,不增加字段名。无记录要求的阶段返回空列表。查询不会更改台账。
|
|
43
|
+
|
|
44
|
+
`legal_next` 是流程图中的候选去向,不表示门禁已经通过。`commit.allowed` 是阶段、技能和回执层面的提交资格;实际 commit 仍会检查此次输入的文件范围、摘要及所回写的 Git 证据。
|
|
45
|
+
|
|
46
|
+
## 验证结果与边界
|
|
47
|
+
|
|
48
|
+
自动化及安装包结果见 [0.23.1 测试说明](testing/0.23.1/测试报告.md)。候选版 rc.3 在一项真实需求中完成了需求/方案审批、8个实施项双阶段审核、测试技能执行、真实验证和本地提交回写。rc.5 与本次字段提示修复有定向回归及包验证,未再次执行整轮真实需求。
|
|
49
|
+
|
|
50
|
+
该实机过程包含观察方纠正契约、复现异步缺陷和修订报告的干预,不能称为完全自主交付。业务结构树真实联调仍有环境与请求差异待核实,不能用插件本地闭环证明业务端到端可用。
|
|
51
|
+
|
|
52
|
+
以下问题不由本版解决:Harness 内的文件删除权限限制、同步子代理反馈传播、模型服务鉴权/额度、旧业务项目的 Node/webpack 和测试运行器兼容问题。插件保留失败证据并指导正式恢复,不修改宿主权限系统或模型凭证。
|
|
53
|
+
|
|
54
|
+
命令退出码成功不证明覆盖充分;本地记录不是防篡改存储;声明文件摘要不涵盖数据库、远程服务和未声明文件。报告准确性与代码质量仍需审核。
|
|
55
|
+
|
|
56
|
+
## 升级与后续重跑
|
|
57
|
+
|
|
58
|
+
升级安装后重启 Harness。既有任务沿用冻结流程及原执行约定,不自动迁移到新标准流程;新的执行证据门禁用于带 execution_version=1 的任务。需要比较插件效果时,归档上一轮任务和业务差异,在独立测试项目中将本需求改动恢复到同一基线,再用新会话完整重跑。保留插件修复及历轮证据,不能为重跑无差别清理用户文件。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 0.23.2 发布说明
|
|
2
|
+
|
|
3
|
+
[← 文档导航](README.md)
|
|
4
|
+
|
|
5
|
+
本版修复验证命令的单次权限审批,并统一提交消息指引。
|
|
6
|
+
|
|
7
|
+
## 验证命令在批准后执行
|
|
8
|
+
|
|
9
|
+
0.23.1 的 `verify` / `skill_result` 先运行命令,再为写入任务台账申请权限;即使用户批准 `danger-full-access`,测试命令仍可能在 `workspace-write` 下失败。实机中,`npm test` 的 Node 子进程因此报 `spawn EPERM`,任务无法完成交付验证。
|
|
10
|
+
|
|
11
|
+
本版先校验参数并取得批准,再将批准模式传给本次验证命令。审批展示实际命令与工作区;回执保存复用同一次批准。拒绝、取消或审批服务不可用时不执行命令、不写台账。后续调用继续使用原会话策略。`verify` / `skill_result` 的调用字段保持兼容。
|
|
12
|
+
|
|
13
|
+
## 提交指引与引擎一致
|
|
14
|
+
|
|
15
|
+
内置流程的第一组括号填写当前任务 id,第二组使用 `status.commit.label`,例如 `【DSH-REG-R03】【TASK】实现批次统计 CLI`。规则与手册不再把模块名写成第一段;自定义格式仍由任务冻结流程决定。
|
|
16
|
+
|
|
17
|
+
## 验证范围与管控边界
|
|
18
|
+
|
|
19
|
+
实机测试使用独立 `dshtest` 仓库与标准流程,由 DSH 编写业务代码,观察者审阅审批、执行独立验收并修复插件。每轮业务代码、任务台账与会话日志保留在本地归档,完成轮次回退到同一空业务基线。结果与干预见[测试报告](testing/0.23.2/测试报告.md)。本次不代表 QMS 页面、数据库或生产环境验收。
|
|
20
|
+
|
|
21
|
+
插件控制 `dev_task` 的阶段、证据与提交登记;通用文件编辑工具不会逐次经过该状态机,模型也可能错误解读证据。直接 Git 提交的机械约束需要安装[提交钩子](manual.html),本次独立业务轮次验证的是通过 `dev_task` 完成的受控路径。不要把技能指引等同于对所有工具调用的强制拦截。
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# 0.23.1 发布验证
|
|
2
|
-
|
|
3
|
-
[← 发布说明](../../release-0.23.1.md)
|
|
4
|
-
|
|
5
|
-
日期:2026-09-16。对象:插件 0.23.1。此文记录插件验证,不等同业务项目端到端验收。
|
|
6
|
-
|
|
7
|
-
## 检查范围
|
|
8
|
-
|
|
9
|
-
| 检查 | 内容 | 状态 |
|
|
10
|
-
| --- | --- | --- |
|
|
11
|
-
| 新字段提示回归 | 两个新增用例先失败,修复后通过;错误输入不写入台账,提示按冻结流程变化 | 通过 |
|
|
12
|
-
| 流程回归 | 15项:审核保留、标题保护、派工状态、任务发现、技能回执、沙箱透传、Git回写、过期提示、字段披露及技能来源/注册 | 通过 |
|
|
13
|
-
| host/client 类型检查 | 两个 TypeScript 编译面 | 通过 |
|
|
14
|
-
| P0 与资源测试 | 126项基础检查、18项资源测试 | 通过 |
|
|
15
|
-
| 安装包黑盒 | 打包、干净项目安装、入口导入、客户端注册、包内测试和启用脚本语法 | 通过 |
|
|
16
|
-
|
|
17
|
-
流程用例名称及断言位于包内 `.workflow-test.mjs`,资源用例位于 `.resource-test.mjs`,基础断言位于 `.p0-test.mjs`。发布前执行日志保留在发布工作区。`npm run typecheck` 与 `npm run verify:package` 均退出0,安装包检查包含实际安装后的包内测试。逐项运行明细见[自动化测试明细](自动化测试明细.md)。
|
|
18
|
-
|
|
19
|
-
## 新增用例覆盖
|
|
20
|
-
|
|
21
|
-
1. 当前需求阶段披露 scope/acceptance_criteria;返回准确缺项;未定义字段拒绝时整个记录保持不变;修正字段后可继续。
|
|
22
|
-
2. 敏捷流程仅披露 scope,设计阶段披露自身字段,无记录阶段返回空列表。字段提示从冻结配置读取,不改变历史任务。
|
|
23
|
-
|
|
24
|
-
新增测试在修复前均失败,避免只断言实现自身返回成功。状态查询一致性、真实提交、验证过期及失败技能等既有回归一并执行。
|
|
25
|
-
|
|
26
|
-
## 实机证据的适用范围
|
|
27
|
-
|
|
28
|
-
rc.3 在真实业务需求中走完同一任务的审批、8项实施审核、测试技能、真实命令验证、范围受控本地提交及哈希回写。新增文档后过期的验证和测试技能回执实际阻止过提交,重验后恢复。rc.5 的状态提示修复及本次字段披露有自动化证据;由于用户暂停业务重跑,没有本版完整业务重跑证据。
|
|
29
|
-
|
|
30
|
-
实机包含观察方干预,不算完全自主。业务结构树真实联调未通过;额外布局与虚拟滚动需求未实施。没有以这些未完成事项宣称产品业务全通过。
|
|
31
|
-
|
|
32
|
-
## 发布限制
|
|
33
|
-
|
|
34
|
-
仅已执行检查可标通过。包测试使用模拟宿主与干净安装,不能覆盖所有 Harness 版本、模型行为或共享部署权限场景。技能指引不能强制模型报告内容准确,所有完成结论仍须结合证据审查。
|
|
1
|
+
# 0.23.1 发布验证
|
|
2
|
+
|
|
3
|
+
[← 发布说明](../../release-0.23.1.md)
|
|
4
|
+
|
|
5
|
+
日期:2026-09-16。对象:插件 0.23.1。此文记录插件验证,不等同业务项目端到端验收。
|
|
6
|
+
|
|
7
|
+
## 检查范围
|
|
8
|
+
|
|
9
|
+
| 检查 | 内容 | 状态 |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| 新字段提示回归 | 两个新增用例先失败,修复后通过;错误输入不写入台账,提示按冻结流程变化 | 通过 |
|
|
12
|
+
| 流程回归 | 15项:审核保留、标题保护、派工状态、任务发现、技能回执、沙箱透传、Git回写、过期提示、字段披露及技能来源/注册 | 通过 |
|
|
13
|
+
| host/client 类型检查 | 两个 TypeScript 编译面 | 通过 |
|
|
14
|
+
| P0 与资源测试 | 126项基础检查、18项资源测试 | 通过 |
|
|
15
|
+
| 安装包黑盒 | 打包、干净项目安装、入口导入、客户端注册、包内测试和启用脚本语法 | 通过 |
|
|
16
|
+
|
|
17
|
+
流程用例名称及断言位于包内 `.workflow-test.mjs`,资源用例位于 `.resource-test.mjs`,基础断言位于 `.p0-test.mjs`。发布前执行日志保留在发布工作区。`npm run typecheck` 与 `npm run verify:package` 均退出0,安装包检查包含实际安装后的包内测试。逐项运行明细见[自动化测试明细](自动化测试明细.md)。
|
|
18
|
+
|
|
19
|
+
## 新增用例覆盖
|
|
20
|
+
|
|
21
|
+
1. 当前需求阶段披露 scope/acceptance_criteria;返回准确缺项;未定义字段拒绝时整个记录保持不变;修正字段后可继续。
|
|
22
|
+
2. 敏捷流程仅披露 scope,设计阶段披露自身字段,无记录阶段返回空列表。字段提示从冻结配置读取,不改变历史任务。
|
|
23
|
+
|
|
24
|
+
新增测试在修复前均失败,避免只断言实现自身返回成功。状态查询一致性、真实提交、验证过期及失败技能等既有回归一并执行。
|
|
25
|
+
|
|
26
|
+
## 实机证据的适用范围
|
|
27
|
+
|
|
28
|
+
rc.3 在真实业务需求中走完同一任务的审批、8项实施审核、测试技能、真实命令验证、范围受控本地提交及哈希回写。新增文档后过期的验证和测试技能回执实际阻止过提交,重验后恢复。rc.5 的状态提示修复及本次字段披露有自动化证据;由于用户暂停业务重跑,没有本版完整业务重跑证据。
|
|
29
|
+
|
|
30
|
+
实机包含观察方干预,不算完全自主。业务结构树真实联调未通过;额外布局与虚拟滚动需求未实施。没有以这些未完成事项宣称产品业务全通过。
|
|
31
|
+
|
|
32
|
+
## 发布限制
|
|
33
|
+
|
|
34
|
+
仅已执行检查可标通过。包测试使用模拟宿主与干净安装,不能覆盖所有 Harness 版本、模型行为或共享部署权限场景。技能指引不能强制模型报告内容准确,所有完成结论仍须结合证据审查。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 自动化测试逐项记录
|
|
2
|
+
|
|
3
|
+
来源:r02-business-tests.log;共 50 项。
|
|
4
|
+
|
|
5
|
+
| ID | 用例 | 结果 | 耗时 ms |
|
|
6
|
+
| --- | --- | --- | ---: |
|
|
7
|
+
| 1 | aggregate / 主验收用例:按批次累计并按 batchId 升序输出,总计正确 | 通过 | 1.7221 |
|
|
8
|
+
| 2 | aggregate / 空数组合法:batches 为空且 totals 全为 0 | 通过 | 0.3127 |
|
|
9
|
+
| 3 | aggregate / 零值合法:inspected 与 defective 为 0 时 defectRate 为 0 | 通过 | 0.2572 |
|
|
10
|
+
| 4 | aggregate / defective 为 0 而 inspected 大于 0 时 defectRate 为 0 | 通过 | 0.2215 |
|
|
11
|
+
| 5 | aggregate / batchId 去除前后空格后归并同一批次并累计 | 通过 | 0.1655 |
|
|
12
|
+
| 6 | aggregate / batches 按 batchId 字符串升序(码元序,与本地化无关) | 通过 | 0.2373 |
|
|
13
|
+
| 7 | aggregate / totals 为各批次之和,且 totals.defectRate 由总计重新计算 | 通过 | 0.1854 |
|
|
14
|
+
| 8 | aggregate / 根不是数组时抛出 ValidationError | 通过 | 0.5797 |
|
|
15
|
+
| 9 | defectRateOf / inspected 为 0 时返回 0 | 通过 | 0.2674 |
|
|
16
|
+
| 10 | defectRateOf / 按百分数计算并四舍五入到至多两位小数 | 通过 | 0.247 |
|
|
17
|
+
| 11 | defectRateOf / 所有取值的百分数结果都至多两位小数 | 通过 | 2.3668 |
|
|
18
|
+
| 12 | validateRecord / 返回归一化后的记录(batchId 已去除前后空格) | 通过 | 0.3104 |
|
|
19
|
+
| 13 | validateRecord / 记录不是对象 → 抛出带具体原因的 ValidationError | 通过 | 0.2946 |
|
|
20
|
+
| 14 | validateRecord / 记录是数组或 null → 抛出带具体原因的 ValidationError | 通过 | 0.0734 |
|
|
21
|
+
| 15 | validateRecord / batchId 缺失 → 抛出带具体原因的 ValidationError | 通过 | 0.0679 |
|
|
22
|
+
| 16 | validateRecord / batchId 不是字符串 → 抛出带具体原因的 ValidationError | 通过 | 0.1043 |
|
|
23
|
+
| 17 | validateRecord / batchId 为空字符串 → 抛出带具体原因的 ValidationError | 通过 | 0.0562 |
|
|
24
|
+
| 18 | validateRecord / batchId 为纯空白 → 抛出带具体原因的 ValidationError | 通过 | 0.0991 |
|
|
25
|
+
| 19 | validateRecord / inspected 为字符串数字 → 抛出带具体原因的 ValidationError | 通过 | 0.063 |
|
|
26
|
+
| 20 | validateRecord / inspected 为小数 → 抛出带具体原因的 ValidationError | 通过 | 1.6018 |
|
|
27
|
+
| 21 | validateRecord / inspected 为负数 → 抛出带具体原因的 ValidationError | 通过 | 0.2323 |
|
|
28
|
+
| 22 | validateRecord / defective 为字符串数字 → 抛出带具体原因的 ValidationError | 通过 | 0.0926 |
|
|
29
|
+
| 23 | validateRecord / defective 为小数 → 抛出带具体原因的 ValidationError | 通过 | 0.0762 |
|
|
30
|
+
| 24 | validateRecord / defective 为负数 → 抛出带具体原因的 ValidationError | 通过 | 0.1131 |
|
|
31
|
+
| 25 | validateRecord / defective 大于 inspected → 抛出带具体原因的 ValidationError | 通过 | 0.0584 |
|
|
32
|
+
| 26 | validateRecord / 非法记录的错误信息包含记录下标,便于定位 | 通过 | 0.1725 |
|
|
33
|
+
| 27 | aggregate 对非法输入的短路行为 / 逐条校验,遇到首条非法记录即抛出且不返回结果 | 通过 | 0.117 |
|
|
34
|
+
| 28 | CLI 成功路径(node src/cli.mjs <input.json>) / 主验收用例:B 10/1、A 5/0、B 10/2 → A 5/0/0、B 20/3/15,总计 25/3/12 | 通过 | 490.6289 |
|
|
35
|
+
| 29 | CLI 成功路径(node src/cli.mjs <input.json>) / 空数组合法:batches 为空,totals 全为 0 | 通过 | 281.0915 |
|
|
36
|
+
| 30 | CLI 成功路径(node src/cli.mjs <input.json>) / 零值合法:inspected 与 defective 均为 0 时 defectRate 为 0 | 通过 | 209.3507 |
|
|
37
|
+
| 31 | CLI 成功路径(node src/cli.mjs <input.json>) / batchId 去除前后空格后同批次累计 | 通过 | 113.847 |
|
|
38
|
+
| 32 | CLI 成功路径(node src/cli.mjs <input.json>) / defectRate 至多两位小数且为数值型 | 通过 | 87.8699 |
|
|
39
|
+
| 33 | CLI 参数错误 / 无参数 → 非零退出并说明缺少参数 | 通过 | 82.0618 |
|
|
40
|
+
| 34 | CLI 参数错误 / 文件不存在 → 非零退出并说明读取失败 | 通过 | 81.6583 |
|
|
41
|
+
| 35 | CLI 参数错误 / 多余参数 → 非零退出 | 通过 | 96.195 |
|
|
42
|
+
| 36 | CLI 参数错误 / 未知选项 → 非零退出 | 通过 | 98.5844 |
|
|
43
|
+
| 37 | CLI --help / --help 退出码 0 且 stdout 输出用法 | 通过 | 83.1551 |
|
|
44
|
+
| 38 | CLI --help / -h 退出码 0 且 stdout 输出用法 | 通过 | 89.7449 |
|
|
45
|
+
| 39 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 非法 JSON 文本 | 通过 | 88.3874 |
|
|
46
|
+
| 40 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 根不是数组 | 通过 | 88.4727 |
|
|
47
|
+
| 41 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / batchId 为空字符串 | 通过 | 79.4806 |
|
|
48
|
+
| 42 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / batchId 为纯空白 | 通过 | 78.3269 |
|
|
49
|
+
| 43 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / inspected 为负数 | 通过 | 81.4441 |
|
|
50
|
+
| 44 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 为负数 | 通过 | 76.5963 |
|
|
51
|
+
| 45 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / inspected 为小数 | 通过 | 69.1574 |
|
|
52
|
+
| 46 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 为小数 | 通过 | 72.4095 |
|
|
53
|
+
| 47 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 数字写成字符串 | 通过 | 74.708 |
|
|
54
|
+
| 48 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / defective 大于 inspected | 通过 | 79.6399 |
|
|
55
|
+
| 49 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 记录不是对象 | 通过 | 70.2125 |
|
|
56
|
+
| 50 | CLI 非法输入(非零退出 + stderr 具体原因 + stdout 无成功结果) / 错误信息带记录下标,可定位到具体记录 | 通过 | 75.1616 |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 自动化测试逐项记录
|
|
2
|
+
|
|
3
|
+
来源:r03-business-tests.log;共 32 项。
|
|
4
|
+
|
|
5
|
+
| ID | 用例 | 结果 | 耗时 ms |
|
|
6
|
+
| --- | --- | --- | ---: |
|
|
7
|
+
| 1 | 单元 aggregate:同批次累计、码元升序并输出 defectRate | 通过 | 1.695 |
|
|
8
|
+
| 2 | 单元 aggregate:空数组得到空 batches 与全零 totals | 通过 | 0.2052 |
|
|
9
|
+
| 3 | 单元 aggregate:inspected 为 0 时 defectRate 为 0 | 通过 | 0.1467 |
|
|
10
|
+
| 4 | 单元 aggregate:defectRate 至多两位小数且为数值类型 | 通过 | 0.2306 |
|
|
11
|
+
| 5 | 单元 aggregate:totals.defectRate 基于累计值而非各批次比率平均 | 通过 | 0.111 |
|
|
12
|
+
| 6 | 单元 aggregate:按 batchId 字符串码元升序(大写先于小写) | 通过 | 0.0989 |
|
|
13
|
+
| 7 | 单元 validateRecords:batchId 去除前后空格后作为同一批次 | 通过 | 0.1417 |
|
|
14
|
+
| 8 | 单元 validateRecords:接受非负整数与零值边界 | 通过 | 0.1628 |
|
|
15
|
+
| 9 | 单元 validateRecords:拒绝非数组、非法元素与非法字段 | 通过 | 0.683 |
|
|
16
|
+
| 10 | AC1 同批次累计,stdout 仅一行 JSON,totals 正确 | 通过 | 74.2086 |
|
|
17
|
+
| 11 | AC2 空数组合法 | 通过 | 75.882 |
|
|
18
|
+
| 12 | AC3 零数合法 | 通过 | 85.2254 |
|
|
19
|
+
| 13 | AC4 batchId 去空格归并并按码元升序 | 通过 | 82.9206 |
|
|
20
|
+
| 14 | AC5 非法 JSON 失败且 stdout 为空 | 通过 | 90.9043 |
|
|
21
|
+
| 15 | AC6 顶层非数组失败且 stdout 为空 | 通过 | 379.1634 |
|
|
22
|
+
| 16 | AC7 batchId 为空字符串 → 非零退出、stdout 为空、stderr 具体 | 通过 | 80.0845 |
|
|
23
|
+
| 17 | AC7 batchId 为纯空白 → 非零退出、stdout 为空、stderr 具体 | 通过 | 74.659 |
|
|
24
|
+
| 18 | AC7 batchId 缺失 → 非零退出、stdout 为空、stderr 具体 | 通过 | 78.5134 |
|
|
25
|
+
| 19 | AC8 inspected 为负数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 121.0524 |
|
|
26
|
+
| 20 | AC8 defective 为负数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 77.35 |
|
|
27
|
+
| 21 | AC9 inspected 为小数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 66.7267 |
|
|
28
|
+
| 22 | AC9 defective 为小数 → 非零退出、stdout 为空、stderr 具体 | 通过 | 68.4103 |
|
|
29
|
+
| 23 | AC10 inspected 为字符串数字 → 非零退出、stdout 为空、stderr 具体 | 通过 | 71.1564 |
|
|
30
|
+
| 24 | AC10 defective 为字符串数字 → 非零退出、stdout 为空、stderr 具体 | 通过 | 71.2365 |
|
|
31
|
+
| 25 | AC11 defective 大于 inspected → 非零退出、stdout 为空、stderr 具体 | 通过 | 76.4629 |
|
|
32
|
+
| 26 | 非对象元素 → 非零退出、stdout 为空、stderr 具体 | 通过 | 72.6897 |
|
|
33
|
+
| 27 | AC12 无参数失败并提示用法 | 通过 | 75.6079 |
|
|
34
|
+
| 28 | 多余参数失败并提示用法 | 通过 | 73.248 |
|
|
35
|
+
| 29 | AC13 文件不存在失败且 stdout 为空 | 通过 | 71.4465 |
|
|
36
|
+
| 30 | AC14 --help 退出 0 并输出用法 | 通过 | 141.8224 |
|
|
37
|
+
| 31 | AC14 --help 优先于其他参数 | 通过 | 70.1995 |
|
|
38
|
+
| 32 | AC15 examples/batches.json 可直接运行并得到文档所述结果 | 通过 | 73.5514 |
|