wicked-garden 12.53.1 → 12.53.2

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.
@@ -1 +1 @@
1
- {"name": "wicked-garden", "owner": {"name": "Mike Parcewski"}, "plugins": [{"name": "wicked-garden", "source": "./", "description": "Your coding agent already plans and swarms \u2014 Wicked Garden is the curated toolkit for what it can't: proof-not-claims gates, code links grep can't see, deterministic refactor, cross-session memory, multi-model second opinions (fallback seats labelled). Don't fight the harness; fill its gaps. The gate needs wicked-vault (a self-contained infra peer, installed directly) and re-derives through garden's built-in engine; estate/bus are opt-in layers (wicked-testing and wicked-brain are retired \u2014 QE ships in-catalog as the qe domain, memory lives in wicked-estate).", "version": "12.53.1"}], "version": "12.53.1"}
1
+ {"name": "wicked-garden", "owner": {"name": "Mike Parcewski"}, "plugins": [{"name": "wicked-garden", "source": "./", "description": "Your coding agent already plans and swarms \u2014 Wicked Garden is the curated toolkit for what it can't: proof-not-claims gates, code links grep can't see, deterministic refactor, cross-session memory, multi-model second opinions (fallback seats labelled). Don't fight the harness; fill its gaps. The gate needs wicked-vault (a self-contained infra peer, installed directly) and re-derives through garden's built-in engine; estate/bus are opt-in layers (wicked-testing and wicked-brain are retired \u2014 QE ships in-catalog as the qe domain, memory lives in wicked-estate).", "version": "12.53.2"}], "version": "12.53.2"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-garden",
3
- "version": "12.53.1",
3
+ "version": "12.53.2",
4
4
  "description": "Your coding agent's harness already plans and swarms; Wicked Garden is the curated toolkit for what it can't do alone. Proof, not claims \u2014 gates re-derive 'done' through the internal loom engine (fail-closed, independently attested via wicked-vault), so a self-asserted pass can't lie its way green. Relationships grep can't see \u2014 the wicked-estate code graph + injected bus/dispatch/capability/archetype edges power blast-radius & lineage. Plus deterministic multi-file refactor (wicked-patch), cross-session memory + knowledge (the mem domain over wicked-estate), multi-model second opinions (fallback seats labelled) (jam:council), portable expertise as on-demand skill-refs, and evidence-gated testing (the in-catalog qe domain). It reads the shape of your work to apply the right rigor \u2014 steering, not a pipeline \u2014 then gets out of the way. The compiler stamps a self-contained evidence gate into any repo that runs with no wicked-garden installed. Don't fight the harness; fill its gaps. The evidence gate requires wicked-vault, a self-contained infra peer wicked-garden installs directly; wicked-bus is an opt-in layer \u2014 install what you'll use, the toolkit works without the rest.",
5
5
  "wicked_vault_version": "^0.5.0",
6
6
  "wicked_ledger_version": "^0.6.0",
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [12.53.2] — 2026-10-11
6
+
7
+ ### Fixed
8
+ - **qe accept runs in one turn inside a governed unit (PR #1291, #1290).** With `WICKED_RUN_ID` set, `wicked-garden-qe` accept runs writer → executor → reviewer inline in one turn, with no sub-agent dispatch, and ends only on the recorded verdict. A claude QE seat no longer ends its turn on the writer's test plan.
9
+
5
10
  ## [12.53.1] — 2026-10-11
6
11
 
7
12
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-garden",
3
- "version": "12.53.1",
3
+ "version": "12.53.2",
4
4
  "type": "module",
5
5
  "description": "Curated toolkit for what AI coding agents can't do alone: evidence-gated work, codegraph relationships, deterministic multi-file refactor, multi-model second opinions, and cross-session memory. Installs as a Claude Code plugin.",
6
6
  "keywords": [
@@ -87,6 +87,24 @@ invocation.)
87
87
  - `--phase review` — review existing evidence
88
88
  - `--json` — emit JSON envelope
89
89
 
90
+ ## Governed unit (`WICKED_RUN_ID` set): one turn, inline
91
+
92
+ A governed wicked-crew unit (`WICKED_RUN_ID` is set) is ONE headless turn: whatever you print
93
+ last is the unit's reply, and the engine reads its `VERDICT:` line. So, on every seat:
94
+
95
+ - Run writer → executor → reviewer **inline, in this one turn**. Carry out each hand-off below
96
+ yourself: open the worker skill (Skill tool, or its SKILL.md from your catalog), do its steps,
97
+ and come back here. Do not dispatch an `Agent` / `Task` sub-agent or a fork. A headless unit has
98
+ none, and a forked result returns to nobody.
99
+ - A worker's output (test plan, evidence report) is an **intermediate artifact**: save it under
100
+ `{EVIDENCE_DIR}` (`test-plan.md`, `evidence.json`) and continue to the next phase. Never end
101
+ your reply on it.
102
+ - Never end the turn before step 6 has written the verdict row and your reply's last line is
103
+ `VERDICT: PASS` or `VERDICT: FAIL`. If a step fails, still finish: record FAIL with
104
+ `reason: inconclusive — <why>` and print that verdict line.
105
+ - Reviewer isolation is evidence-only dispatch here: judge from the scenario, plan and evidence
106
+ files, never from what you saw while executing.
107
+
90
108
  ## Instructions
91
109
 
92
110
  ### Preflight: Validate Input
@@ -170,9 +188,9 @@ repo under audit, etc.) could otherwise inject instruction-looking prose
170
188
  writer's instruction turn. The writer has `allowed-tools: Read` so it can
171
189
  open the scenario itself.
172
190
 
173
- Hand off to the `wicked-garden-qe-acceptance-test-writer` worker skill (it runs in an isolated context):
191
+ Hand off to the `wicked-garden-qe-acceptance-test-writer` worker skill (an isolated context where the host forks one; inline in a governed unit):
174
192
 
175
- **Hand-off** — open the `wicked-garden-qe-acceptance-test-writer` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
193
+ **Hand-off** — open the `wicked-garden-qe-acceptance-test-writer` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog; either way carry it out inline in this turn (no sub-agent), then continue here.
176
194
 
177
195
  ```markdown
178
196
  Generate an evidence-gated test plan for the acceptance scenario
@@ -195,20 +213,23 @@ at the path below.
195
213
  6. Map every success criterion to specific assertions.
196
214
  7. Flag any specification mismatches you discover.
197
215
 
198
- Return the complete test plan in the standard format.
216
+ Produce the complete test plan in the standard format. It is an intermediate
217
+ artifact of `qe accept`: hand it back and continue (garden#1290).
199
218
 
200
219
  ```
201
220
 
202
- If `--phase write`, stop here.
221
+ Save the plan to `{EVIDENCE_DIR}/test-plan.md` (the reviewer reads it from there).
222
+
223
+ If `--phase write`, stop here. Otherwise continue to step 3 in this same turn.
203
224
 
204
225
  ### 3. Phase: Execute (Evidence Collection)
205
226
 
206
227
  The run record was already created in step 0 so the evidence dir could derive
207
228
  from its UUID. Here we dispatch the executor against that dir.
208
229
 
209
- Hand off to the `wicked-garden-qe-acceptance-test-executor` worker skill (it runs in an isolated context):
230
+ Hand off to the `wicked-garden-qe-acceptance-test-executor` worker skill (an isolated context where the host forks one; inline in a governed unit):
210
231
 
211
- **Hand-off** — open the `wicked-garden-qe-acceptance-test-executor` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
232
+ **Hand-off** — open the `wicked-garden-qe-acceptance-test-executor` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog; either way carry it out inline in this turn (no sub-agent), then continue here.
212
233
 
213
234
  ```markdown
214
235
  Execute this test plan and collect evidence artifacts.
@@ -227,13 +248,14 @@ Execute this test plan and collect evidence artifacts.
227
248
  5. Continue to next step even if current step fails
228
249
  6. Record timestamps for every step
229
250
 
230
- Return the complete evidence report.
251
+ Produce the complete evidence report. It is an intermediate artifact of
252
+ `qe accept`: hand it back and continue (garden#1290).
231
253
 
232
254
  ```
233
255
 
234
256
  Update run status in DomainStore after execution.
235
257
 
236
- If `--phase execute`, stop here.
258
+ If `--phase execute`, stop here. Otherwise continue to step 4 in this same turn.
237
259
 
238
260
  ### 4. Phase: Pre-Review Cold Context (Optional, pre-dispatch validated)
239
261
 
@@ -279,7 +301,7 @@ if (result.rejected) {
279
301
 
280
302
  Example safe query:
281
303
 
282
- **Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `<scenario-category> test rules` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
304
+ **Hand-off** — open the `wicked-garden-mem` skill and run its `recall` action with `<scenario-category> test rules` as the query; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog; either way carry it out inline in this turn (no sub-agent), then continue here.
283
305
 
284
306
  If the knowledge layer is absent, skip this phase entirely — no `context.md` is
285
307
  written and the reviewer still has everything it needs (scenario + plan +
@@ -291,7 +313,7 @@ evidence).
291
313
  It does NOT receive the executor's conversation, reasoning, or stdout/stderr directly.
292
314
  Pass paths, not content, where possible.
293
315
 
294
- **Hand-off** — open the `wicked-garden-qe-acceptance-test-reviewer` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog and carry it out inline, then continue here.
316
+ **Hand-off** — open the `wicked-garden-qe-acceptance-test-reviewer` skill with the brief below as the argument; on Claude Code this is the Skill tool, on any other seat open the named skill from your catalog; either way carry it out inline in this turn (no sub-agent), then continue here.
295
317
 
296
318
  ```markdown
297
319
  Review the evidence against the test plan assertions.
@@ -314,9 +336,11 @@ flag as CONTEXT_CONTAMINATION and return `VERDICT: FAIL` with
314
336
  2. Read the test plan file at the path above
315
337
  3. Read evidence files from the evidence directory (including context.md if present)
316
338
  4. Evaluate each assertion against evidence
317
- 5. End with one plain-text line `VERDICT: PASS` or `VERDICT: FAIL` as the LAST
318
- line of your reply (never quote another VERDICT line); missing evidence or
319
- CONTEXT_CONTAMINATION is FAIL with `reason: inconclusive — <why>`
339
+ 5. End the review with one plain-text line `VERDICT: PASS` or `VERDICT: FAIL`
340
+ (never quote another VERDICT line); missing evidence or
341
+ CONTEXT_CONTAMINATION is FAIL with `reason: inconclusive — <why>`. Hand the
342
+ review back: `qe accept` still writes the verdict (step 6) and prints that
343
+ line last (garden#1290)
320
344
  6. For any EQUIVALENT_TO_BASELINE assertion, also return the equivalence facet
321
345
  { baseline_ref, baseline_sha, method, diff_count, tolerance, matched } so the
322
346
  orchestrator can persist it on the verdict (see `verdict.equivalence`).
@@ -432,6 +456,9 @@ emitBusEvent('wicked.test.evidence.captured', {
432
456
 
433
457
  ### 7. Output
434
458
 
459
+ The reply's LAST line is the reviewer's `VERDICT: PASS` or `VERDICT: FAIL`, printed
460
+ only after step 6 wrote the verdict row. This is what ends the turn.
461
+
435
462
  **Without `--json`** — Present the full verdict:
436
463
 
437
464
  ```markdown
@@ -133,6 +133,11 @@ python3 -c "import json,sys; sys.stdout.write(json.dumps({...}))" 2>/dev/null \
133
133
 
134
134
  ### 6. Compile Evidence Report
135
135
 
136
+ **Opened from `qe accept`** (garden#1290): your evidence report is an intermediate artifact of that
137
+ pipeline, not the end of the turn. Hand it back and the pipeline continues to the reviewer in the
138
+ same turn. Never end the turn on it, above all in a governed unit (`WICKED_RUN_ID` set), where your
139
+ last output is the unit's reply.
140
+
136
141
  Return a text evidence report with all captured data:
137
142
 
138
143
  ```markdown
@@ -180,6 +180,9 @@ Review any specification notes from the test plan writer. Factor these into your
180
180
  ```markdown
181
181
  ## Overall Verdict
182
182
 
183
+ **Opened from `qe accept`** (garden#1290): hand this review back and continue. `qe accept` writes the
184
+ verdict row (its step 6) and then prints the `VERDICT:` line last; that, not this review, ends the turn.
185
+
183
186
  ### Status: {PASS | FAIL | PARTIAL | INCONCLUSIVE}
184
187
 
185
188
  ### Summary
@@ -26,6 +26,11 @@ Your test plans are designed so that:
26
26
 
27
27
  You do NOT execute tests. You do NOT grade results. You produce test plans.
28
28
 
29
+ **Opened from `qe accept`** (garden#1290): your test plan is an intermediate artifact of that
30
+ pipeline, not the end of the turn. Hand it back and the pipeline continues to the executor in the
31
+ same turn. Never end the turn on it, above all in a governed unit (`WICKED_RUN_ID` set), where your
32
+ last output is the unit's reply.
33
+
29
34
  ## Why You Can Query Brain
30
35
 
31
36
  You have `Skill` access so you can query the knowledge layer (wicked-estate,