easy-coding-harness 0.10.0-beta.9 → 1.0.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.
- package/CHANGELOG.md +67 -1
- package/README.md +34 -26
- package/dist/cli.js +272 -37
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/claude/agents/ec-implementer.md +7 -8
- package/templates/claude/agents/ec-reviewer.md +14 -2
- package/templates/claude/agents/ec-verifier.md +11 -2
- package/templates/codex/agents/ec-implementer.toml +7 -8
- package/templates/codex/agents/ec-reviewer.toml +14 -2
- package/templates/codex/agents/ec-verifier.toml +11 -2
- package/templates/common/bundled-skills/ec-init/SKILL.md +1 -1
- package/templates/common/bundled-skills/ec-meta/references/local-architecture/README.md +15 -11
- package/templates/common/skills/ec-analysis/SKILL.md +24 -13
- package/templates/common/skills/ec-config/SKILL.md +2 -2
- package/templates/common/skills/ec-implementing/SKILL.md +35 -30
- package/templates/common/skills/ec-lite/SKILL.md +74 -0
- package/templates/common/skills/ec-no-harness/SKILL.md +3 -0
- package/templates/common/skills/ec-quality/SKILL.md +153 -0
- package/templates/common/skills/ec-task-management/SKILL.md +9 -5
- package/templates/common/skills/ec-tdd-init/SKILL.md +5 -4
- package/templates/common/skills/ec-workflow/SKILL.md +32 -30
- package/templates/main-constraint/AGENTS.md.tpl +31 -19
- package/templates/main-constraint/CLAUDE.md.tpl +31 -19
- package/templates/qoder/agents/ec-implementer.md +7 -8
- package/templates/qoder/agents/ec-reviewer.md +14 -2
- package/templates/qoder/agents/ec-verifier.md +11 -2
- package/templates/runtime/templates/dev-spec-skeleton.md +2 -2
- package/templates/shared-hooks/easy_coding_state.py +2793 -318
- package/templates/claude/agents/ec-fixer.md +0 -37
- package/templates/codex/agents/ec-fixer.toml +0 -26
- package/templates/common/skills/ec-reviewing/SKILL.md +0 -109
- package/templates/common/skills/ec-verification/SKILL.md +0 -177
- package/templates/qoder/agents/ec-fixer.md +0 -37
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ec-quality
|
|
3
|
+
description: QUALITY-stage skill. Freezes one candidate, runs independent Review and Verification gates at the selected workflow depth, and aggregates one repair decision.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ec-quality — one candidate, two read-only gates
|
|
7
|
+
|
|
8
|
+
Use only while the current task is in `QUALITY`. Communicate in the user's language. QUALITY
|
|
9
|
+
does not modify source, tests, configuration, plans, or task scope.
|
|
10
|
+
|
|
11
|
+
## Candidate freeze
|
|
12
|
+
|
|
13
|
+
Call `evidence-fingerprints` once and use the returned implementation/config fingerprints for
|
|
14
|
+
the whole attempt. It also returns the runtime-owned `quality_attempt` number, start time, evidence
|
|
15
|
+
boundary, and repair count. Every Review and Verification record in this attempt must carry that
|
|
16
|
+
same candidate fingerprint and `quality_attempt` number. If the candidate changes, return to
|
|
17
|
+
IMPLEMENT; the state API finalizes the old attempt as `cancelled` before the transition. Never mix
|
|
18
|
+
evidence from two candidates.
|
|
19
|
+
|
|
20
|
+
`execution.jsonl` is append-only. Do not write `type:"quality"` yourself. The state API appends
|
|
21
|
+
exactly one fingerprint-bound finalized record when QUALITY passes, leaves for repair/replan, or is
|
|
22
|
+
cancelled by candidate drift, rework, or task closure. Retries reuse that record instead of
|
|
23
|
+
duplicating it. An incomplete, duplicate, or out-of-sequence quality record blocks the transition.
|
|
24
|
+
|
|
25
|
+
Review Gate and Verification Gate are independent and may run in parallel. Review never executes
|
|
26
|
+
commands. Verification never edits files. If a hard blocker makes remaining work meaningless,
|
|
27
|
+
cancel the other checks explicitly and record the cancellation; do not start repair while a gate
|
|
28
|
+
is still running or unacknowledged.
|
|
29
|
+
|
|
30
|
+
## Workflow depth
|
|
31
|
+
|
|
32
|
+
### Fast
|
|
33
|
+
|
|
34
|
+
- Main Agent performs one focused self-review of the exact diff, contract, local style, Javadoc,
|
|
35
|
+
and minimum-change boundary.
|
|
36
|
+
- Run the smallest deterministic targeted verification that can prove the changed behavior.
|
|
37
|
+
- Do not dispatch an independent reviewer unless a concrete risk appears.
|
|
38
|
+
|
|
39
|
+
### Standard
|
|
40
|
+
|
|
41
|
+
- Dispatch one independent reviewer.
|
|
42
|
+
- Run affected lint/typecheck/test plus every must-test command from `test-strategy.md`.
|
|
43
|
+
- Run Review and Verification in parallel when their inputs are already frozen.
|
|
44
|
+
|
|
45
|
+
### Strict
|
|
46
|
+
|
|
47
|
+
- Dispatch at least two independent review dimensions, normally correctness and compliance.
|
|
48
|
+
- For each actually modified repository, run all applicable lint, typecheck, test, and build
|
|
49
|
+
checks. A repository merely mentioned by a Spec, dependency, supermodule, or path map is not in
|
|
50
|
+
scope.
|
|
51
|
+
- When frozen TDD is enabled, include the required TDD review dimension, local unit test, and
|
|
52
|
+
changed-production-line coverage. Record one coverage result with `coverage_scope:"local"`;
|
|
53
|
+
GitLab coverage is informative, not a task acceptance gate. Reuse current-fingerprint GREEN
|
|
54
|
+
evidence from IMPLEMENT instead of rerunning an identical command.
|
|
55
|
+
|
|
56
|
+
## Review Gate
|
|
57
|
+
|
|
58
|
+
Review only the confirmed diff and its direct interactions. Check acceptance behavior, contract
|
|
59
|
+
compatibility, security/correctness, test design, nearest local style, required core Java
|
|
60
|
+
Javadoc, logical blank-line grouping, and minimum modification.
|
|
61
|
+
|
|
62
|
+
Do not demand defensive null checks, constant extraction, abstractions, method splitting,
|
|
63
|
+
comments, formatting, or cleanup solely as generic best practice. Do not report unrelated legacy
|
|
64
|
+
issues as task findings. The first review must report the complete in-scope finding set; after a
|
|
65
|
+
repair, review only the repair delta and directly affected interactions, without introducing new
|
|
66
|
+
unrelated style findings.
|
|
67
|
+
|
|
68
|
+
Each review record uses the existing `type:"review"` contract and includes the active
|
|
69
|
+
`quality_attempt`. `error` is blocking; `warning` is a credible risk; `info` is non-blocking. Fast
|
|
70
|
+
self-review still writes a record with reviewer set to the current canonical Agent identity. A
|
|
71
|
+
blocking record also carries a `failure_classes` array; do not defer classification to prose.
|
|
72
|
+
|
|
73
|
+
## Verification Gate
|
|
74
|
+
|
|
75
|
+
Run only the commands selected by the mode and `test-strategy.md`. Record real exit status and
|
|
76
|
+
current implementation/config fingerprints plus the active `quality_attempt` using the existing
|
|
77
|
+
`type:"verify"` contract. Do not run a command inside Review Gate, and do not fix a failure inside
|
|
78
|
+
Verification Gate. A failed applicable check also carries its structured `failure_classes` array.
|
|
79
|
+
|
|
80
|
+
Classify an unavailable tool, dependency outage, or other environmental failure as
|
|
81
|
+
`environment`. Keep the task in QUALITY and retry that check when possible; environmental retry
|
|
82
|
+
does not invalidate a passed Review Gate.
|
|
83
|
+
|
|
84
|
+
## One repair bundle
|
|
85
|
+
|
|
86
|
+
Wait for both gates, then aggregate all blocking results once. Classify each item as:
|
|
87
|
+
|
|
88
|
+
- `code-defect`
|
|
89
|
+
- `test-defect`
|
|
90
|
+
- `contract-ambiguity`
|
|
91
|
+
- `environment`
|
|
92
|
+
- `suggestion`
|
|
93
|
+
|
|
94
|
+
If code or tests need edits, create one concise Repair Bundle containing every in-scope blocking
|
|
95
|
+
item, affected files, required verification, and evidence that may be reused. After both Gates are
|
|
96
|
+
terminal, finalize the decision before transitioning once to IMPLEMENT:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
{{PYTHON_CMD}} {{platform_config_dir}}/hooks/easy_coding_state.py finalize-quality \
|
|
100
|
+
--outcome repair --review-gate failed --verification-gate cancelled \
|
|
101
|
+
--failure-class code-defect \
|
|
102
|
+
--summary "<aggregated repair decision>" \
|
|
103
|
+
--agent <agent-id> --session-file <P>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Use one `--failure-class` per class. A failed Gate requires blocking evidence in the active attempt;
|
|
107
|
+
a Gate stopped after another hard blocker must be explicitly `cancelled`. Contract ambiguity has
|
|
108
|
+
routing priority: finalize `--outcome replan --failure-class contract-ambiguity`, preserve every
|
|
109
|
+
code/test class found in the same attempt, and return once to ANALYSIS. Environment failures are not
|
|
110
|
+
finalized as repair or replan: keep the attempt in QUALITY and retry the affected check. Suggestions
|
|
111
|
+
do not block.
|
|
112
|
+
|
|
113
|
+
For a Canonical-backed task, group the bundle by `source_task_id`. Append every failed local
|
|
114
|
+
review/verify record first, then write each affected source task `blocked` through
|
|
115
|
+
`writeback-spec-task`. For attempt `<A>`, candidate `<F>`, Harness task `<H>`, and source task `<S>`,
|
|
116
|
+
use the exact idempotency key `<H>:<S>:<F>:quality-<A>:blocked`. Add one failed evidence object for
|
|
117
|
+
each affected Gate kind with ref
|
|
118
|
+
`execution.jsonl#quality-attempt=<A>;implementation=<F>;source-task=<S>;kind=review|verify`.
|
|
119
|
+
Only after every blocked writeback is acknowledged may the task return to IMPLEMENT; the state API
|
|
120
|
+
rejects a writeback from another run, attempt, fingerprint, or evidence window. Entering IMPLEMENT
|
|
121
|
+
reopens only those blocked source tasks as a new `in_progress` attempt, while unaffected implemented
|
|
122
|
+
tasks keep their shared conclusion.
|
|
123
|
+
|
|
124
|
+
After repair, choose the minimum honest evidence refresh:
|
|
125
|
+
|
|
126
|
+
- comment/format-only: carry semantic review; rerun affected lint;
|
|
127
|
+
- test-only: review the test delta; rerun the affected test;
|
|
128
|
+
- localized business code: delta review plus impacted tests;
|
|
129
|
+
- contract/config/plan/shared behavior: rerun all applicable gates for the affected scope.
|
|
130
|
+
|
|
131
|
+
When uncertain, rerun rather than infer. On the next attempt, the state API emits an append-only
|
|
132
|
+
`quality-carry-forward` record only for Canonical repositories whose plan and repository content
|
|
133
|
+
fingerprints are unchanged and whose sources are not hard/contract downstream of a changed source;
|
|
134
|
+
it references the exact passed evidence indices from the consumed repair attempt. Never copy or
|
|
135
|
+
relabel old evidence yourself. Strict may consume that state-owned record for independent,
|
|
136
|
+
unaffected repositories, but must rerun every affected or dependency-invalidated repository gate.
|
|
137
|
+
|
|
138
|
+
## Acceptance boundary
|
|
139
|
+
|
|
140
|
+
When both gates pass, call:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
{{PYTHON_CMD}} {{platform_config_dir}}/hooks/easy_coding_state.py quality-checkpoint \
|
|
144
|
+
--agent <agent-id> --session-file <P>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Request or auto-apply `QUALITY -> MEMORY` according to Approval mode. If the checkpoint detects a
|
|
148
|
+
later user edit, call `inspect-transition-drift`, display the exact diff, and honor the user's
|
|
149
|
+
decision. An accepted diff may use carry-forward, targeted, or waived verification as recorded by
|
|
150
|
+
the state API; do not rerun Review after the user explicitly accepts the displayed change.
|
|
151
|
+
|
|
152
|
+
Canonical-backed tasks write selected tasks `verified` only when `QUALITY -> MEMORY` is actually
|
|
153
|
+
applied. Pending integration evidence blocks that transition before MEMORY begins.
|
|
@@ -14,7 +14,7 @@ Call the state API snapshot and show:
|
|
|
14
14
|
|
|
15
15
|
- current task, stage, last Agent, and pending transition;
|
|
16
16
|
- task `concrete_workflow_mode` and frozen TDD state when present;
|
|
17
|
-
- harness enabled/disabled state;
|
|
17
|
+
- harness enabled/disabled and Lite Direct state;
|
|
18
18
|
- active and resumable tasks.
|
|
19
19
|
- for Canonical-backed tasks: source locator/path mode, Spec ID/design revision/design digest,
|
|
20
20
|
document digest, execution revision, writeback status, selected task IDs, repository
|
|
@@ -29,10 +29,14 @@ Support listing, creating, selecting, claiming, handing off, and closing tasks t
|
|
|
29
29
|
state API. Preserve pending transitions when inspecting tasks. Never infer user
|
|
30
30
|
acceptance from opening this panel.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
Create tasks only for explicit repository mutations. Pure analysis, explanation, reporting, and
|
|
33
|
+
read-only review stay Ready and are answered directly. If Lite Direct is enabled, route task
|
|
34
|
+
selection or creation to `ec-lite` so the user can exit it first.
|
|
35
|
+
|
|
36
|
+
When creating from a Canonical Spec, call `inspect-dev-spec --manifest-only`, display the complete
|
|
37
|
+
task and dependency selection, then call `create-task-from-spec` only after explicit user
|
|
38
|
+
selection. Multiple selected Spec tasks still create one Harness task. Do not call
|
|
39
|
+
`select-dev-spec-scope` during routing; ANALYSIS owns the single consumption-closure read.
|
|
36
40
|
Initialize missing shared execution before creation. Support `rebind-spec-source` only when the
|
|
37
41
|
new file matches schema + spec_id + design revision + design_sha256 and does not roll execution
|
|
38
42
|
revision backward. A pending writeback is repaired with `reconcile-spec-execution`, never by
|
|
@@ -71,7 +71,7 @@ evidence only, and never wait for a pipeline URL, job identity, or remote succes
|
|
|
71
71
|
## Readiness receipt and verification
|
|
72
72
|
|
|
73
73
|
At the end of IMPLEMENT, after the infrastructure files are stable, record their fingerprints.
|
|
74
|
-
The receipt is part of the implementation and must exist before
|
|
74
|
+
The receipt is part of the implementation and must exist before QUALITY so Review/Verification
|
|
75
75
|
fingerprints do not change after review. The recorder automatically includes the harness-managed
|
|
76
76
|
`.easy-coding/tools/easy_coding_java_coverage.py` fingerprint:
|
|
77
77
|
|
|
@@ -84,7 +84,8 @@ python3 .easy-coding/tools/easy_coding_tdd_readiness.py --cwd . record \
|
|
|
84
84
|
--agent <agent-id>
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
QUALITY Review Gate includes the receipt and its declared infrastructure boundary. Its
|
|
88
|
+
Verification Gate runs the
|
|
88
89
|
frozen Workflow Mode's applicable build/test/CI syntax checks, then performs only the read-only
|
|
89
90
|
readiness check:
|
|
90
91
|
|
|
@@ -92,9 +93,9 @@ readiness check:
|
|
|
92
93
|
python3 .easy-coding/tools/easy_coding_tdd_readiness.py --cwd . check
|
|
93
94
|
```
|
|
94
95
|
|
|
95
|
-
The `
|
|
96
|
+
The `QUALITY -> MEMORY` gate requires the final check to return `ready`. If any recorded
|
|
96
97
|
build or CI file changes after the receipt was created, readiness becomes `needs_init`; return to
|
|
97
|
-
IMPLEMENT, refresh the receipt, and repeat
|
|
98
|
+
IMPLEMENT, refresh the receipt, and repeat QUALITY. Rerun this skill when
|
|
98
99
|
the same drift occurs after task completion.
|
|
99
100
|
|
|
100
101
|
After completion, tell the user that TDD remains off and provide the explicit project/session
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ec-workflow
|
|
3
|
-
description: Main Easy Coding entrypoint. Creates or resumes a task, orchestrates the
|
|
3
|
+
description: Main Easy Coding entrypoint. Creates or resumes a task, orchestrates the unified state machine, separates approval from execution depth, and dispatches the stage skill for the current state.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# ec-workflow — state orchestration
|
|
@@ -11,26 +11,24 @@ user's language.
|
|
|
11
11
|
## State machine
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
|
-
INIT --auto--> ANALYSIS -> IMPLEMENT ->
|
|
15
|
-
^ ^ |
|
|
14
|
+
INIT --auto--> ANALYSIS -> IMPLEMENT -> QUALITY -> MEMORY --auto--> COMPLETE
|
|
15
|
+
^ ^ |
|
|
16
16
|
+--replan---+ +---repair-----+
|
|
17
17
|
|
|
18
|
-
read-only doc/analysis/report: IMPLEMENT -> COMPLETE
|
|
19
18
|
any active stage --explicit user abort--> CLOSED
|
|
20
19
|
```
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
lite semantics or an already-persisted edge, permits one IMPLEMENT -> VERIFICATION transition.
|
|
21
|
+
Every repository-mutation task uses this graph. QUALITY owns two independent read-only gates:
|
|
22
|
+
Review Gate and Verification Gate. `workflow_mode` changes their evidence depth, not the graph.
|
|
23
|
+
Pure conversation, explanation, analysis, and read-only review stay Ready and create no task.
|
|
26
24
|
|
|
27
25
|
## Independent controls
|
|
28
26
|
|
|
29
27
|
- `approval_mode = approve|guard|confirm|auto` controls whether a legal transition waits for a
|
|
30
|
-
user. `confirm` waits only at ANALYSIS -> IMPLEMENT; after that, green
|
|
31
|
-
|
|
28
|
+
user. `confirm` waits only at ANALYSIS -> IMPLEMENT; after that, green QUALITY, MEMORY, and
|
|
29
|
+
COMPLETE transitions advance automatically. `auto` advances every legal green
|
|
32
30
|
edge. The only additional pause is an exceptional code diff detected after the frozen
|
|
33
|
-
|
|
31
|
+
QUALITY acceptance checkpoint; accepting that exact diff does not change the mode.
|
|
34
32
|
- `workflow_mode = adaptive|fast|standard|strict` controls execution cost and assurance depth.
|
|
35
33
|
- `tdd_enabled` independently activates Java TDD and changed-line coverage. It defaults off;
|
|
36
34
|
`tdd_coverage_threshold` defaults to 90 and accepts integers from 1 to 100.
|
|
@@ -61,6 +59,9 @@ or `qoder`. Never use a display or source-author attribution such as `Codex with
|
|
|
61
59
|
{{PYTHON_CMD}} {{platform_config_dir}}/hooks/easy_coding_state.py snapshot --agent <agent-id> --session-file <P>
|
|
62
60
|
```
|
|
63
61
|
|
|
62
|
+
When `[easy-coding:lite-direct]` is present, route only to `ec-lite`. Do not create, resume,
|
|
63
|
+
inspect, or transition a normal Harness task until Lite is explicitly exited.
|
|
64
|
+
|
|
64
65
|
2. Check `.easy-coding/tasks/project-init/task.json` before routing work.
|
|
65
66
|
- Missing: tell the user to run `easy-coding init` to install or repair the harness, then stop.
|
|
66
67
|
- Present with `status != "COMPLETE"`: invoke `{{skill_trigger}}ec-init`, then stop.
|
|
@@ -126,14 +127,13 @@ or `qoder`. Never use a display or source-author attribution such as `Codex with
|
|
|
126
127
|
If the user names or clearly matches another task, confirm the switch and call
|
|
127
128
|
`claim-task --task-id <id> --agent <agent-id> --session-file <P>`. Do not execute task A
|
|
128
129
|
under task B's request.
|
|
129
|
-
- With no
|
|
130
|
-
|
|
130
|
+
- With no explicit repository-mutation request, stay Ready and answer normally. Ambiguous
|
|
131
|
+
intent remains Ready until conversation establishes a concrete mutation.
|
|
131
132
|
- For concrete unrelated work while another task is current, confirm creating the new task
|
|
132
133
|
and suspending the current pointer before changing ownership.
|
|
133
134
|
- Create a new task only after routing is settled, using a safe unique ID and a type faithful
|
|
134
|
-
to the requested
|
|
135
|
-
|
|
136
|
-
a no-code deliverable; never downgrade a code request to the read-only completion path.
|
|
135
|
+
to the requested repository mutation. A document, config, or report file write is still a
|
|
136
|
+
mutation task. Never create `doc`, `analysis`, or `report` tasks for a chat-only result.
|
|
137
137
|
6. Resume the matched/current task, then load only state-relevant assets. Do not read five full
|
|
138
138
|
memories at every startup; ANALYSIS searches memory metadata and opens relevant entries on
|
|
139
139
|
demand.
|
|
@@ -144,9 +144,8 @@ or `qoder`. Never use a display or source-author attribution such as `Codex with
|
|
|
144
144
|
- `INIT`: call `auto-transition --stage ANALYSIS`.
|
|
145
145
|
- `ANALYSIS`: dispatch `ec-analysis`; it produces artifacts and a workflow proposal.
|
|
146
146
|
- `IMPLEMENT`: dispatch `ec-implementing` using the frozen concrete mode.
|
|
147
|
-
- `
|
|
148
|
-
|
|
149
|
-
unchanged or explicitly accepted verification checkpoint.
|
|
147
|
+
- `QUALITY`: dispatch `ec-quality`; it freezes one candidate, runs Review and Verification Gates,
|
|
148
|
+
aggregates one repair bundle, and requires an unchanged or explicitly accepted checkpoint.
|
|
150
149
|
- `MEMORY`: dispatch `ec-memory`.
|
|
151
150
|
- `COMPLETE` / `CLOSED`: report terminal status and clear stale session ownership.
|
|
152
151
|
|
|
@@ -168,9 +167,18 @@ choice set before invoking the platform's native choice UI:
|
|
|
168
167
|
Preserve `pending_transition` on cancellation, timeout, or invalid UI output. A later ordinary
|
|
169
168
|
reply may consume it. Use `confirm-transition` only for a matching stored edge.
|
|
170
169
|
|
|
170
|
+
Text emitted before a later tool call is a non-durable process presentation because the host may
|
|
171
|
+
group or collapse it. For ANALYSIS -> IMPLEMENT, preserve the compact proposal receipt produced by
|
|
172
|
+
`ec-analysis`. After a native choice returns or a matching transition call completes, the last
|
|
173
|
+
assistant response in that turn must repeat the receipt and full Dev-Spec link/path even if they
|
|
174
|
+
were already visible. When the edge remains pending, include the complete numbered fallback;
|
|
175
|
+
when confirmed, name the accepted branch and target stage. An empty, cancelled, timed-out, or
|
|
176
|
+
invalid native result is not grounds to omit this final receipt.
|
|
177
|
+
|
|
171
178
|
Use `auto-transition` only when the state API says the edge is automatic. Mechanical gates
|
|
172
179
|
(analysis artifacts and proposal, review fingerprint, verification fingerprint, memory
|
|
173
|
-
completion) apply in every approval mode.
|
|
180
|
+
completion) apply in every approval mode. An automatic ANALYSIS -> IMPLEMENT edge must not pause;
|
|
181
|
+
carry its full Dev-Spec link/path into the next durable final response in the same turn.
|
|
174
182
|
|
|
175
183
|
`[easy-coding:acceptance-drift-confirmation-required]` is a narrow exception to automatic-edge
|
|
176
184
|
handling. Call `inspect-transition-drift`, present every returned patch/binary/mode change and the
|
|
@@ -178,23 +186,17 @@ current `diff_sha256`, then use the platform's native choice UI for these branch
|
|
|
178
186
|
|
|
179
187
|
1. Accept this exact diff and continue to MEMORY (recommended only with the stated verification
|
|
180
188
|
policy).
|
|
181
|
-
2. Return to IMPLEMENT because the change needs normal repair/
|
|
189
|
+
2. Return to IMPLEMENT because the change needs normal repair/quality checks.
|
|
182
190
|
3. Hand off to another Agent.
|
|
183
191
|
4. Other / revise.
|
|
184
192
|
|
|
185
193
|
Never call `auto-transition` repeatedly to hide this pause. If the user accepts, preserve the
|
|
186
|
-
existing
|
|
194
|
+
existing Review Gate conclusion and call `confirm-transition` with the exact digest,
|
|
187
195
|
`--verification-policy carry-forward|targeted|waived`, and a decision summary. `targeted` needs a
|
|
188
196
|
passed current-fingerprint targeted check first. If the digest changes, inspect and present the
|
|
189
197
|
new diff. Config, plan, workflow, Canonical-design, or nested-repository drift is not an
|
|
190
198
|
acceptance-diff choice and returns to the stage required by the state API.
|
|
191
199
|
|
|
192
|
-
For a migrated pre-0.9 Lite task, the breadcrumb
|
|
193
|
-
`[easy-coding:lite-review-bypass-required:IMPLEMENT->REVIEW]` means the stored REVIEW edge is
|
|
194
|
-
stale. Call `cancel-transition`, then immediately call `auto-transition --stage VERIFICATION`.
|
|
195
|
-
Do not consume, confirm, or recreate the REVIEW edge; the state API will consume the task's
|
|
196
|
-
one-time `workflow_mode_legacy_direct_edge` compatibility marker on the direct transition.
|
|
197
|
-
|
|
198
200
|
## Mode escalation
|
|
199
201
|
|
|
200
202
|
When implementation reveals a higher risk, call:
|
|
@@ -205,8 +207,8 @@ When implementation reveals a higher risk, call:
|
|
|
205
207
|
--agent <agent-id> --session-file <P>
|
|
206
208
|
```
|
|
207
209
|
|
|
208
|
-
Only upward changes are legal after ANALYSIS. During
|
|
209
|
-
raising the mode so the task re-enters
|
|
210
|
+
Only upward changes are legal after ANALYSIS. During QUALITY, return to IMPLEMENT before
|
|
211
|
+
raising the mode so the task re-enters QUALITY with fresh evidence. Scope or design changes return
|
|
210
212
|
to ANALYSIS.
|
|
211
213
|
|
|
212
214
|
## Handoff and closure
|
|
@@ -20,6 +20,7 @@ disabled, omit the TDD segment entirely and preserve the existing status-line fo
|
|
|
20
20
|
- Waiting init: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · Waiting init · Use `ec-init` to initialize
|
|
21
21
|
- Active task: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · `{current-task}` · `{workflow-state}`
|
|
22
22
|
- Handoff: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · `{current-task}` · `{workflow-state}` · Handoff -> `{source-agent}`
|
|
23
|
+
- Lite: > **Easy Coding** · **Lite Direct** · `{Ready|Awaiting Confirmation}` · No Task / Quality / Memory · Use `ec-lite` to exit
|
|
23
24
|
|
|
24
25
|
Skill names in the status line are bare names (`ec-init`, `ec-workflow`) and never include
|
|
25
26
|
platform prefixes such as `/` or `$`. If no status line is injected, do not invent one.
|
|
@@ -31,10 +32,11 @@ Trigger Easy Coding skills with your platform prefix — Codex: `$ec-*`, Qoder:
|
|
|
31
32
|
- `ec-init` — one-time project knowledge init (run once after install)
|
|
32
33
|
- `ec-workflow` — daily entrypoint: the workflow state machine and task resume
|
|
33
34
|
- `ec-brainstorming` — design exploration before building (hard design gate)
|
|
34
|
-
- `ec-analysis` `ec-implementing` `ec-
|
|
35
|
+
- `ec-analysis` `ec-implementing` `ec-quality` — workflow stages
|
|
35
36
|
- `ec-memory` — short/long memory archive
|
|
36
37
|
- `ec-task-management` — task lifecycle panel · `ec-config` — Approval/Workflow/TDD settings · `ec-tdd-init` — Java changed-line gate initialization · `ec-task-close` — interrupt a task
|
|
37
38
|
- `ec-no-harness` — bypass only Easy Coding for the current session
|
|
39
|
+
- `ec-lite` — user-controlled direct mode with one proposal confirmation and no task/QUALITY/MEMORY
|
|
38
40
|
- `ec-git` — git discipline · `ec-meta` — understand/customize the harness
|
|
39
41
|
|
|
40
42
|
First run `ec-init`; daily work goes through `ec-workflow`.
|
|
@@ -45,10 +47,10 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
45
47
|
is session override > project `behavior.workflow_mode` > `adaptive`. Approval controls waiting;
|
|
46
48
|
workflow controls execution depth. ANALYSIS shows and freezes adaptive to fast/standard/strict.
|
|
47
49
|
Confirm approval waits only at ANALYSIS -> IMPLEMENT, then advances green later stages
|
|
48
|
-
automatically; Auto advances all legal green edges. A new code diff after the
|
|
50
|
+
automatically; Auto advances all legal green edges. A new code diff after the QUALITY
|
|
49
51
|
checkpoint is the only exceptional pause across all modes: show the exact diff, bind acceptance
|
|
50
52
|
to its digest, and continue without rereview when the user accepts.
|
|
51
|
-
Every
|
|
53
|
+
Every mutation task runs QUALITY; no mode changes scope, delivery form, or evidence gates.
|
|
52
54
|
- TDD is session override > project `behavior.tdd_enabled` > `false`; its changed-line threshold
|
|
53
55
|
is session override > project `behavior.tdd_coverage_threshold` > `90`. ANALYSIS -> IMPLEMENT
|
|
54
56
|
freezes both. TDD may be enabled only after `ec-tdd-init` records valid infrastructure readiness;
|
|
@@ -59,53 +61,63 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
59
61
|
local coverage for production lines changed since the task baseline. `ec-tdd-init` still
|
|
60
62
|
generates GitLab TEST-stage automation, but remote CI status is not Harness acceptance evidence.
|
|
61
63
|
- Confirmation-required edges use `pending_transition`; automatic edges use the restricted
|
|
62
|
-
`auto-transition` API.
|
|
63
|
-
|
|
64
|
+
`auto-transition` API. Pure read-only conversation stays Ready and creates no task. Any
|
|
65
|
+
repository write, including documentation or configuration, uses the full state machine.
|
|
64
66
|
- A confirmation-required boundary is not fully presented until the user can choose its complete
|
|
65
67
|
business branches. When a native user-choice tool is available, invoke it in the same turn with
|
|
66
68
|
the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
|
|
67
69
|
(recommended) and "hand off to another agent", with free-form Other for revisions. The special
|
|
68
|
-
|
|
70
|
+
IMPLEMENT gate must preserve enter QUALITY and handoff, with free-form Other. Use a native
|
|
69
71
|
choice without a text pre-fallback only when the tool
|
|
70
72
|
explicitly guarantees an indefinite wait; disable or omit automatic timeout/resolution in that
|
|
71
73
|
case. Otherwise pre-render the matching numbered fallback before invoking native choice once,
|
|
72
74
|
so timeout cannot remove the user's path forward. Empty, dismissed, timed-out, or unparseable
|
|
73
|
-
native results preserve the pending edge;
|
|
74
|
-
|
|
75
|
+
native results preserve the pending edge; never retry native choice in that turn. On resume,
|
|
76
|
+
consume a matching
|
|
75
77
|
numbered reply against the stored edge before re-presenting the gate. Never degrade to only
|
|
76
|
-
"reply confirm".
|
|
78
|
+
"reply confirm". Text shown before a later tool call is non-durable because the
|
|
79
|
+
host may group or collapse it. For ANALYSIS -> IMPLEMENT, the last assistant response after a
|
|
80
|
+
native choice or transition call must repeat a compact core-solution, acceptance, workflow,
|
|
81
|
+
and risk receipt plus the full Dev-Spec link/path, even if already visible. Repeat the complete
|
|
82
|
+
fallback while the edge is pending; after confirmation, identify the accepted branch and target
|
|
83
|
+
stage. Auto adds no pause and carries the Dev-Spec link/path into the next durable final response.
|
|
77
84
|
- When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
|
|
78
85
|
only Easy Coding workflow/stage orchestration for this session. Continue honoring every
|
|
79
86
|
non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.
|
|
87
|
+
- When `[easy-coding:lite-direct]` is injected, use only `ec-lite`. Lite is enabled or disabled
|
|
88
|
+
solely by explicit user invocation, creates no task or evidence artifacts, and requires one
|
|
89
|
+
confirmed compact proposal before each mutation. With an active task, present cancel startup,
|
|
90
|
+
close-and-start, and clear-pointer-and-start; never choose for the user.
|
|
80
91
|
- ANALYSIS must follow template-first: read `.easy-coding/templates/dev-spec-skeleton.md` then
|
|
81
92
|
write its exact content to the task's dev-spec.md as the FIRST tool calls. Next inspect evidence,
|
|
82
93
|
set `decision_status: open`, ask every unresolved material decision, and progressively record
|
|
83
94
|
each confirmed answer and its evidence in `### 决策闭环`. Only after all material decisions are
|
|
84
95
|
resolved may the agent set the single `decision_status: closed`, finalize the artifacts, and
|
|
85
96
|
propose IMPLEMENT. The session presentation is a concise core-solution, acceptance, workflow,
|
|
86
|
-
and risk
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
97
|
+
and risk receipt with an absolute local link/path to the full dev-spec.md; repeat that durable
|
|
98
|
+
receipt after a later native choice or transition call instead of relying on collapsible process
|
|
99
|
+
text; never paste the full artifact by default. The final artifact contains neither
|
|
100
|
+
`[阶段:ANALYSIS]` nor a `待用户决策` section.
|
|
101
|
+
- QUALITY contains fingerprinted Review and Verification Gates. Review evidence must match the final
|
|
90
102
|
implementation; verification evidence must match final implementation and config. The frozen
|
|
91
103
|
workflow mode selects targeted, impacted, or full commands without weakening the green gate.
|
|
92
|
-
Freeze a
|
|
104
|
+
Freeze a quality checkpoint after green checks. Unchanged checkpoints follow approval
|
|
93
105
|
mode normally; post-checkpoint code drift requires exact digest acceptance and
|
|
94
|
-
carry-forward/targeted/waived verification policy, but never an automatic second
|
|
106
|
+
carry-forward/targeted/waived verification policy, but never an automatic second Review Gate.
|
|
95
107
|
- Canonical-backed tasks bind static validity to design revision + `design_sha256`, while
|
|
96
108
|
`document_sha256` and `execution_revision` may advance through shared writer commands. Project-
|
|
97
109
|
external explicit Spec paths are allowed and may be repaired only with identity-checked rebind.
|
|
98
110
|
Runtime progress must use the shared writer with CAS/idempotency and reconciliation; static
|
|
99
111
|
design changes require revision + READY + `sync-spec-design`. Never hand-edit `EDS:EXECUTION`.
|
|
100
|
-
Selected source tasks remain `implemented` through local
|
|
101
|
-
only when the accepted
|
|
112
|
+
Selected source tasks remain `implemented` through local QUALITY and become `verified`
|
|
113
|
+
only when the accepted QUALITY -> MEMORY boundary is actually applied.
|
|
102
114
|
- Canonical routing is two-pass: first use manifest-only discovery for the current worktree, then
|
|
103
115
|
inspect only the explicitly selected task IDs and repositories. A remote-confirmed worktree
|
|
104
116
|
overrides a stale `path_hint`; never mirror the source Spec or re-check unselected repositories.
|
|
105
117
|
ANALYSIS reads the selected consumption closure once and treats exact/scope-unchanged as a fast
|
|
106
118
|
projection, while shared execution is the dependency fact source.
|
|
107
119
|
- MEMORY combines short-memory creation and the conditional long-memory gate. Entry follows the
|
|
108
|
-
effective confirmation mode; its checkpoint records any accepted post-
|
|
120
|
+
effective confirmation mode; its checkpoint records any accepted post-quality diff digest
|
|
109
121
|
and decision. Once memory processing completes, COMPLETE is automatic.
|
|
110
122
|
- NO CODE-TASK COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.
|
|
111
123
|
- All cross-platform modules (skills, hooks, references) must use universal agent protocols.
|
|
@@ -123,7 +135,7 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
123
135
|
a workflow identity. The installed script's embedded platform identity, canonical owner, and
|
|
124
136
|
injected session namespace must agree. Do not hand-edit session files, `current_task`, task
|
|
125
137
|
`status`, `stage_history`,
|
|
126
|
-
`pending_transition`, `
|
|
138
|
+
`pending_transition`, `quality_checkpoint`, `lite_mode`, `lite_proposal`, workflow/TDD proposal or freeze fields,
|
|
127
139
|
`memory_progress`, or `last_agent`.
|
|
128
140
|
- The hook injects `[easy-coding:session-file:P]`; pass that path to the state script with
|
|
129
141
|
`--session-file <P>` when changing the current task or stage.
|
|
@@ -20,6 +20,7 @@ disabled, omit the TDD segment entirely and preserve the existing status-line fo
|
|
|
20
20
|
- Waiting init: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · Waiting init · Use `ec-init` to initialize
|
|
21
21
|
- Active task: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · `{current-task}` · `{workflow-state}`
|
|
22
22
|
- Handoff: > **Easy Coding** · **Approval: {approval-mode}** · **Workflow: {workflow-mode}** · `{current-task}` · `{workflow-state}` · Handoff -> `{source-agent}`
|
|
23
|
+
- Lite: > **Easy Coding** · **Lite Direct** · `{Ready|Awaiting Confirmation}` · No Task / Quality / Memory · Use `ec-lite` to exit
|
|
23
24
|
|
|
24
25
|
Skill names in the status line are bare names (`ec-init`, `ec-workflow`) and never include
|
|
25
26
|
platform prefixes such as `/` or `$`. If no status line is injected, do not invent one.
|
|
@@ -29,10 +30,11 @@ platform prefixes such as `/` or `$`. If no status line is injected, do not inve
|
|
|
29
30
|
- `/ec-init` — one-time project knowledge init (run once after install)
|
|
30
31
|
- `/ec-workflow` — daily entrypoint: the workflow state machine and task resume
|
|
31
32
|
- `/ec-brainstorming` — design exploration before building (hard design gate)
|
|
32
|
-
- `/ec-analysis` `/ec-implementing` `/ec-
|
|
33
|
+
- `/ec-analysis` `/ec-implementing` `/ec-quality` — workflow stages
|
|
33
34
|
- `/ec-memory` — short/long memory archive
|
|
34
35
|
- `/ec-task-management` — task lifecycle panel · `/ec-config` — Approval/Workflow/TDD settings · `/ec-tdd-init` — Java changed-line gate initialization · `/ec-task-close` — interrupt a task
|
|
35
36
|
- `/ec-no-harness` — bypass only Easy Coding for the current session
|
|
37
|
+
- `/ec-lite` — user-controlled direct mode with one proposal confirmation and no task/QUALITY/MEMORY
|
|
36
38
|
- `/ec-git` — git discipline · `/ec-meta` — understand/customize the harness
|
|
37
39
|
|
|
38
40
|
First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
@@ -43,10 +45,10 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
43
45
|
is session override > project `behavior.workflow_mode` > `adaptive`. Approval controls waiting;
|
|
44
46
|
workflow controls execution depth. ANALYSIS shows and freezes adaptive to fast/standard/strict.
|
|
45
47
|
Confirm approval waits only at ANALYSIS -> IMPLEMENT, then advances green later stages
|
|
46
|
-
automatically; Auto advances all legal green edges. A new code diff after the
|
|
48
|
+
automatically; Auto advances all legal green edges. A new code diff after the QUALITY
|
|
47
49
|
checkpoint is the only exceptional pause across all modes: show the exact diff, bind acceptance
|
|
48
50
|
to its digest, and continue without rereview when the user accepts.
|
|
49
|
-
Every
|
|
51
|
+
Every mutation task runs QUALITY; no mode changes scope, delivery form, or evidence gates.
|
|
50
52
|
- TDD is session override > project `behavior.tdd_enabled` > `false`; its changed-line threshold
|
|
51
53
|
is session override > project `behavior.tdd_coverage_threshold` > `90`. ANALYSIS -> IMPLEMENT
|
|
52
54
|
freezes both. TDD may be enabled only after `ec-tdd-init` records valid infrastructure readiness;
|
|
@@ -57,53 +59,63 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
57
59
|
local coverage for production lines changed since the task baseline. `ec-tdd-init` still
|
|
58
60
|
generates GitLab TEST-stage automation, but remote CI status is not Harness acceptance evidence.
|
|
59
61
|
- Confirmation-required edges use `pending_transition`; automatic edges use the restricted
|
|
60
|
-
`auto-transition` API.
|
|
61
|
-
|
|
62
|
+
`auto-transition` API. Pure read-only conversation stays Ready and creates no task. Any
|
|
63
|
+
repository write, including documentation or configuration, uses the full state machine.
|
|
62
64
|
- A confirmation-required boundary is not fully presented until the user can choose its complete
|
|
63
65
|
business branches. When a native user-choice tool is available, invoke it in the same turn with
|
|
64
66
|
the complete gate. An ordinary gate offers "confirm entering/returning to the target stage"
|
|
65
67
|
(recommended) and "hand off to another agent", with free-form Other for revisions. The special
|
|
66
|
-
|
|
68
|
+
IMPLEMENT gate must preserve enter QUALITY and handoff, with free-form Other. Use a native
|
|
67
69
|
choice without a text pre-fallback only when the tool
|
|
68
70
|
explicitly guarantees an indefinite wait; disable or omit automatic timeout/resolution in that
|
|
69
71
|
case. Otherwise pre-render the matching numbered fallback before invoking native choice once,
|
|
70
72
|
so timeout cannot remove the user's path forward. Empty, dismissed, timed-out, or unparseable
|
|
71
|
-
native results preserve the pending edge;
|
|
72
|
-
|
|
73
|
+
native results preserve the pending edge; never retry native choice in that turn. On resume,
|
|
74
|
+
consume a matching
|
|
73
75
|
numbered reply against the stored edge before re-presenting the gate. Never degrade to only
|
|
74
|
-
"reply confirm".
|
|
76
|
+
"reply confirm". Text shown before a later tool call is non-durable because the
|
|
77
|
+
host may group or collapse it. For ANALYSIS -> IMPLEMENT, the last assistant response after a
|
|
78
|
+
native choice or transition call must repeat a compact core-solution, acceptance, workflow,
|
|
79
|
+
and risk receipt plus the full Dev-Spec link/path, even if already visible. Repeat the complete
|
|
80
|
+
fallback while the edge is pending; after confirmation, identify the accepted branch and target
|
|
81
|
+
stage. Auto adds no pause and carries the Dev-Spec link/path into the next durable final response.
|
|
75
82
|
- When `[easy-coding:no-harness]` is injected, do not emit an Easy Coding status line and ignore
|
|
76
83
|
only Easy Coding workflow/stage orchestration for this session. Continue honoring every
|
|
77
84
|
non-Easy-Coding skill, hook, and instruction. Do not clear or mutate the suspended task.
|
|
85
|
+
- When `[easy-coding:lite-direct]` is injected, use only `ec-lite`. Lite is enabled or disabled
|
|
86
|
+
solely by explicit user invocation, creates no task or evidence artifacts, and requires one
|
|
87
|
+
confirmed compact proposal before each mutation. With an active task, present cancel startup,
|
|
88
|
+
close-and-start, and clear-pointer-and-start; never choose for the user.
|
|
78
89
|
- ANALYSIS must follow template-first: read `.easy-coding/templates/dev-spec-skeleton.md` then
|
|
79
90
|
write its exact content to the task's dev-spec.md as the FIRST tool calls. Next inspect evidence,
|
|
80
91
|
set `decision_status: open`, ask every unresolved material decision, and progressively record
|
|
81
92
|
each confirmed answer and its evidence in `### 决策闭环`. Only after all material decisions are
|
|
82
93
|
resolved may the agent set the single `decision_status: closed`, finalize the artifacts, and
|
|
83
94
|
propose IMPLEMENT. The session presentation is a concise core-solution, acceptance, workflow,
|
|
84
|
-
and risk
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
95
|
+
and risk receipt with an absolute local link/path to the full dev-spec.md; repeat that durable
|
|
96
|
+
receipt after a later native choice or transition call instead of relying on collapsible process
|
|
97
|
+
text; never paste the full artifact by default. The final artifact contains neither
|
|
98
|
+
`[阶段:ANALYSIS]` nor a `待用户决策` section.
|
|
99
|
+
- QUALITY contains fingerprinted Review and Verification Gates. Review evidence must match the final
|
|
88
100
|
implementation; verification evidence must match final implementation and config. The frozen
|
|
89
101
|
workflow mode selects targeted, impacted, or full commands without weakening the green gate.
|
|
90
|
-
Freeze a
|
|
102
|
+
Freeze a quality checkpoint after green checks. Unchanged checkpoints follow approval
|
|
91
103
|
mode normally; post-checkpoint code drift requires exact digest acceptance and
|
|
92
|
-
carry-forward/targeted/waived verification policy, but never an automatic second
|
|
104
|
+
carry-forward/targeted/waived verification policy, but never an automatic second Review Gate.
|
|
93
105
|
- Canonical-backed tasks bind static validity to design revision + `design_sha256`, while
|
|
94
106
|
`document_sha256` and `execution_revision` may advance through shared writer commands. Project-
|
|
95
107
|
external explicit Spec paths are allowed and may be repaired only with identity-checked rebind.
|
|
96
108
|
Runtime progress must use the shared writer with CAS/idempotency and reconciliation; static
|
|
97
109
|
design changes require revision + READY + `sync-spec-design`. Never hand-edit `EDS:EXECUTION`.
|
|
98
|
-
Selected source tasks remain `implemented` through local
|
|
99
|
-
only when the accepted
|
|
110
|
+
Selected source tasks remain `implemented` through local QUALITY and become `verified`
|
|
111
|
+
only when the accepted QUALITY -> MEMORY boundary is actually applied.
|
|
100
112
|
- Canonical routing is two-pass: first use manifest-only discovery for the current worktree, then
|
|
101
113
|
inspect only the explicitly selected task IDs and repositories. A remote-confirmed worktree
|
|
102
114
|
overrides a stale `path_hint`; never mirror the source Spec or re-check unselected repositories.
|
|
103
115
|
ANALYSIS reads the selected consumption closure once and treats exact/scope-unchanged as a fast
|
|
104
116
|
projection, while shared execution is the dependency fact source.
|
|
105
117
|
- MEMORY combines short-memory creation and the conditional long-memory gate. Entry follows the
|
|
106
|
-
effective confirmation mode; its checkpoint records any accepted post-
|
|
118
|
+
effective confirmation mode; its checkpoint records any accepted post-quality diff digest
|
|
107
119
|
and decision. Once memory processing completes, COMPLETE is automatic.
|
|
108
120
|
- NO CODE-TASK COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.
|
|
109
121
|
- All cross-platform modules (skills, hooks, references) must use universal agent protocols.
|
|
@@ -118,7 +130,7 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
118
130
|
`Claude with Easy Coding` is not a workflow identity. The installed script's embedded platform
|
|
119
131
|
identity, canonical owner, and injected session namespace must agree. Do not hand-edit session
|
|
120
132
|
files, `current_task`, task `status`, `stage_history`,
|
|
121
|
-
`pending_transition`, `
|
|
133
|
+
`pending_transition`, `quality_checkpoint`, `lite_mode`, `lite_proposal`, workflow/TDD proposal or freeze fields,
|
|
122
134
|
`memory_progress`, or `last_agent`.
|
|
123
135
|
- The hook injects `[easy-coding:session-file:P]`; pass that path to the state script with
|
|
124
136
|
`--session-file <P>` when changing the current task or stage.
|