easy-coding-harness 1.0.1 → 1.1.0-beta.0
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/CHANGELOG.md +8 -0
- package/README.md +6 -5
- package/dist/cli.js +1 -30
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/claude/agents/ec-implementer.md +4 -0
- package/templates/claude/agents/ec-reviewer.md +6 -0
- package/templates/codex/agents/ec-implementer.toml +4 -0
- package/templates/codex/agents/ec-reviewer.toml +6 -0
- package/templates/common/skills/ec-analysis/SKILL.md +27 -64
- package/templates/common/skills/ec-config/SKILL.md +5 -6
- package/templates/common/skills/ec-implementing/SKILL.md +22 -7
- package/templates/common/skills/ec-quality/SKILL.md +38 -22
- package/templates/common/skills/ec-workflow/SKILL.md +16 -14
- package/templates/main-constraint/AGENTS.md.tpl +8 -2
- package/templates/main-constraint/CLAUDE.md.tpl +8 -2
- package/templates/qoder/agents/ec-implementer.md +4 -0
- package/templates/qoder/agents/ec-reviewer.md +6 -0
- package/templates/shared-hooks/easy_coding_inputs.py +305 -0
- package/templates/shared-hooks/easy_coding_state.py +328 -329
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,14 @@
|
|
|
6
6
|
- `y`:常规功能升级
|
|
7
7
|
- `z`:日常 bug 修复
|
|
8
8
|
|
|
9
|
+
## 1.1.0-beta.0
|
|
10
|
+
|
|
11
|
+
- 工作流直接采用本轮修改的机械最低模式;局部纠正保留原任务进度和未受影响证据。
|
|
12
|
+
- 验证和审查绑定各自输入,复用有效结果;阶段、计划描述和 Spec 修订号不再使全部测试失效。
|
|
13
|
+
- 指纹在单次运行时操作内共享快照,限制到实际输入,避免全仓扫描和逐文件启动 Git。
|
|
14
|
+
- 统一测试执行与证据登记,局部修复只刷新相关检查,消除旧质量状态造成的往返。
|
|
15
|
+
- 三平台统一最小改动要求,禁止无依据的重复校验、兼容、兜底、重试和防御性复制。
|
|
16
|
+
|
|
9
17
|
## 1.0.1
|
|
10
18
|
|
|
11
19
|
- 将 `1.0.1-beta.0` 晋升为正式版本,包含 TDD 日常 readiness、升级配置保护,以及
|
package/README.md
CHANGED
|
@@ -83,10 +83,11 @@ any stage --[user abort via ec-task-close]--> CLOSED
|
|
|
83
83
|
ANALYSIS → IMPLEMENT 确认一次,随后各阶段在质量门禁通过后自动推进,`auto` 从开始即
|
|
84
84
|
自动推进。所有模式仅在 QUALITY 绿色检查点之后又出现新代码差异时临时暂停:展示
|
|
85
85
|
精确 diff 与摘要,由用户确认该摘要后继续;这不会把 `auto` 永久降级为人工审批。
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
- 执行深度直接使用本轮实际修改的机械最低模式:能 Fast 就 Fast,不再推荐或人为提高档位,
|
|
87
|
+
历史模式不构成下限。局部纠正通过 `begin-correction` 保留原任务进度;审批语义保持独立。
|
|
88
|
+
- 检查通过 `prepare-check` / `record-check` 绑定实际输入并复用。阶段、计划说明或 Spec revision
|
|
89
|
+
不会单独让测试失效;相关源码、测试或构建依赖变化时,仅刷新受影响结果。一次操作共享输入
|
|
90
|
+
快照,状态展示不计算内容指纹,合并测试一次执行并覆盖对应验收项。
|
|
90
91
|
- ANALYSIS 会先通过问答闭合影响技术路线、接口、模型、状态、范围或验收的实质性问题,
|
|
91
92
|
并在 Dev-Spec 中记录唯一的 `decision_status: closed`。会话只展示核心方案、验收摘要、
|
|
92
93
|
Workflow Mode 与主要风险;完整 `dev-spec.md` 通过绝对本地链接或路径按需查看。原生选择
|
|
@@ -94,7 +95,7 @@ any stage --[user abort via ec-task-close]--> CLOSED
|
|
|
94
95
|
- Java TDD 默认关闭;优先级为 session 覆盖 > 项目配置 > `false/90%`。首次开启前必须运行 `ec-tdd-init`,只建设 JUnit/JaCoCo/GitLab 增量覆盖率基础设施,不补存量业务单测;readiness 通过后才允许显式开启。开启后在 ANALYSIS → IMPLEMENT 冻结开关、baseline 与阈值,只验收本任务新增/修改生产代码行,执行 RED/GREEN/REFACTOR(纯重构使用 characterization GREEN → GREEN),并要求本地单测通过、本地差异覆盖率达到冻结阈值。GitLab TEST-stage job 仍会生成,但远程 pipeline 结果不属于 Harness 验收证据,也不会触发中间提交推送。关闭时普通任务不扫描 CI/JaCoCo、不增加命令或提高原工作流验收深度。
|
|
95
96
|
- 所有修改任务都进入 QUALITY;纯对话分析、解释、报告和只读 review 保持 Ready,不创建任务。文档或配置一旦写入仓库,仍走完整状态机。
|
|
96
97
|
- `QUALITY` 同时编排只读 Review Gate 与 Verification Gate。Fast 使用主 Agent 聚焦自审和最小定向验证,Standard 使用一个独立 reviewer 与受影响检查,Strict 使用至少两个独立维度并只对实际修改仓库运行完整适用检查。两个 Gate 绑定同一候选指纹和 attempt,必须完成或明确取消后才形成一次 Repair Bundle;代码/测试缺陷回 IMPLEMENT,契约歧义优先回 ANALYSIS并保留同轮其他缺陷,环境问题留在 QUALITY 重试;候选漂移会审计为 cancelled 并强制先回 IMPLEMENT。
|
|
97
|
-
-
|
|
98
|
+
- 修复仅刷新受影响检查;运行时引用输入未变化的历史证据,保留来源与执行时间,Agent 不重写通过记录。
|
|
98
99
|
- 非 TDD 的 IMPLEMENT 只负责编码,不运行测试;Verification Gate 统一执行 lint/typecheck/test/build。TDD 的 RED/GREEN/REFACTOR 是唯一例外,当前指纹绿色证据可在 QUALITY 复用。
|
|
99
100
|
- QUALITY 通过后冻结验收检查点;若代码随后变化,Harness 展示完整差异并绑定
|
|
100
101
|
`diff_sha256`。用户确认后不重跑 Review Gate:纯非执行差异可沿用
|
package/dist/cli.js
CHANGED
|
@@ -3181,36 +3181,7 @@ async function config() {
|
|
|
3181
3181
|
cancel4("Configuration cancelled.");
|
|
3182
3182
|
return;
|
|
3183
3183
|
}
|
|
3184
|
-
const workflowMode =
|
|
3185
|
-
message: `Select project workflow mode (current: ${current.workflowMode})`,
|
|
3186
|
-
initialValue: current.workflowMode,
|
|
3187
|
-
options: [
|
|
3188
|
-
{
|
|
3189
|
-
value: "adaptive",
|
|
3190
|
-
label: "adaptive \u2014 choose by task risk (default)",
|
|
3191
|
-
hint: "freezes to fast, standard, or strict after ANALYSIS"
|
|
3192
|
-
},
|
|
3193
|
-
{
|
|
3194
|
-
value: "fast",
|
|
3195
|
-
label: "fast \u2014 compact execution for low-risk tasks",
|
|
3196
|
-
hint: "all workflow stages still run"
|
|
3197
|
-
},
|
|
3198
|
-
{
|
|
3199
|
-
value: "standard",
|
|
3200
|
-
label: "standard \u2014 balanced execution",
|
|
3201
|
-
hint: "independent review and impacted verification"
|
|
3202
|
-
},
|
|
3203
|
-
{
|
|
3204
|
-
value: "strict",
|
|
3205
|
-
label: "strict \u2014 maximum assurance",
|
|
3206
|
-
hint: "multi-dimensional review and full verification"
|
|
3207
|
-
}
|
|
3208
|
-
]
|
|
3209
|
-
});
|
|
3210
|
-
if (typeof workflowMode === "symbol") {
|
|
3211
|
-
cancel4("Configuration cancelled.");
|
|
3212
|
-
return;
|
|
3213
|
-
}
|
|
3184
|
+
const workflowMode = "adaptive";
|
|
3214
3185
|
const tddEnabled = await select({
|
|
3215
3186
|
message: `Enable Java TDD for this project (current: ${current.tddEnabled ? "enabled" : "disabled"})`,
|
|
3216
3187
|
initialValue: current.tddEnabled,
|