plugin-candy-kind
| Version | 2026.182.1600 |
| Repo | superproject |
| Plugin | yes — see the plugin reference |
The candy box⊻layer factory KIND — the LAST structural kind — relocated into a candy
(C2-candy; formerly the built-in candyKind in charly/plugin_candy.go). A candy: node is
EITHER a full IMAGE (base:/from: → uf.Box, the former box:) OR a LAYER fragment (→
uf.Candy). Its value is RICH + core-referencing (#Candy/#Box), so — like substrate — it
cannot be re-decoded from op.Params nor validated by a self-contained plugin schema. So
the HOST pre-decodes the CANONICAL node via the BOOTSTRAP-CRITICAL core candyIsImage +
buildCandy (the single decode source that STAYS core — the discovered-candy pre-check
calls it directly), validates its value against the KEPT #CandyValue core def, and threads
the result in op.Env; this plugin’s OpLoad ECHOES it and the host folds the echo into
uf.Box / uf.Candy, byte-equivalent to the former in-proc candyKind decode. COMPILED-IN (in
the embedded compiled_plugins:) — which DISSOLVES the historical bootstrap-cycle blocker: a
compiled-in plugin registers at init, before any load, so it has NO fetch/build cycle. It
is the candy-KIND plugin; the sibling candy/plugin-candy is the DISTINCT command:candy
CLI authoring plugin. Also serves out-of-process via cmd/serve.
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
check |
the candy box⊻layer factory kind plugin ships a buildable Go module the host compiles in (default) or serves out-of-process; its box⊻layer decode (candyIsImage + buildCandy → uf.Box / uf.Candy) is exercised by EVERY box and layer decode across the whole ecosystem (check-candy-kind / box-fedora / box-arch / box-cachyos / box-debian / box-ubuntu — every image and composed layer) |