easy-coding-harness 1.0.1 → 1.1.0-beta.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +17 -15
  3. package/dist/cli.js +209 -195
  4. package/dist/cli.js.map +1 -1
  5. package/package.json +1 -1
  6. package/templates/claude/agents/ec-implementer.md +4 -0
  7. package/templates/claude/agents/ec-reviewer.md +6 -0
  8. package/templates/codex/agents/ec-implementer.toml +4 -0
  9. package/templates/codex/agents/ec-reviewer.toml +6 -0
  10. package/templates/common/bundled-skills/ec-init/SKILL.md +2 -2
  11. package/templates/common/bundled-skills/ec-meta/references/local-architecture/README.md +6 -6
  12. package/templates/common/skills/ec-analysis/SKILL.md +56 -104
  13. package/templates/common/skills/ec-config/SKILL.md +37 -47
  14. package/templates/common/skills/ec-implementing/SKILL.md +26 -10
  15. package/templates/common/skills/ec-lite/SKILL.md +1 -1
  16. package/templates/common/skills/ec-memory/SKILL.md +3 -4
  17. package/templates/common/skills/ec-quality/SKILL.md +46 -25
  18. package/templates/common/skills/ec-task-management/SKILL.md +2 -2
  19. package/templates/common/skills/ec-tdd-init/SKILL.md +7 -7
  20. package/templates/common/skills/ec-workflow/SKILL.md +24 -22
  21. package/templates/main-constraint/AGENTS.md.tpl +23 -16
  22. package/templates/main-constraint/CLAUDE.md.tpl +23 -16
  23. package/templates/qoder/agents/ec-implementer.md +4 -0
  24. package/templates/qoder/agents/ec-reviewer.md +6 -0
  25. package/templates/runtime/tools/easy_coding_java_coverage.py +5 -5
  26. package/templates/shared-hooks/easy_coding_inputs.py +305 -0
  27. package/templates/shared-hooks/easy_coding_state.py +495 -461
  28. package/templates/shared-hooks/inject-subagent-context.py +3 -3
package/CHANGELOG.md CHANGED
@@ -6,6 +6,25 @@
6
6
  - `y`:常规功能升级
7
7
  - `z`:日常 bug 修复
8
8
 
9
+ ## 1.1.0-beta.1
10
+
11
+ - 新增与 TDD 并列的 UT 单测覆盖策略,统一使用 `unit_test_mode: none | ut | tdd`。
12
+ UT 只要求通过的本地单测与达到阈值的改动行覆盖率,不要求 RED/GREEN 过程或独立 TDD 审查。
13
+ - 覆盖率阈值统一为 `ut_coverage_threshold`,UT/TDD 共用,默认 90;一次测试同时生成测试与
14
+ 覆盖率证据,相同输入继续复用结果。
15
+ - 配置 schema 升至 6,迁移旧 TDD 开关和阈值,保留项目/session 继承关系、任务冻结配置、
16
+ 基线与执行进度。三平台配置入口、状态展示和使用说明同步支持三种策略。
17
+ - 升级保留活动 UT/TDD 任务使用的覆盖率工具,避免工具替换导致已有证据整体失效;
18
+ 任务结束后再次运行 `easy-coding upgrade` 即可更新工具,无需重新安装或清空任务。
19
+
20
+ ## 1.1.0-beta.0
21
+
22
+ - 工作流直接采用本轮修改的机械最低模式;局部纠正保留原任务进度和未受影响证据。
23
+ - 验证和审查绑定各自输入,复用有效结果;阶段、计划描述和 Spec 修订号不再使全部测试失效。
24
+ - 指纹在单次运行时操作内共享快照,限制到实际输入,避免全仓扫描和逐文件启动 Git。
25
+ - 统一测试执行与证据登记,局部修复只刷新相关检查,消除旧质量状态造成的往返。
26
+ - 三平台统一最小改动要求,禁止无依据的重复校验、兼容、兜底、重试和防御性复制。
27
+
9
28
  ## 1.0.1
10
29
 
11
30
  - 将 `1.0.1-beta.0` 晋升为正式版本,包含 TDD 日常 readiness、升级配置保护,以及
package/README.md CHANGED
@@ -74,7 +74,7 @@ INIT --[always auto]--> ANALYSIS -> IMPLEMENT -> QUALITY -> MEMORY --[always aut
74
74
  +-- replan ---+ +--- repair ---+
75
75
  approval --[approve / guard / confirm / auto]--> transition wait policy
76
76
  workflow --[adaptive => fast / standard / strict]--> stage execution depth
77
- tdd --[off by default / Java changed-line gate]--> optional test discipline
77
+ unit_test_mode --[none / ut / tdd]--> optional Java test strategy
78
78
  any stage --[user abort via ec-task-close]--> CLOSED
79
79
  ```
80
80
 
@@ -83,18 +83,19 @@ any stage --[user abort via ec-task-close]--> CLOSED
83
83
  ANALYSIS → IMPLEMENT 确认一次,随后各阶段在质量门禁通过后自动推进,`auto` 从开始即
84
84
  自动推进。所有模式仅在 QUALITY 绿色检查点之后又出现新代码差异时临时暂停:展示
85
85
  精确 diff 与摘要,由用户确认该摘要后继续;这不会把 `auto` 永久降级为人工审批。
86
- - 工作流模式优先级为 session 覆盖 > 项目 `behavior.workflow_mode` > `adaptive`。Adaptive
87
- Standard 作为普通业务默认:单仓、最多三个内聚 Unit 且不超过 8 个文件的低风险局部修改
88
- 优先 Fast;只有明确高风险与真实复杂度/大影响面同时存在才进入 Strict。仓库数只按当前
89
- execution plan 实际修改的 Git root 计算,用户可在机械风险下限之上调整。
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` 通过绝对本地链接或路径按需查看。原生选择
93
94
  返回或迁移调用结束后的最终消息会重复紧凑方案回执与完整入口,避免前置过程消息折叠后丢失。
94
- - 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
+ - Java 单测策略由 `unit_test_mode: none | ut | tdd` 选择,默认 `none`,会话覆盖优先于项目配置。UT 要求本地单测通过及改动行覆盖率达标;TDD 在此基础上要求测试先行与 TDD 审查。两者共用 `ut_coverage_threshold`(默认 90,范围 1..100)和现有 `ec-tdd-init`/JaCoCo 基础设施。进入 IMPLEMENT 时冻结策略、baseline 与阈值,只验收本任务修改的生产代码;一次测试同时生成测试及覆盖率证据。UT 无额外过程文档或独立审查,三种策略均不提高机械执行深度。远程 CI 不作为验收条件;`none` 保留普通任务需要的验证,不附加覆盖率工作。
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
- - Canonical repair 后重跑受影响仓库及其 hard/contract 下游;其余未变化仓库必须由状态层以 `quality-carry-forward` 精确引用上一 attempt 的通过证据,不能由 Agent 复制或改写旧记录。
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:纯非执行差异可沿用
@@ -157,7 +158,7 @@ Dev-Spec 继续走原有整文分析流程。
157
158
  | `easy-coding add-agent` | 给同版本已接入项目追加 Claude Code、Codex 或 Qoder 支持;版本不一致时先执行 upgrade |
158
159
  | `easy-coding upgrade` | CLI 升级后同步项目内生成文件,生成区覆盖,用户资产保留;supermodule 父仓会同步升级已初始化子仓 |
159
160
  | `easy-coding update` | 更新全局 CLI 到最新发布版 |
160
- | `easy-coding config` | 交互修改当前项目的 Approval、Workflow、Java TDD 与覆盖率阈值;开启 TDD 前要求 readiness |
161
+ | `easy-coding config` | 交互修改当前项目的 Approval、Workflow、Java 单测策略与共享覆盖率阈值;选择 UT/TDD 前要求 readiness |
161
162
  | `easy-coding status` | 查看已安装平台、harness 版本、当前任务状态 |
162
163
  | `easy-coding clear` | 移除 harness 安装物,保留 tasks、spec、memory、project.yaml 等用户资产;supermodule 父仓支持交互选择、`--submodules` 和 `--no-submodules` |
163
164
 
@@ -174,8 +175,8 @@ Dev-Spec 继续走原有整文分析流程。
174
175
  | `ec-quality` | 编排 Review/Verification 双门、证据复用和一次性 Repair Bundle |
175
176
  | `ec-memory` | 写短期记忆,并在超过阈值时沉淀长期记忆 |
176
177
  | `ec-task-management` | 任务面板:查看、创建、选择、恢复、交接任务 |
177
- | `ec-config` | 只读查看或显式修改项目/session 的 Approval、Workflow、TDD 与阈值 |
178
- | `ec-tdd-init` | TDD 关闭态初始化/刷新 Java changed-line coverage 基础设施,不补存量单测 |
178
+ | `ec-config` | 只读查看或显式修改项目/session 的 Approval、Workflow、单测策略与阈值 |
179
+ | `ec-tdd-init` | UT/TDD 初始化/刷新 Java changed-line coverage 基础设施,不补存量单测 |
179
180
  | `ec-task-close` | 用户主动中断任务并关闭 |
180
181
  | `ec-no-harness` | 当前会话仅旁路 Easy Coding Harness,使用原生 Agent 能力 |
181
182
  | `ec-lite` | 用户显式启停的极简直达模式:一次方案确认后最小实现,不创建任务/QUALITY/MEMORY |
@@ -213,19 +214,20 @@ easy-coding upgrade
213
214
  `behavior.approval_mode` 与 `behavior.workflow_mode`;旧 `lite` 映射为 `guard + fast`。
214
215
  项目级模式用 `easy-coding config` 修改(要求
215
216
  项目 Harness 与 CLI 版本完全一致,否则先执行 `easy-coding upgrade` 或更新 CLI);当前
216
- session 临时覆盖统一通过 `ec-config` 对话修改。当前配置 schema 为 5;升级保留项目和
217
- session TDD 开关、阈值及继承关系,也保留任务已经冻结的基线。支持 TDD 的 schema 4
218
- 迁移保留用户配置;readiness 缺失或损坏只报告问题,不自动关闭 TDD。TDD 业务任务只依赖本地
217
+ session 临时覆盖统一通过 `ec-config` 对话修改。当前配置 schema 为 6;升级将旧
218
+ `tdd_enabled` 映射为 `unit_test_mode`(true→tdd、false→none),将旧阈值迁移为
219
+ `ut_coverage_threshold`。保留项目/session 继承关系、任务冻结基线和执行进度;readiness
220
+ 缺失或损坏只报告问题,不重置策略。UT/TDD 业务任务只依赖本地
219
221
  单测与本地差异覆盖率,历史远程 CI 证据保留但不再参与验收。已经冻结的活动任务合同
220
222
  不会被静默改写。0.10.0-beta.4 起,仍停在 ANALYSIS 的旧任务必须补齐决策闭环后才能
221
223
  进入 IMPLEMENT;已经进入后续阶段的任务不受影响。
222
224
 
223
225
  session GC 只在创建新逻辑会话前和实际升级时触发:无任务绑定的会话保留 7 天、仍绑定
224
226
  任务的会话保留 30 天,并按最近活动时间将根目录 JSON 控制在 100 个以内。活动任务仍在
225
- 引用的 acceptance 验收快照会被保留;升级时带有显式 TDD 配置的 session 不参与清理。
227
+ 引用的 acceptance 验收快照会被保留;升级时带有显式单测策略或阈值配置的 session 不参与清理。
226
228
  任务、记忆、Spec 和项目知识不参与清理。
227
229
 
228
- TDD 凭据中的文件摘要是初始化历史。POM 版本、依赖、插件、CI 或托管工具变化无需重新
230
+ UT/TDD 共用凭据中的文件摘要是初始化历史。POM 版本、依赖、插件、CI 或托管工具变化无需重新
229
231
  初始化;本轮构建与工具变化会使旧验收证据失效。日常 readiness 只检查必要本地入口和
230
232
  参数契约;缺少凭据为 `needs_init`,已有凭据或入口损坏为 `needs_repair`。实际单测与
231
233
  增量覆盖率仍须通过。`ec-tdd-init` 的完整校验包含 GitLab CI。