easy-coding-harness 0.1.8 → 0.2.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/CHANGELOG.md +110 -0
- package/README.md +10 -78
- package/dist/cli.js +1187 -282
- package/dist/cli.js.map +1 -1
- package/package.json +2 -1
- package/templates/common/bundled-skills/ec-init/SKILL.md +174 -0
- package/templates/common/bundled-skills/ec-init/references/memory-migration.md +87 -0
- package/templates/common/bundled-skills/ec-meta/SKILL.md +5 -2
- package/templates/common/bundled-skills/ec-meta/references/customize-local/README.md +2 -1
- package/templates/common/bundled-skills/ec-meta/references/local-architecture/README.md +14 -11
- package/templates/common/bundled-skills/ec-meta/references/platform-files/README.md +8 -4
- package/templates/common/skills/ec-analysis/SKILL.md +104 -126
- package/templates/common/skills/ec-brainstorming/SKILL.md +1 -1
- package/templates/common/skills/ec-git/SKILL.md +10 -10
- package/templates/common/skills/ec-memory/SKILL.md +25 -8
- package/templates/common/skills/ec-task-close/SKILL.md +4 -3
- package/templates/common/skills/ec-task-management/SKILL.md +9 -24
- package/templates/common/skills/ec-verification/SKILL.md +10 -4
- package/templates/common/skills/ec-workflow/SKILL.md +43 -16
- package/templates/main-constraint/AGENTS.md.tpl +16 -3
- package/templates/main-constraint/CLAUDE.md.tpl +16 -3
- package/templates/runtime/memory/SHORT_MEMORY_TEMPLATE.md +75 -0
- package/templates/runtime/memory/long/BUSINESS.md +42 -9
- package/templates/runtime/memory/long/MEMORY.md +37 -2
- package/templates/runtime/memory/long/TECHNICAL.md +45 -1
- package/templates/runtime/templates/dev-spec-skeleton.md +80 -0
- package/templates/shared-hooks/easy_coding_state.py +516 -0
- package/templates/shared-hooks/easy_coding_status.py +72 -81
- package/templates/shared-hooks/inject-subagent-context.py +5 -12
- package/templates/shared-hooks/inject-workflow-state.py +2 -1
- package/templates/shared-hooks/session-start.py +2 -1
- package/templates/common/skills/ec-init/SKILL.md +0 -96
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
版本号严格使用 `x.y.z`:
|
|
4
|
+
|
|
5
|
+
- `x`:大的功能迭代;`0.x.x` 表示内测版本
|
|
6
|
+
- `y`:常规功能升级
|
|
7
|
+
- `z`:日常 bug 修复
|
|
8
|
+
|
|
9
|
+
## 0.2.1
|
|
10
|
+
|
|
11
|
+
- 新增 `easy_coding_state.py` 运行时状态 API,统一收口当前任务指针、任务状态、阶段流转、关闭/完成、`repo_paths` 等读写入口。
|
|
12
|
+
- 修复状态栏卡在 Ready 的根因:状态栏继续由 hook 脚本注入,skill 不再手写 session/task 状态;hook 注入 session 文件路径供状态 API 精确写入。
|
|
13
|
+
- 移除 tasks fallback / 最近任务猜测 / 自愈切换逻辑:session 为空时保持 Ready,任务进入 COMPLETE/CLOSED 后自动清空 `current_task`,不擅自切换到其他活跃任务。
|
|
14
|
+
- 清理 `state.json` 新流程引用,保留其作为 legacy 迁移输入;新状态模型改为 `sessions/{ppid}.json` + `tasks/*/task.json` + 状态 API。
|
|
15
|
+
- 修复 `easy-coding clear` 读取旧实验或损坏的 `install-manifest.json` 时,因 `agents` 字段缺失或损坏导致清理流程崩溃的问题;现在会安全降级并继续模板兜底清理。
|
|
16
|
+
|
|
17
|
+
## 0.2.0
|
|
18
|
+
|
|
19
|
+
- ec-analysis 新增防降级 HARD RULE:禁止把代码类任务(重构 / 修复 / 功能)擅自降级为"仅出报告 / 分析清单 / 留作后续子任务"。
|
|
20
|
+
- 改动范围净化:只允许列真实项目源码 / 配置文件,禁止把 `.easy-coding/` 下的 dev-spec、execution、test-strategy、记忆、报告等 harness 产物当作改动对象。
|
|
21
|
+
- 会话同步强化:dev-spec 完成后必须 Read 读回磁盘文件并原样回贴,禁止凭记忆缩略复述。
|
|
22
|
+
- ec-workflow 在 INIT 阶段锁定交付形态,并在 ANALYSIS gate 呼应防降级与改动范围净化要求。
|
|
23
|
+
- 澄清 `auto_mode` 语义:只免除 WAITING_CONFIRM 人工确认,不代表任何范围或交付形态决策。
|
|
24
|
+
- README 将完整版本历史迁出到 CHANGELOG.md,并在 package.json `files` 中纳入 CHANGELOG.md,保证 npm 包内 README 引用有效。
|
|
25
|
+
|
|
26
|
+
## 0.1.9
|
|
27
|
+
|
|
28
|
+
- 记忆模板全面升级:MEMORY.md 新增 `memory_schema: 2` frontmatter、快速导航表格、读取策略和迁移审计表;BUSINESS.md 和 TECHNICAL.md 各增加 5 个分类表格和已淘汰记录区。
|
|
29
|
+
- 新增 SHORT_MEMORY_TEMPLATE.md 短期记忆参考模板,包含完整 frontmatter schema(新增 `memory_schema`、`project_mode`、`commit`、`verification`、`memory_value` 字段)和 6 个结构化内容节。
|
|
30
|
+
- 新增记忆迁移流程:ec-init 初始化时自动检测旧格式记忆(无 schema-v2 frontmatter、缺少 BUSINESS/TECHNICAL 文件),经用户确认后执行一次性迁移。
|
|
31
|
+
- ec-memory 短期记忆格式强化:frontmatter 字段对齐原 Easy Coding 技能,新增文件命名规范和不可变约束。
|
|
32
|
+
- ANALYSIS 阶段骨架优先规则加固:ec-workflow 转换规则、hook 面包屑、主约束文件、ec-analysis 顶部提醒四层强化。
|
|
33
|
+
- 修复 .gitignore 误排 src/templates/、upgrade 缺少 sessions gitignore、主约束文件 marked-region 重复写入。
|
|
34
|
+
- 拆分 `.easy-coding/config.yaml` 与 `.easy-coding/project.yaml`:CLI 独占结构配置,`ec-init` 独占项目语义配置,物理隔离 schema 分叉风险。
|
|
35
|
+
- 新增 `easy-coding clear` 命令:移除已安装的 skills、hooks、agent 模板、CLI 配置和 sessions,保留 tasks、spec、memory、project.yaml 与项目知识文件。
|
|
36
|
+
- 修复 `upgrade` 在 config.yaml 缺少 `harness_version` 时崩溃(`Cannot read properties of undefined (reading 'split')`):版本比较源头防御 undefined,缺少 `harness_version` / `agents` 时明确引导 `easy-coding clear` 后重新 `init`。
|
|
37
|
+
|
|
38
|
+
## 0.1.8
|
|
39
|
+
|
|
40
|
+
- 状态重构:废弃全局 `state.json`,工作流阶段信息迁入 `task.json`。新增 per-session 文件(`.easy-coding/sessions/{ppid}.json`)隔离并行开发会话。
|
|
41
|
+
- `task.json` 新增 `last_agent`、`stage_history`、`confirmed_by_user`、`test_strategy_confirmed`、`repo_paths` 字段,每次阶段转换实时更新 `status`。
|
|
42
|
+
- 新增 `src/utils/session.ts` 模块,删除 `src/utils/state-json.ts`。
|
|
43
|
+
- 强制子代理派发:IMPLEMENT(parallel 策略)、REVIEW、VERIFICATION 阶段使用 `<HARD-GATE>` 标记强制派发子代理,防止上下文污染。
|
|
44
|
+
- 移除 REVIEW 阶段 ">=5 文件才派子代理" 的门槛,改为始终派发。
|
|
45
|
+
- REVIEW auto-fix:bug 级问题由 ec-fixer 子代理直接修复,仅设计决策类问题才向用户确认。
|
|
46
|
+
- 新增 ec-fixer 子代理模板(claude/codex/qoder 三平台)。
|
|
47
|
+
- 修复 MEMORY_LONG 误触发:短期记忆 <= `memory.short_term_max`(默认 10)条时 MEMORY_LONG 为 no-op,仅超出阈值时执行蒸馏。
|
|
48
|
+
- 新增状态机转换校验:hook 在每次 prompt 提交时验证阶段转换合法性,非法转换注入 `[ILLEGAL-TRANSITION]` 强警告。
|
|
49
|
+
- session-start hook 自动检测并迁移旧格式 `state.json`,启动时清理 stale session 文件(>24h 且 PID 无占用)。
|
|
50
|
+
|
|
51
|
+
## 0.1.7
|
|
52
|
+
|
|
53
|
+
- ec-workflow 新增意图路由:用户带提示词进入时,自动匹配当前任务和已有任务,不匹配则询问切换或新建。
|
|
54
|
+
- 支持任务切换:可在任何阶段挂起当前任务并切换到另一个任务,挂起任务的数据完整保留。
|
|
55
|
+
- TaskJson 新增 `title` 可选字段,用于意图匹配和任务展示。
|
|
56
|
+
- ec-task-management 任务创建和列表展示支持 title 字段。
|
|
57
|
+
- CLI `easy-coding status` 命令在活跃任务列表中展示任务标题。
|
|
58
|
+
- ec-brainstorming 设计确认后新增入口:询问用户是否立即创建任务,确认后自动衔接 ec-workflow 流程。
|
|
59
|
+
- ec-analysis 新增 spec 文档扫描:自动读取 `.easy-coding/spec/` 下匹配的设计文档作为分析输入。
|
|
60
|
+
- ec-analysis 新增 HARD RULES 强约束:首个 tool call 必须写 dev-spec.md 骨架文件,分析过程逐步回填,回复内容必须是 dev-spec.md 完整内容而非自创缩略格式。
|
|
61
|
+
- 自检门禁增加文件存在性检查(dev-spec.md、execution.jsonl、test-strategy.md)和回复格式检查。
|
|
62
|
+
- 修复 READY_LINE 引导用户使用 `ec-analysis` 启动任务的错误提示,改为 `ec-workflow`。
|
|
63
|
+
- 同步修复 CLAUDE.md.tpl、AGENTS.md.tpl 主约束模板中的状态栏示例。
|
|
64
|
+
|
|
65
|
+
## 0.1.6
|
|
66
|
+
|
|
67
|
+
- ec-analysis 改为模板先行(template-first)工作流:分析阶段先创建 dev-spec.md 骨架,再逐步填充各章节。
|
|
68
|
+
- ec-analysis 模板从英文简写替换为完整中文结构化模板,12 个核心必填章节 + 3 个条件展开章节。
|
|
69
|
+
- 新增修订处理规则:用户修改意见必须重新输出完整方案,不允许只回差异摘要。
|
|
70
|
+
- 自检门禁新增"占位符是否全部替换"检查项。
|
|
71
|
+
- 测试策略补充人工验收和无法验证项。
|
|
72
|
+
- 将版本记录从 CHANGELOG.md 迁移到 README.md 统一维护。
|
|
73
|
+
- 新增项目级 CLAUDE.md 和 AGENTS.md 约束文件。
|
|
74
|
+
|
|
75
|
+
## 0.1.5
|
|
76
|
+
|
|
77
|
+
- ec-analysis 模板结构化改进:Change plan 改为五项一行式,Implementation units 输出完整 unit 表,Test strategy 内嵌 testability table + test points。
|
|
78
|
+
|
|
79
|
+
## 0.1.4
|
|
80
|
+
|
|
81
|
+
- 将宽终端 CLI banner 调整为 `ANSI Shadow` 厚重色块字形,恢复类似截图中的块状阴影质感。
|
|
82
|
+
- 中等宽度终端使用 `Small Shadow`,窄终端继续使用 `Small Slant`,避免标题溢出。
|
|
83
|
+
- 保留 0.1.3 的 cyan/blue 分层配色和副标题样式。
|
|
84
|
+
- 修复主约束模板中状态栏示例使用外层双反引号,可能导致 agent 复述 Ready 状态栏时在末尾多带一个反引号的问题。
|
|
85
|
+
|
|
86
|
+
## 0.1.3
|
|
87
|
+
|
|
88
|
+
- 修复 0.1.2 CLI banner 字体过于块状、左右压缩导致难以辨认的问题。
|
|
89
|
+
- 默认字体改为更舒展的 `Big`,中等宽度终端使用 `Doom`,窄终端继续使用 `Small Slant`。
|
|
90
|
+
- 保留 0.1.2 的 cyan/blue 分层配色和副标题样式。
|
|
91
|
+
- 将 hook 注入的 Easy Coding 状态提示收口为单行 Markdown 状态栏,展示 Ready、Waiting init、当前任务、任务状态和 handoff 来源。
|
|
92
|
+
|
|
93
|
+
## 0.1.2
|
|
94
|
+
|
|
95
|
+
- 改进 agent 平台选择提示,明确说明使用 Space 切换选择、Enter 进入确认。
|
|
96
|
+
- 平台选择后增加二次确认,避免误按回车直接按默认平台安装。
|
|
97
|
+
- 优化 CLI 启动标题,默认使用带阴影感的 `ANSI Shadow` 字体,并为窄终端提供 fallback。
|
|
98
|
+
|
|
99
|
+
## 0.1.1
|
|
100
|
+
|
|
101
|
+
- 修复 `easy-coding init` 将任意 `.easy-coding` 目录误判为已安装 harness 的问题。
|
|
102
|
+
- 新增旧版 `easy-coding` skill 产物识别,允许在保留旧数据的前提下接入新 harness。
|
|
103
|
+
- `project-init` 任务会记录旧资产清单,供 `ec-init` 校验、保留和补全旧数据产物。
|
|
104
|
+
- 将 CLI 版本源统一到 `package.json`,避免源码常量与包版本漂移。
|
|
105
|
+
|
|
106
|
+
## 0.1.0
|
|
107
|
+
|
|
108
|
+
- 首个内测基线版本。
|
|
109
|
+
- 提供 `easy-coding init`、`add-agent`、`upgrade`、`status` 基础命令。
|
|
110
|
+
- 支持 Claude Code、Codex、Qoder 三个平台的 skills、hooks、agents 和主约束安装。
|
package/README.md
CHANGED
|
@@ -19,17 +19,20 @@ agent 原生识别——用 `/ec-`(Claude Code / Qoder)或 `$ec-`(Codex)
|
|
|
19
19
|
# 方式一:源码(开发者 / 内网)
|
|
20
20
|
git clone <repo> && cd easy-coding-harness && ./install.sh
|
|
21
21
|
|
|
22
|
-
# 方式二:npm
|
|
22
|
+
# 方式二:npm 正式环境(latest)
|
|
23
|
+
npm install -g easy-coding-harness
|
|
24
|
+
easy-coding --version
|
|
25
|
+
|
|
26
|
+
# 方式三:npm beta 环境(内测用户)
|
|
23
27
|
npm install -g easy-coding-harness@beta
|
|
24
28
|
easy-coding --version
|
|
25
29
|
```
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
三种方式都注册全局命令 `easy-coding`,效果一致。
|
|
28
32
|
|
|
29
|
-
当前 `0.x.x`
|
|
30
|
-
`npm install -g easy-coding-harness` 安装默认 latest 版本。
|
|
33
|
+
当前 `0.x.x` 版本仍为内测版本时,优先使用 `beta` dist-tag;正式发布后使用默认 latest 安装命令。
|
|
31
34
|
|
|
32
|
-
##
|
|
35
|
+
## 版本
|
|
33
36
|
|
|
34
37
|
版本号严格使用 `x.y.z`:
|
|
35
38
|
|
|
@@ -37,79 +40,7 @@ easy-coding --version
|
|
|
37
40
|
- `y`:常规功能升级
|
|
38
41
|
- `z`:日常 bug 修复
|
|
39
42
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- 状态重构:废弃全局 `state.json`,工作流阶段信息迁入 `task.json`。新增 per-session 文件(`.easy-coding/sessions/{ppid}.json`)隔离并行开发会话。
|
|
43
|
-
- `task.json` 新增 `last_agent`、`stage_history`、`confirmed_by_user`、`test_strategy_confirmed`、`repo_paths` 字段,每次阶段转换实时更新 `status`。
|
|
44
|
-
- 新增 `src/utils/session.ts` 模块,删除 `src/utils/state-json.ts`。
|
|
45
|
-
- 强制子代理派发:IMPLEMENT(parallel 策略)、REVIEW、VERIFICATION 阶段使用 `<HARD-GATE>` 标记强制派发子代理,防止上下文污染。
|
|
46
|
-
- 移除 REVIEW 阶段 ">=5 文件才派子代理" 的门槛,改为始终派发。
|
|
47
|
-
- REVIEW auto-fix:bug 级问题由 ec-fixer 子代理直接修复,仅设计决策类问题才向用户确认。
|
|
48
|
-
- 新增 ec-fixer 子代理模板(claude/codex/qoder 三平台)。
|
|
49
|
-
- 修复 MEMORY_LONG 误触发:短期记忆 <= `memory.short_term_max`(默认 10)条时 MEMORY_LONG 为 no-op,仅超出阈值时执行蒸馏。
|
|
50
|
-
- 新增状态机转换校验:hook 在每次 prompt 提交时验证阶段转换合法性,非法转换注入 `[ILLEGAL-TRANSITION]` 强警告。
|
|
51
|
-
- session-start hook 自动检测并迁移旧格式 `state.json`,启动时清理 stale session 文件(>24h 且 PID 无占用)。
|
|
52
|
-
|
|
53
|
-
### 0.1.7
|
|
54
|
-
|
|
55
|
-
- ec-workflow 新增意图路由:用户带提示词进入时,自动匹配当前任务和已有任务,不匹配则询问切换或新建。
|
|
56
|
-
- 支持任务切换:可在任何阶段挂起当前任务并切换到另一个任务,挂起任务的数据完整保留。
|
|
57
|
-
- TaskJson 新增 `title` 可选字段,用于意图匹配和任务展示。
|
|
58
|
-
- ec-task-management 任务创建和列表展示支持 title 字段。
|
|
59
|
-
- CLI `easy-coding status` 命令在活跃任务列表中展示任务标题。
|
|
60
|
-
- ec-brainstorming 设计确认后新增入口:询问用户是否立即创建任务,确认后自动衔接 ec-workflow 流程。
|
|
61
|
-
- ec-analysis 新增 spec 文档扫描:自动读取 `.easy-coding/spec/` 下匹配的设计文档作为分析输入。
|
|
62
|
-
- ec-analysis 新增 HARD RULES 强约束:首个 tool call 必须写 dev-spec.md 骨架文件,分析过程逐步回填,回复内容必须是 dev-spec.md 完整内容而非自创缩略格式。
|
|
63
|
-
- 自检门禁增加文件存在性检查(dev-spec.md、execution.jsonl、test-strategy.md)和回复格式检查。
|
|
64
|
-
- 修复 READY_LINE 引导用户使用 `ec-analysis` 启动任务的错误提示,改为 `ec-workflow`。
|
|
65
|
-
- 同步修复 CLAUDE.md.tpl、AGENTS.md.tpl 主约束模板中的状态栏示例。
|
|
66
|
-
|
|
67
|
-
### 0.1.6
|
|
68
|
-
|
|
69
|
-
- ec-analysis 改为模板先行(template-first)工作流:分析阶段先创建 dev-spec.md 骨架,再逐步填充各章节。
|
|
70
|
-
- ec-analysis 模板从英文简写替换为完整中文结构化模板,12 个核心必填章节 + 3 个条件展开章节。
|
|
71
|
-
- 新增修订处理规则:用户修改意见必须重新输出完整方案,不允许只回差异摘要。
|
|
72
|
-
- 自检门禁新增"占位符是否全部替换"检查项。
|
|
73
|
-
- 测试策略补充人工验收和无法验证项。
|
|
74
|
-
- 将版本记录从 CHANGELOG.md 迁移到 README.md 统一维护。
|
|
75
|
-
- 新增项目级 CLAUDE.md 和 AGENTS.md 约束文件。
|
|
76
|
-
|
|
77
|
-
### 0.1.5
|
|
78
|
-
|
|
79
|
-
- ec-analysis 模板结构化改进:Change plan 改为五项一行式,Implementation units 输出完整 unit 表,Test strategy 内嵌 testability table + test points。
|
|
80
|
-
|
|
81
|
-
### 0.1.4
|
|
82
|
-
|
|
83
|
-
- 将宽终端 CLI banner 调整为 `ANSI Shadow` 厚重色块字形,恢复类似截图中的块状阴影质感。
|
|
84
|
-
- 中等宽度终端使用 `Small Shadow`,窄终端继续使用 `Small Slant`,避免标题溢出。
|
|
85
|
-
- 保留 0.1.3 的 cyan/blue 分层配色和副标题样式。
|
|
86
|
-
- 修复主约束模板中状态栏示例使用外层双反引号,可能导致 agent 复述 Ready 状态栏时在末尾多带一个反引号的问题。
|
|
87
|
-
|
|
88
|
-
### 0.1.3
|
|
89
|
-
|
|
90
|
-
- 修复 0.1.2 CLI banner 字体过于块状、左右压缩导致难以辨认的问题。
|
|
91
|
-
- 默认字体改为更舒展的 `Big`,中等宽度终端使用 `Doom`,窄终端继续使用 `Small Slant`。
|
|
92
|
-
- 保留 0.1.2 的 cyan/blue 分层配色和副标题样式。
|
|
93
|
-
- 将 hook 注入的 Easy Coding 状态提示收口为单行 Markdown 状态栏,展示 Ready、Waiting init、当前任务、任务状态和 handoff 来源。
|
|
94
|
-
|
|
95
|
-
### 0.1.2
|
|
96
|
-
|
|
97
|
-
- 改进 agent 平台选择提示,明确说明使用 Space 切换选择、Enter 进入确认。
|
|
98
|
-
- 平台选择后增加二次确认,避免误按回车直接按默认平台安装。
|
|
99
|
-
- 优化 CLI 启动标题,默认使用带阴影感的 `ANSI Shadow` 字体,并为窄终端提供 fallback。
|
|
100
|
-
|
|
101
|
-
### 0.1.1
|
|
102
|
-
|
|
103
|
-
- 修复 `easy-coding init` 将任意 `.easy-coding` 目录误判为已安装 harness 的问题。
|
|
104
|
-
- 新增旧版 `easy-coding` skill 产物识别,允许在保留旧数据的前提下接入新 harness。
|
|
105
|
-
- `project-init` 任务会记录旧资产清单,供 `ec-init` 校验、保留和补全旧数据产物。
|
|
106
|
-
- 将 CLI 版本源统一到 `package.json`,避免源码常量与包版本漂移。
|
|
107
|
-
|
|
108
|
-
### 0.1.0
|
|
109
|
-
|
|
110
|
-
- 首个内测基线版本。
|
|
111
|
-
- 提供 `easy-coding init`、`add-agent`、`upgrade`、`status` 基础命令。
|
|
112
|
-
- 支持 Claude Code、Codex、Qoder 三个平台的 skills、hooks、agents 和主约束安装。
|
|
43
|
+
完整更新日志见 [CHANGELOG.md](CHANGELOG.md)。
|
|
113
44
|
|
|
114
45
|
## 命令
|
|
115
46
|
|
|
@@ -119,6 +50,7 @@ easy-coding --version
|
|
|
119
50
|
| `easy-coding add-agent` | 给已有项目追加平台支持 |
|
|
120
51
|
| `easy-coding upgrade` | CLI 更新后同步项目里的功能文件(生成区覆盖,用户资产不动) |
|
|
121
52
|
| `easy-coding status` | 查看已装平台、版本、当前任务状态 |
|
|
53
|
+
| `easy-coding clear` | 移除 harness 安装物并保留 tasks / spec / memory / project.yaml;优先按 install manifest 精准清理,旧配置或损坏 manifest 会回退到模板兜底清理 |
|
|
122
54
|
|
|
123
55
|
## 两阶段初始化
|
|
124
56
|
|