candy
Recipe card from the charly-candy-cli plugin (Commands — runtime CLI verbs).
charly candy — safe candy-manifest mutation
Section titled “charly candy — safe candy-manifest mutation”charly candy mutates a candy’s charly.yml safely, descending into the entity’s
candy: body. Served by candy/plugin-candy (command:candy).
Command tree
Section titled “Command tree”charly candy set <name> <path> <value>— set a dot-path value oncandy/<name>/charly.yml(e.g. a tunable or a nested field).charly candy add-<fmt> <name> <pkg…>— append packages to the distro-format section<fmt>(e.g.add-pac,add-deb,add-rpm). The verb set derives fromsectionDistroPath, so it cannot drift from the mapped formats.charly candy params <name> [--check]— regeneratecandy/<name>/params/cue_types_gen.gofromcandy/<name>/schema/*.cue. This is the pipeline’s ONLY documented entry point: concatenate the schema (theschemaconcatcontract), head itpackage params+@go(params), run the pinnedcue exp gengotypes(thecuetoolchainpin — provisioned checksum-verified into the charly cache, so nocueinstall and no checkout are needed), then double every json tag with a yaml tag (theschemaretagcontract).--checkwrites nothing: it exits non-zero when the committed file differs from that pipeline OUTPUT, which is the drift gate a plugin repo’s CI should run.--schema/--pkg/--outis the explicit form for a schema that is not a candy’s.
When to use it
Section titled “When to use it”To change a candy manifest programmatically instead of hand-editing YAML — the
mutation respects the compact node form (<name>: {candy: {...}}) and the
schema, so it cannot produce a malformed manifest.
Cross-References
Section titled “Cross-References”/charly-image:layer— candy authoring (plan steps, services, packages)./charly-image:image— box composition and charly.yml shapes.

