wicked-garden 12.52.1 → 12.53.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.
@@ -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.52.1"}], "version": "12.52.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.0"}], "version": "12.53.0"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-garden",
3
- "version": "12.52.1",
3
+ "version": "12.53.0",
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.0] — 2026-10-11
6
+
7
+ ### Changed
8
+ - **Learned code facts are filed as knowledge, not memory (PR #1285).** repo-learn submits code facts as knowledge proposals, and the shim lifts its refusal of `kind_type: "knowledge"` and requires each proposal's `source`. Needs wicked-estate 0.29.2+ (estate K3, the knowledge-proposal type); an older estate refuses the proposal.
9
+
5
10
  ## [12.52.1] — 2026-10-11
6
11
 
7
12
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wicked-garden",
3
- "version": "12.52.1",
3
+ "version": "12.53.0",
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": [
@@ -1102,13 +1102,10 @@ def propose(
1102
1102
  run's `WICKED_RUN_PROJECT` supplies): an unscoped proposal is refused here
1103
1103
  with the shape-error code, so it never lands project-less in the queue.
1104
1104
  """
1105
- if kind_type == "knowledge":
1106
- # Gate (DES-memory-vs-knowledge K3): estate's approve promotes only memory + policy:*,
1107
- # so a knowledge proposal would strand in the queue. Lift when estate ships the type.
1105
+ if kind_type == "knowledge" and not (isinstance(payload, dict) and str(payload.get("source") or "").strip()):
1106
+ # DES-memory-vs-knowledge K3 (estate 0.29.2): knowledge is acquired, so it names its source.
1108
1107
  return {"ok": False, "code": -32602,
1109
- "reason": 'kind_type "knowledge" is not approvable yet (estate promotes only '
1110
- 'memory and policy:*): keep the object in your report under '
1111
- '"knowledge (pending)"; do not re-file it as a memory'}
1108
+ "reason": 'a knowledge proposal needs payload.source (where it was read, e.g. "<repo>:<path>")'}
1112
1109
  facets = _scope_facets_to_run_project(facets)
1113
1110
  project = (facets or {}).get("project")
1114
1111
  if not isinstance(project, str) or not project.strip():
@@ -138,11 +138,9 @@ when the proposal is approved, so the learning is lost):
138
138
  - **Knowledge** — how the code works, read from the code (*acquired*, so it is
139
139
  knowledge, not memory: DES-memory-vs-knowledge). `kind_type: "knowledge"`; payload
140
140
  `{"content": "<1–3 sentences>", "class": "concept", "source": "<repo>:<path>",
141
- "source_rev": "<commit sha>"}`. Most repo-learn findings are this kind. **Not
142
- submittable yet:** estate cannot approve a knowledge proposal until its knowledge
143
- proposal type ships, so the shim refuses `kind_type: "knowledge"`. List these objects
144
- in your report's fenced `json` block under `knowledge (pending)` and leave them out
145
- of the `wicked-capture-report` counts. Never propose a graph metric (PageRank rank,
141
+ "source_rev": "<commit sha>"}`. Most repo-learn findings are this kind. Submit it
142
+ like any proposal (estate 0.29.2+ approves it into the knowledge store); count it in
143
+ the `wicked-capture-report` like the rest. Never propose a graph metric (PageRank rank,
146
144
  churn count, blast-radius size): estate's tools re-derive those on demand.
147
145
  - **Memory** — only something *witnessed* while studying (a gotcha you hit, with
148
146
  why) or *told* by the operator. Split a mixed finding: "we chose fail-closed
@@ -73,12 +73,10 @@ estate/steering types — pick the one the rule governs, not a freeform tag.
73
73
  What you learn by reading code is **acquired**, so it is knowledge, not memory
74
74
  (DES-memory-vs-knowledge §3).
75
75
 
76
- **Not submittable yet.** Estate's `proposal.approve` promotes only `memory` and
77
- `policy:*`; a knowledge proposal would sit unapprovable in the queue, so the shim
78
- refuses `kind_type: "knowledge"` (`-32602`) until estate's knowledge proposal type
79
- ships. Until then, put each object below in your report's fenced `json` block under
80
- `knowledge (pending)`, and leave them out of the `wicked-capture-report` counts. Do
81
- not re-file a code fact as a `memory` to get it through. The shape is:
76
+ Submit it through the shim's `propose` like a memory. Estate 0.29.2+ approves a
77
+ knowledge proposal into the knowledge store, keeping its `source`, `observed_at` and
78
+ `source_rev`. The shim refuses one with no `source` (`-32602`). Never re-file a code fact as a
79
+ `memory`. The shape is:
82
80
 
83
81
  ```json
84
82
  {