plugin-substrate
| Version | 2026.196.0600 |
| Repo | superproject |
| Plugin | yes — see the plugin reference |
The 5 SUBSTRATE structural deploy KINDS — pod / vm / k8s / local / android — relocated into
ONE candy (C2-substrate; formerly the shared built-in standaloneKind). Each substrate kind is
BOTH a standalone TEMPLATE (a bare vm:/pod: block → the typed template map uf.Pod/uf.VM/…,
the PRIMARY VM authoring form) AND a DEPLOY (from:/image: cross-ref or resource members →
uf.Bundle). Its value is RICH + core-referencing (#Vm/#Deploy/#LibvirtDomain/…), so — unlike
group’s small self-contained #GroupInput — 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 core
loader (buildBundleNode / decodeNodeValue — the single decode source of truth), validates its
value against the KEPT #charly status fan-out; the deploy-cone-coupled enrichment + the vm/k8s/android collectors
stay host-side until K5.
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 substrate structural kind plugin ships a buildable Go module the host compiles in (default) or serves out-of-process; its pod/vm/k8s/local/android structural decode (both the deploy fold to uf.Bundle and the standalone-template fold to uf.Pod/uf.VM/…) is exercised by every check bed / box composing a substrate node (check-substrate-* / box-fedora / box-cachyos / box-arch / box-debian). P14a’s OpStatusCollect (pod live + local collectors + the probes) is exercised by the charly status parity beds (check-sidecar-pod status –json) + the relocated unit tests (collectPodLive golden, local ledger, probes). |