easy-coding-harness 0.10.0-beta.7 → 0.10.0-beta.9
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 +33 -0
- package/README.md +10 -3
- package/dist/cli.js +95 -5
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/common/bundled-skills/ec-meta/references/local-architecture/README.md +10 -4
- package/templates/common/skills/ec-config/SKILL.md +6 -0
- package/templates/common/skills/ec-implementing/SKILL.md +3 -1
- package/templates/common/skills/ec-memory/SKILL.md +7 -0
- package/templates/common/skills/ec-verification/SKILL.md +45 -9
- package/templates/common/skills/ec-workflow/SKILL.md +25 -2
- package/templates/main-constraint/AGENTS.md.tpl +21 -6
- package/templates/main-constraint/CLAUDE.md.tpl +18 -6
- package/templates/shared-hooks/easy_coding_state.py +1219 -27
package/package.json
CHANGED
|
@@ -49,11 +49,15 @@ automatic edges. A validated read-only `doc` / `analysis` / `report` task also a
|
|
|
49
49
|
from IMPLEMENT after its full deliverable is shown, without REVIEW, VERIFICATION, MEMORY, or
|
|
50
50
|
task memory. Approval mode controls non-mechanical edge waiting: approve confirms each edge,
|
|
51
51
|
guard confirms two critical gates, confirm waits only at ANALYSIS -> IMPLEMENT, and auto
|
|
52
|
-
advances every legal edge after mechanical gates.
|
|
52
|
+
advances every legal edge after mechanical gates. After green VERIFICATION, Harness freezes an
|
|
53
|
+
acceptance checkpoint. A later code diff temporarily pauses every mode so the exact digest can be
|
|
54
|
+
accepted; unchanged `confirm`/`auto` tasks remain automatic.
|
|
53
55
|
Workflow mode is independently configured as adaptive/fast/standard/strict; ANALYSIS freezes
|
|
54
56
|
adaptive to a concrete mode, and every new code task still enters REVIEW. REVIEW evidence is
|
|
55
57
|
bound to the final implementation fingerprint, VERIFICATION evidence is bound to implementation
|
|
56
|
-
and config fingerprints, and
|
|
58
|
+
and config fingerprints, and an accepted post-checkpoint diff records its authorization plus
|
|
59
|
+
carry-forward/targeted/waived policy without forcing a second REVIEW. MEMORY keeps the conditional
|
|
60
|
+
long-memory threshold gate.
|
|
57
61
|
|
|
58
62
|
Java TDD is a third independent, default-off control managed by `ec-config`. Session overrides
|
|
59
63
|
project configuration; ANALYSIS freezes enabled state and the 1..100 changed-line threshold
|
|
@@ -78,7 +82,7 @@ stage in `task.json`; no data is lost. Each task folder is self-contained.
|
|
|
78
82
|
Each task is a folder. `task.json` is metadata, including the current stage, workflow proposal,
|
|
79
83
|
frozen concrete mode, and any `pending_transition`; `dev-spec.md` is the human-readable plan;
|
|
80
84
|
`execution.jsonl` is an append-only plan-and-log (one `plan` record, then `dispatch`/`result`
|
|
81
|
-
/`review`/`verify`/`handoff` records). Because plan and log live on disk, not in an agent's
|
|
85
|
+
/`review`/`verify`/`acceptance`/`handoff` records). Because plan and log live on disk, not in an agent's
|
|
82
86
|
context window, a task survives session end and agent switches with zero information loss.
|
|
83
87
|
|
|
84
88
|
## Canonical Spec integration
|
|
@@ -98,7 +102,9 @@ and integration dependencies block end-to-end completion until evidence is recor
|
|
|
98
102
|
keeps detailed evidence locally and projects cross-application Task/Step/dependency outcomes into
|
|
99
103
|
`EDS:EXECUTION` through one CAS/idempotent writer. Static changes use revision + READY +
|
|
100
104
|
`sync-spec-design`; agents never hand-edit the machine ledger. Explicit external locators are
|
|
101
|
-
allowed and rebind only by exact Canonical identity.
|
|
105
|
+
allowed and rebind only by exact Canonical identity. Source tasks stay `implemented` after local
|
|
106
|
+
checks and become `verified` only when VERIFICATION -> MEMORY is applied under explicit or
|
|
107
|
+
standing approval-mode authorization; the shared event includes the acceptance digest.
|
|
102
108
|
|
|
103
109
|
## Memory system
|
|
104
110
|
|
|
@@ -33,6 +33,12 @@ Explain precedence as `session override > project config > defaults`. Defaults a
|
|
|
33
33
|
task freezes its effective TDD values when ANALYSIS advances to IMPLEMENT; later project/session
|
|
34
34
|
changes affect future tasks and ANALYSIS only.
|
|
35
35
|
|
|
36
|
+
Approval semantics stay independent from verification depth: `approve` waits at each
|
|
37
|
+
non-mechanical edge, `guard` waits at ANALYSIS -> IMPLEMENT and VERIFICATION -> MEMORY, `confirm`
|
|
38
|
+
waits only for the plan, and `auto` advances legal green edges immediately. Every mode temporarily
|
|
39
|
+
pauses only when code changes after the frozen VERIFICATION checkpoint, because the user must see
|
|
40
|
+
and accept that exact new diff; this exception does not convert `auto` into `guard`.
|
|
41
|
+
|
|
36
42
|
## Project configuration
|
|
37
43
|
|
|
38
44
|
Use `easy-coding config` for project settings. The CLI confirms one atomic update of Approval,
|
|
@@ -40,7 +40,9 @@ Communicate with the user in the user's language.
|
|
|
40
40
|
author value must be `<Current Agent Name> with Easy Coding`, for example
|
|
41
41
|
`Codex with Easy Coding`. `Current Agent Name` means the user-facing host Agent (for example,
|
|
42
42
|
Codex, Claude, or Qoder), never an implementation sub-agent role such as `ec-implementer`.
|
|
43
|
-
|
|
43
|
+
This value is display attribution only: never pass it to the workflow state API's `--agent`,
|
|
44
|
+
which accepts only `claude-code`, `codex`, or `qoder`. Never copy a previous human or Agent name
|
|
45
|
+
into newly authored code.
|
|
44
46
|
9. Every newly added field in a data-bearing model must have a meaningful field-level comment.
|
|
45
47
|
This includes new or extended entity/DO/DTO/VO/BO, request/response, configuration, and similar
|
|
46
48
|
model types. Every new enum member and every new declared constant requires the same treatment.
|
|
@@ -35,6 +35,13 @@ Name it `{memory_id}_{YYYYMMDD}_{smart_name}.md` and set
|
|
|
35
35
|
`.easy-coding/memory/short/`, then register it with
|
|
36
36
|
`memory-short-complete`. Never invent test results or commit hashes.
|
|
37
37
|
|
|
38
|
+
Copy the final `acceptance` record from `execution.jsonl` into the checkpoint as a concise
|
|
39
|
+
decision fact: authorization source, decision summary, `diff_sha256`, review policy, verification
|
|
40
|
+
policy, changed files, and any Canonical source tasks that required targeted verification.
|
|
41
|
+
`memory-short-complete` rejects a checkpoint that omits any of those decision fields. This records
|
|
42
|
+
the user's accepted exception without re-reviewing or re-analyzing the code. Canonical writeback
|
|
43
|
+
already carries the same digest and authorization as shared `acceptance` evidence.
|
|
44
|
+
|
|
38
45
|
When frozen TDD is enabled, add its threshold, lifecycle evidence, passed local unit-test result,
|
|
39
46
|
and local changed-line result to the short memory's execution evidence. Remote CI status is not
|
|
40
47
|
part of Harness acceptance or task memory. When TDD is off, omit TDD fields entirely so ordinary
|
|
@@ -15,7 +15,8 @@ Read-only tasks never enter this stage. Obtain fresh fingerprints before running
|
|
|
15
15
|
|
|
16
16
|
- No completion claim without executed verification evidence.
|
|
17
17
|
- Evidence is reusable only while both returned fingerprints remain unchanged.
|
|
18
|
-
- Relevant code or config changes invalidate old evidence automatically
|
|
18
|
+
- Relevant code or config changes invalidate old evidence automatically unless the exact
|
|
19
|
+
post-verification code diff is explicitly accepted under the checkpoint protocol below.
|
|
19
20
|
- Failed or missing evidence never becomes acceptance because of approval mode.
|
|
20
21
|
|
|
21
22
|
## Verification depth
|
|
@@ -109,6 +110,38 @@ enable TDD; report the explicit `ec-config`/`easy-coding config` next step.
|
|
|
109
110
|
user wait.
|
|
110
111
|
- A reported in-scope problem returns to IMPLEMENT; out-of-scope work becomes a separate task.
|
|
111
112
|
|
|
113
|
+
After the final green evidence is recorded, freeze the acceptance baseline before presenting the
|
|
114
|
+
result or applying the boundary:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
{{PYTHON_CMD}} {{platform_config_dir}}/hooks/easy_coding_state.py verification-checkpoint \
|
|
118
|
+
--agent <agent-id> --session-file <P>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Then request or auto-apply VERIFICATION -> MEMORY according to `approval_mode`. `auto` remains
|
|
122
|
+
automatic when the checkpoint is unchanged. If any in-scope code changed after the checkpoint,
|
|
123
|
+
the state API returns `action:"acceptance-drift"`, keeps the task in VERIFICATION, and includes
|
|
124
|
+
the exact unified patches or binary/mode-change descriptions plus a stable `diff_sha256`. This
|
|
125
|
+
exceptional drift pauses every approval mode, including `auto`; it does not permanently change
|
|
126
|
+
the configured mode.
|
|
127
|
+
|
|
128
|
+
Show the complete returned diff and ask whether to accept that exact digest. Do not re-enter
|
|
129
|
+
IMPLEMENT or rerun REVIEW merely because this drift exists. On acceptance, call
|
|
130
|
+
`confirm-transition --stage MEMORY --diff-sha256 <digest>` with exactly one policy:
|
|
131
|
+
|
|
132
|
+
- `carry-forward`: only when every changed hunk is confidently non-executable and existing
|
|
133
|
+
verification remains applicable;
|
|
134
|
+
- `targeted`: executable behavior changed; append passed current-fingerprint targeted verification
|
|
135
|
+
before confirming. Canonical tasks must cover every affected source task reported by the
|
|
136
|
+
acceptance record, without rerunning checks for unaffected source tasks;
|
|
137
|
+
- `waived`: the user explicitly accepts the stated unverified risk.
|
|
138
|
+
|
|
139
|
+
Include `--decision-summary` with the user's decision. A changed digest invalidates the pending
|
|
140
|
+
confirmation and must be shown again. Behavior config, execution plan, workflow, Canonical
|
|
141
|
+
design, or nested-repository metadata drift cannot use this shortcut; return to ANALYSIS or
|
|
142
|
+
IMPLEMENT as reported by the state API. The acceptance record bridges only the accepted
|
|
143
|
+
implementation fingerprints, so prior REVIEW evidence remains valid without a second REVIEW.
|
|
144
|
+
|
|
112
145
|
For Canonical-backed tasks, run each repository's commands from `task.repo_paths[repo_id]` and
|
|
113
146
|
cover every selected task's source test IDs. Report pending integration edges separately from
|
|
114
147
|
local green checks. They do not block local implementation evidence, but the state API blocks
|
|
@@ -119,12 +152,15 @@ tasks remain separate evidence records. In `strict`, every involved repository i
|
|
|
119
152
|
records all four check types; a repository-specific non-applicable record still needs its reason
|
|
120
153
|
and source ownership.
|
|
121
154
|
|
|
122
|
-
After
|
|
123
|
-
`writeback-spec-task --status verified
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
`
|
|
155
|
+
After implementation and local checks, each selected Canonical source task remains
|
|
156
|
+
`implemented`. Do not call `writeback-spec-task --status verified` from VERIFICATION. Applying
|
|
157
|
+
VERIFICATION -> MEMORY is the authoritative acceptance boundary: the state API writes each
|
|
158
|
+
still-implemented source task to `verified` through CAS/idempotent recoverable events with its
|
|
159
|
+
accepted test evidence and acceptance digest, then enters MEMORY only after every write is
|
|
160
|
+
confirmed. For `approve`/`guard`, that authority is the explicit boundary
|
|
161
|
+
confirmation; for `confirm`/`auto`, it is the standing approval-mode authorization when no new
|
|
162
|
+
drift exists. If writeback is interrupted, run `reconcile-spec-execution` before retrying the
|
|
163
|
+
transition. Remote CI remains outside this acceptance gate.
|
|
128
164
|
|
|
129
165
|
Record the exact integration edge only after its evidence exists:
|
|
130
166
|
|
|
@@ -137,5 +173,5 @@ Record the exact integration edge only after its evidence exists:
|
|
|
137
173
|
--agent <agent>
|
|
138
174
|
```
|
|
139
175
|
|
|
140
|
-
The state API rejects VERIFICATION -> MEMORY unless all evidence
|
|
141
|
-
|
|
176
|
+
The state API rejects VERIFICATION -> MEMORY unless all effective evidence is green and the
|
|
177
|
+
checkpoint is either unchanged or bound to an exact accepted diff.
|
|
@@ -28,7 +28,9 @@ lite semantics or an already-persisted edge, permits one IMPLEMENT -> VERIFICATI
|
|
|
28
28
|
|
|
29
29
|
- `approval_mode = approve|guard|confirm|auto` controls whether a legal transition waits for a
|
|
30
30
|
user. `confirm` waits only at ANALYSIS -> IMPLEMENT; after that, green REVIEW, VERIFICATION,
|
|
31
|
-
MEMORY, and COMPLETE transitions advance automatically.
|
|
31
|
+
MEMORY, and COMPLETE transitions advance automatically. `auto` advances every legal green
|
|
32
|
+
edge. The only additional pause is an exceptional code diff detected after the frozen
|
|
33
|
+
VERIFICATION acceptance checkpoint; accepting that exact diff does not change the mode.
|
|
32
34
|
- `workflow_mode = adaptive|fast|standard|strict` controls execution cost and assurance depth.
|
|
33
35
|
- `tdd_enabled` independently activates Java TDD and changed-line coverage. It defaults off;
|
|
34
36
|
`tdd_coverage_threshold` defaults to 90 and accepts integers from 1 to 100.
|
|
@@ -50,6 +52,9 @@ plan decision; Auto continues immediately. Both remove later waiting, not qualit
|
|
|
50
52
|
|
|
51
53
|
## Startup
|
|
52
54
|
|
|
55
|
+
Throughout this skill, `<agent-id>` is the canonical workflow owner ID: `claude-code`, `codex`,
|
|
56
|
+
or `qoder`. Never use a display or source-author attribution such as `Codex with Easy Coding`.
|
|
57
|
+
|
|
53
58
|
1. Read the injected state breadcrumbs or call:
|
|
54
59
|
|
|
55
60
|
```bash
|
|
@@ -140,7 +145,8 @@ plan decision; Auto continues immediately. Both remove later waiting, not qualit
|
|
|
140
145
|
- `ANALYSIS`: dispatch `ec-analysis`; it produces artifacts and a workflow proposal.
|
|
141
146
|
- `IMPLEMENT`: dispatch `ec-implementing` using the frozen concrete mode.
|
|
142
147
|
- `REVIEW`: dispatch `ec-reviewing`; the transition requires current fingerprint evidence.
|
|
143
|
-
- `VERIFICATION`: dispatch `ec-verification`;
|
|
148
|
+
- `VERIFICATION`: dispatch `ec-verification`; the MEMORY boundary requires green evidence and an
|
|
149
|
+
unchanged or explicitly accepted verification checkpoint.
|
|
144
150
|
- `MEMORY`: dispatch `ec-memory`.
|
|
145
151
|
- `COMPLETE` / `CLOSED`: report terminal status and clear stale session ownership.
|
|
146
152
|
|
|
@@ -166,6 +172,23 @@ Use `auto-transition` only when the state API says the edge is automatic. Mechan
|
|
|
166
172
|
(analysis artifacts and proposal, review fingerprint, verification fingerprint, memory
|
|
167
173
|
completion) apply in every approval mode.
|
|
168
174
|
|
|
175
|
+
`[easy-coding:acceptance-drift-confirmation-required]` is a narrow exception to automatic-edge
|
|
176
|
+
handling. Call `inspect-transition-drift`, present every returned patch/binary/mode change and the
|
|
177
|
+
current `diff_sha256`, then use the platform's native choice UI for these branches:
|
|
178
|
+
|
|
179
|
+
1. Accept this exact diff and continue to MEMORY (recommended only with the stated verification
|
|
180
|
+
policy).
|
|
181
|
+
2. Return to IMPLEMENT because the change needs normal repair/review.
|
|
182
|
+
3. Hand off to another Agent.
|
|
183
|
+
4. Other / revise.
|
|
184
|
+
|
|
185
|
+
Never call `auto-transition` repeatedly to hide this pause. If the user accepts, preserve the
|
|
186
|
+
existing REVIEW conclusion and call `confirm-transition` with the exact digest,
|
|
187
|
+
`--verification-policy carry-forward|targeted|waived`, and a decision summary. `targeted` needs a
|
|
188
|
+
passed current-fingerprint targeted check first. If the digest changes, inspect and present the
|
|
189
|
+
new diff. Config, plan, workflow, Canonical-design, or nested-repository drift is not an
|
|
190
|
+
acceptance-diff choice and returns to the stage required by the state API.
|
|
191
|
+
|
|
169
192
|
For a migrated pre-0.9 Lite task, the breadcrumb
|
|
170
193
|
`[easy-coding:lite-review-bypass-required:IMPLEMENT->REVIEW]` means the stored REVIEW edge is
|
|
171
194
|
stale. Call `cancel-transition`, then immediately call `auto-transition --stage VERIFICATION`.
|
|
@@ -45,8 +45,10 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
45
45
|
is session override > project `behavior.workflow_mode` > `adaptive`. Approval controls waiting;
|
|
46
46
|
workflow controls execution depth. ANALYSIS shows and freezes adaptive to fast/standard/strict.
|
|
47
47
|
Confirm approval waits only at ANALYSIS -> IMPLEMENT, then advances green later stages
|
|
48
|
-
automatically
|
|
49
|
-
|
|
48
|
+
automatically; Auto advances all legal green edges. A new code diff after the VERIFICATION
|
|
49
|
+
checkpoint is the only exceptional pause across all modes: show the exact diff, bind acceptance
|
|
50
|
+
to its digest, and continue without rereview when the user accepts.
|
|
51
|
+
Every new code task runs REVIEW; 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;
|
|
@@ -87,18 +89,24 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
87
89
|
- REVIEW and VERIFICATION are fingerprinted hard gates. Review evidence must match the final
|
|
88
90
|
implementation; verification evidence must match final implementation and config. The frozen
|
|
89
91
|
workflow mode selects targeted, impacted, or full commands without weakening the green gate.
|
|
92
|
+
Freeze a verification checkpoint after green checks. Unchanged checkpoints follow approval
|
|
93
|
+
mode normally; post-checkpoint code drift requires exact digest acceptance and
|
|
94
|
+
carry-forward/targeted/waived verification policy, but never an automatic second REVIEW.
|
|
90
95
|
- Canonical-backed tasks bind static validity to design revision + `design_sha256`, while
|
|
91
96
|
`document_sha256` and `execution_revision` may advance through shared writer commands. Project-
|
|
92
97
|
external explicit Spec paths are allowed and may be repaired only with identity-checked rebind.
|
|
93
98
|
Runtime progress must use the shared writer with CAS/idempotency and reconciliation; static
|
|
94
99
|
design changes require revision + READY + `sync-spec-design`. Never hand-edit `EDS:EXECUTION`.
|
|
100
|
+
Selected source tasks remain `implemented` through local VERIFICATION and become `verified`
|
|
101
|
+
only when the accepted VERIFICATION -> MEMORY boundary is actually applied.
|
|
95
102
|
- Canonical routing is two-pass: first use manifest-only discovery for the current worktree, then
|
|
96
103
|
inspect only the explicitly selected task IDs and repositories. A remote-confirmed worktree
|
|
97
104
|
overrides a stale `path_hint`; never mirror the source Spec or re-check unselected repositories.
|
|
98
105
|
ANALYSIS reads the selected consumption closure once and treats exact/scope-unchanged as a fast
|
|
99
106
|
projection, while shared execution is the dependency fact source.
|
|
100
107
|
- MEMORY combines short-memory creation and the conditional long-memory gate. Entry follows the
|
|
101
|
-
effective confirmation mode;
|
|
108
|
+
effective confirmation mode; its checkpoint records any accepted post-verification diff digest
|
|
109
|
+
and decision. Once memory processing completes, COMPLETE is automatic.
|
|
102
110
|
- NO CODE-TASK COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.
|
|
103
111
|
- All cross-platform modules (skills, hooks, references) must use universal agent protocols.
|
|
104
112
|
Do not rely on any specific agent's proprietary conventions unless the module is explicitly
|
|
@@ -107,9 +115,16 @@ First run `ec-init`; daily work goes through `ec-workflow`.
|
|
|
107
115
|
|
|
108
116
|
## Runtime contract
|
|
109
117
|
|
|
110
|
-
- Workflow state operations
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
- Workflow state operations use the script installed for the active host: Codex uses
|
|
119
|
+
`.codex/hooks/easy_coding_state.py`, while Qoder uses its installed `.qoder/hooks/easy_coding_state.py`
|
|
120
|
+
or `.qodercn/hooks/easy_coding_state.py` variant.
|
|
121
|
+
Never substitute one platform's script for the other, and pass only the canonical owner ID
|
|
122
|
+
(`codex` or `qoder`) to `--agent`; display attribution such as `Codex with Easy Coding` is not
|
|
123
|
+
a workflow identity. The installed script's embedded platform identity, canonical owner, and
|
|
124
|
+
injected session namespace must agree. Do not hand-edit session files, `current_task`, task
|
|
125
|
+
`status`, `stage_history`,
|
|
126
|
+
`pending_transition`, `verification_checkpoint`, workflow/TDD proposal or freeze fields,
|
|
127
|
+
`memory_progress`, or `last_agent`.
|
|
113
128
|
- The hook injects `[easy-coding:session-file:P]`; pass that path to the state script with
|
|
114
129
|
`--session-file <P>` when changing the current task or stage.
|
|
115
130
|
- Workflow session files live at `{{workflow_state_path}}`; the CLI only installs files and
|
|
@@ -43,8 +43,10 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
43
43
|
is session override > project `behavior.workflow_mode` > `adaptive`. Approval controls waiting;
|
|
44
44
|
workflow controls execution depth. ANALYSIS shows and freezes adaptive to fast/standard/strict.
|
|
45
45
|
Confirm approval waits only at ANALYSIS -> IMPLEMENT, then advances green later stages
|
|
46
|
-
automatically
|
|
47
|
-
|
|
46
|
+
automatically; Auto advances all legal green edges. A new code diff after the VERIFICATION
|
|
47
|
+
checkpoint is the only exceptional pause across all modes: show the exact diff, bind acceptance
|
|
48
|
+
to its digest, and continue without rereview when the user accepts.
|
|
49
|
+
Every new code task runs REVIEW; no mode changes scope, delivery form, or evidence gates.
|
|
48
50
|
- TDD is session override > project `behavior.tdd_enabled` > `false`; its changed-line threshold
|
|
49
51
|
is session override > project `behavior.tdd_coverage_threshold` > `90`. ANALYSIS -> IMPLEMENT
|
|
50
52
|
freezes both. TDD may be enabled only after `ec-tdd-init` records valid infrastructure readiness;
|
|
@@ -85,18 +87,24 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
85
87
|
- REVIEW and VERIFICATION are fingerprinted hard gates. Review evidence must match the final
|
|
86
88
|
implementation; verification evidence must match final implementation and config. The frozen
|
|
87
89
|
workflow mode selects targeted, impacted, or full commands without weakening the green gate.
|
|
90
|
+
Freeze a verification checkpoint after green checks. Unchanged checkpoints follow approval
|
|
91
|
+
mode normally; post-checkpoint code drift requires exact digest acceptance and
|
|
92
|
+
carry-forward/targeted/waived verification policy, but never an automatic second REVIEW.
|
|
88
93
|
- Canonical-backed tasks bind static validity to design revision + `design_sha256`, while
|
|
89
94
|
`document_sha256` and `execution_revision` may advance through shared writer commands. Project-
|
|
90
95
|
external explicit Spec paths are allowed and may be repaired only with identity-checked rebind.
|
|
91
96
|
Runtime progress must use the shared writer with CAS/idempotency and reconciliation; static
|
|
92
97
|
design changes require revision + READY + `sync-spec-design`. Never hand-edit `EDS:EXECUTION`.
|
|
98
|
+
Selected source tasks remain `implemented` through local VERIFICATION and become `verified`
|
|
99
|
+
only when the accepted VERIFICATION -> MEMORY boundary is actually applied.
|
|
93
100
|
- Canonical routing is two-pass: first use manifest-only discovery for the current worktree, then
|
|
94
101
|
inspect only the explicitly selected task IDs and repositories. A remote-confirmed worktree
|
|
95
102
|
overrides a stale `path_hint`; never mirror the source Spec or re-check unselected repositories.
|
|
96
103
|
ANALYSIS reads the selected consumption closure once and treats exact/scope-unchanged as a fast
|
|
97
104
|
projection, while shared execution is the dependency fact source.
|
|
98
105
|
- MEMORY combines short-memory creation and the conditional long-memory gate. Entry follows the
|
|
99
|
-
effective confirmation mode;
|
|
106
|
+
effective confirmation mode; its checkpoint records any accepted post-verification diff digest
|
|
107
|
+
and decision. Once memory processing completes, COMPLETE is automatic.
|
|
100
108
|
- NO CODE-TASK COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.
|
|
101
109
|
- All cross-platform modules (skills, hooks, references) must use universal agent protocols.
|
|
102
110
|
Do not rely on any specific agent's proprietary conventions unless the module is explicitly
|
|
@@ -105,9 +113,13 @@ First run `/ec-init`; daily work goes through `/ec-workflow`.
|
|
|
105
113
|
|
|
106
114
|
## Runtime contract
|
|
107
115
|
|
|
108
|
-
- Workflow state operations go through `{{platform_config_dir}}/hooks/easy_coding_state.py
|
|
109
|
-
|
|
110
|
-
`
|
|
116
|
+
- Workflow state operations go through `{{platform_config_dir}}/hooks/easy_coding_state.py` and
|
|
117
|
+
pass only the canonical owner ID `claude-code` to `--agent`; display attribution such as
|
|
118
|
+
`Claude with Easy Coding` is not a workflow identity. The installed script's embedded platform
|
|
119
|
+
identity, canonical owner, and injected session namespace must agree. Do not hand-edit session
|
|
120
|
+
files, `current_task`, task `status`, `stage_history`,
|
|
121
|
+
`pending_transition`, `verification_checkpoint`, workflow/TDD proposal or freeze fields,
|
|
122
|
+
`memory_progress`, or `last_agent`.
|
|
111
123
|
- The hook injects `[easy-coding:session-file:P]`; pass that path to the state script with
|
|
112
124
|
`--session-file <P>` when changing the current task or stage.
|
|
113
125
|
- Workflow session files live at `{{workflow_state_path}}`; the CLI only installs files and
|