easy-coding-harness 0.8.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,12 @@
|
|
|
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
|
+
|
|
9
15
|
## 0.8.0
|
|
10
16
|
|
|
11
17
|
- 正式发布 `lite` 确认模式:沿用 Guard 的关键确认门,代码任务完成 IMPLEMENT 后跳过 REVIEW,直接进入 VERIFICATION。
|
package/package.json
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
148
|
-
call `request-transition`. After it succeeds,
|
|
149
|
-
|
|
150
|
-
a
|
|
151
|
-
|
|
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.
|
|
162
|
-
|
|
163
|
-
|
|
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.
|