easy-coding-harness 0.8.0-beta.0 → 0.8.1-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 CHANGED
@@ -6,6 +6,19 @@
6
6
  - `y`:常规功能升级
7
7
  - `z`:日常 bug 修复
8
8
 
9
+ ## 0.8.1-beta.0
10
+
11
+ - 修复分析阶段结束后的确认门可能退化为单一“回复确认执行”提示的问题:存在 `pending_transition` 时必须实际调用平台原生选择能力,完整提供确认目标阶段、交接给其他智能体和 free-form Other。
12
+ - 普通确认门与 Approve 模式代码 IMPLEMENT 特殊门分别保留各自完整分支,文本回退不会遗漏“跳过 REVIEW 进入 VERIFICATION”;原生选择返回空值、取消、超时或无法解析时继续保留待确认边,同一 assistant 轮最多重试一次,避免无限重复调用。
13
+ - workflow、analysis、Claude/Codex/Qoder 主约束、设计与使用文档及三平台安装回归测试同步固化上述展示契约。
14
+
15
+ ## 0.8.0
16
+
17
+ - 正式发布 `lite` 确认模式:沿用 Guard 的关键确认门,代码任务完成 IMPLEMENT 后跳过 REVIEW,直接进入 VERIFICATION。
18
+ - Lite 模式在状态 API 和恢复流程中统一禁止 `IMPLEMENT → REVIEW`;切换模式时会取消遗留 REVIEW 待流转边并改走 VERIFICATION。
19
+ - 状态栏将品牌与模式独立加粗展示,例如 `**Easy Coding** · **Lite**`,任务名、工作流状态和 Handoff agent 保留行内代码背景。
20
+ - 汇总 `0.8.0-beta.0` 的验证结果,Claude、Codex、Qoder 主约束、阶段 skills、配置入口、文档和回归测试均已对齐。
21
+
9
22
  ## 0.8.0-beta.0
10
23
 
11
24
  - 新增 `lite` 确认模式:确认门与 `guard` 相同,仍在 `ANALYSIS → IMPLEMENT` 和 `VERIFICATION → MEMORY` 等待用户确认,但代码任务跳过 REVIEW,直接从 IMPLEMENT 进入 VERIFICATION。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-coding-harness",
3
- "version": "0.8.0-beta.0",
3
+ "version": "0.8.1-beta.0",
4
4
  "description": "CLI scaffold for installing Easy Coding harness files into agent-native directories.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -263,11 +263,29 @@ Re-output the COMPLETE revised dev-spec.md:
263
263
  3. Overwrite the `plan` record in execution.jsonl with the new strategy.
264
264
  4. For code tasks, update test-strategy.md if test scope changed. For read-only tasks, keep the
265
265
  file absent.
266
- 5. Request ANALYSIS -> IMPLEMENT again and present the standard confirmation/handoff/Other gate.
266
+ 5. Request ANALYSIS -> IMPLEMENT again and present the complete confirmation/handoff/Other gate
267
+ defined below.
268
+
269
+ ## ANALYSIS -> IMPLEMENT choice gate (hard)
270
+
271
+ The same turn that `request-transition` succeeds must invoke the platform's native user-choice
272
+ tool when one is available. The visible branches are:
273
+
274
+ 1. Confirm entering IMPLEMENT (recommended)
275
+ 2. Hand off to another agent
276
+ 3. Other — use the native free-form Other input for revisions or another instruction.
277
+
278
+ If no native choice tool exists, render all three branches as a numbered text fallback. An empty,
279
+ dismissed, timed-out, or unparseable result keeps the task in ANALYSIS with its pending edge and
280
+ may retry the native choice at most once per assistant turn. If that retry also fails, stop the
281
+ current turn and re-present the complete gate on the next user interaction. Never replace the gate
282
+ with only "reply confirm", "confirm execution", or a statement that no valid choice was received,
283
+ and never invoke native choice repeatedly in the same turn. Choosing handoff delegates to
284
+ ec-workflow's existing target-less `handoff-task` flow; do not ask the user to name the next agent.
267
285
 
268
286
  ## End state
269
287
 
270
288
  Read dev-spec.md back from disk and output the COMPLETE content as your reply to the user —
271
- not a summary, not a different format, not a table you invented. Then ask ec-workflow to
272
- record `pending_transition: ANALYSIS -> IMPLEMENT`, present the standard boundary choices,
289
+ not a summary, not a different format, not a table you invented. Then ask ec-workflow to record
290
+ `pending_transition: ANALYSIS -> IMPLEMENT`, immediately present the complete choice gate above,
273
291
  and stop. Never start implementing from this skill.
@@ -144,11 +144,12 @@ it, routing matches, and switching happens again.
144
144
  - **Always-automatic mechanical edges.** After INIT work completes, call `auto-transition` for
145
145
  ANALYSIS. After `memory-complete`, call `auto-transition` for COMPLETE. These two edges never
146
146
  create `pending_transition` in any mode.
147
- - **Native choice first (hard requirement).** When the effective mode requires confirmation,
148
- call `request-transition`. After it succeeds, you MUST
149
- prefer the agent/platform's native user-choice tool whenever one is available. Do not render
150
- a plain-text numbered list on a platform that can present selectable options and a free-form
151
- Other input. Offer exactly these business branches through that native UI:
147
+ - **Native choice rendering is mandatory (hard requirement).** When the effective mode requires
148
+ confirmation, call `request-transition`. After it succeeds, the boundary is not fully presented
149
+ until the user can actually choose every required business branch. When the agent/platform
150
+ exposes a native user-choice tool, you MUST actually invoke it in the same turn; mentioning the
151
+ tool, recommending a reply, or printing only a confirmation sentence is not a substitute. Offer
152
+ exactly these business branches through that native UI:
152
153
  1. Confirm entering/returning to `<target-stage>` (recommended)
153
154
  2. Hand off to another agent
154
155
  3. Other — use the native tool's built-in free-form Other input.
@@ -158,9 +159,22 @@ it, routing matches, and switching happens again.
158
159
  VERIFICATION, cancel that edge, request IMPLEMENT -> VERIFICATION, and immediately confirm it
159
160
  because that selection is explicit confirmation of the alternate target.
160
161
  Plain-text numbered choices are fallback only: use them only when no native user-choice tool
161
- exists. The runtime hook never mutates workflow state from user-prompt text. Native choice
162
- results, numbered fallback replies, and every natural-language reply must be interpreted by
163
- you against the current task and stored target before calling `confirm-transition` explicitly.
162
+ exists. An ordinary gate must list all three branches rather than collapsing to "reply confirm":
163
+ `1. Confirm entering/returning to <target-stage> (recommended)`,
164
+ `2. Hand off to another agent`, `3. Other (describe revisions or another instruction)`.
165
+ The code-task IMPLEMENT completion fallback must preserve its special branch set:
166
+ `1. Enter REVIEW (recommended)`, `2. Skip REVIEW and enter VERIFICATION`,
167
+ `3. Hand off to another agent`, `4. Other (describe revisions or another instruction)`.
168
+ An empty, dismissed, timed-out, or unparseable choice result is not confirmation. Preserve the
169
+ pending edge and re-present the complete native choice UI at most once per assistant turn. If
170
+ that retry is also empty, dismissed, timed out, or unparseable, stop the current turn with the
171
+ pending edge intact and re-present the gate on the next user interaction; never call the native
172
+ choice tool repeatedly in the same turn. If native choice is no longer available, render the
173
+ appropriate complete numbered fallback. Never report "no valid choice" and then show only a
174
+ confirmation instruction. The runtime hook never mutates workflow state from user-prompt text.
175
+ Native choice results, numbered fallback replies, and every natural-language reply must be
176
+ interpreted by you against the current task and stored target before calling
177
+ `confirm-transition` explicitly.
164
178
  On Other feedback, cancel the pending edge before revising work or requesting a different
165
179
  legal target. Never interpret silence, enthusiasm, or topic changes as confirmation.
166
180
  - **State before action.** Every confirmation-required stage advance is a two-step protocol: first
@@ -47,6 +47,16 @@ First run `ec-init`; daily work goes through `ec-workflow`.
47
47
  - Confirmation-required edges use `pending_transition`; automatic edges use the restricted
48
48
  `auto-transition` API. A read-only task creates no test-strategy.md, never enters REVIEW,
49
49
  VERIFICATION, or MEMORY, and writes no task memory.
50
+ - A confirmation-required boundary is not fully presented until the user can choose its complete
51
+ business branches. When a native user-choice tool is available, invoke it in the same turn with
52
+ the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
53
+ (recommended) and "hand off to another agent", with free-form Other for revisions. The special
54
+ approve-mode code IMPLEMENT gate must instead preserve enter REVIEW, skip to VERIFICATION, and
55
+ handoff, with free-form Other. Only when no native choice tool exists may you show the matching
56
+ complete numbered fallback. Empty, dismissed, timed-out, or unparseable results preserve the
57
+ pending edge and may retry native choice at most once per assistant turn; after a failed retry,
58
+ stop the turn and re-present the gate on the next user interaction. Never degrade to only
59
+ "reply confirm" or repeatedly invoke native choice in the same turn.
50
60
  - When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
51
61
  only Easy Coding workflow/stage orchestration for this session. Continue honoring every
52
62
  non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.
@@ -45,6 +45,16 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
45
45
  - Confirmation-required edges use `pending_transition`; automatic edges use the restricted
46
46
  `auto-transition` API. A read-only task creates no test-strategy.md, never enters REVIEW,
47
47
  VERIFICATION, or MEMORY, and writes no task memory.
48
+ - A confirmation-required boundary is not fully presented until the user can choose its complete
49
+ business branches. When a native user-choice tool is available, invoke it in the same turn with
50
+ the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
51
+ (recommended) and "hand off to another agent", with free-form Other for revisions. The special
52
+ approve-mode code IMPLEMENT gate must instead preserve enter REVIEW, skip to VERIFICATION, and
53
+ handoff, with free-form Other. Only when no native choice tool exists may you show the matching
54
+ complete numbered fallback. Empty, dismissed, timed-out, or unparseable results preserve the
55
+ pending edge and may retry native choice at most once per assistant turn; after a failed retry,
56
+ stop the turn and re-present the gate on the next user interaction. Never degrade to only
57
+ "reply confirm" or repeatedly invoke native choice in the same turn.
48
58
  - When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
49
59
  only Easy Coding workflow/stage orchestration for this session. Continue honoring every
50
60
  non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.