add-candy
| plugin-authoring — Served by | plugin-authoring |
| plugin-authoring — Placement | compiled-in (in-process) |
| plugin-authoring — Version | 2026.196.0000 |
| plugin-authoring — Served by | plugin-authoring |
| plugin-authoring — Placement | compiled-in (in-process) |
| plugin-authoring — Version | 2026.196.0000 |
add-candy is a command word served by 2 plugin candies — plugin-authoring and plugin-authoring — at different points in the command tree. Both are real invocations; charly --help prints which is which.
About plugin-authoring, which serves it
Section titled “About plugin-authoring, which serves it”The charly box … AUTHORING verb handlers — a COMMAND-class charly plugin
(github.com/opencharly/sdk), NESTED under the core box command group (P14b).
charly box set/add-candy/rm-candy/write/cat mutate a project’s charly.yml directly via
sdk/kit (kit.SetByDotPath / kit.MappingChild / kit.SaveYAMLNodeFile — the comment-preserving
yaml.Node utilities) + the project-rooted file escape hatch (resolveProjectFile
path-traversal guard), with ZERO core reentry. charly box fetch/refresh pre-prime /
force-re-clone the remote-repo cache by re-running the hidden core __box-fetch /
__box-refresh reentry over the generic HostBuild(“cli”) reverse channel — the repo
resolver is host-coupled
(CHARLY_REPO_OVERRIDE + the refs-backend dispatch + the command:migrate auto-migration).
COMPILED-IN, it dispatches IN-PROC via Invoke(OpRun) (kong-parse each verb’s grammar), so
the handlers own charly’s real stdio. Placement-invisible (F8): the SAME provider compiles
into charly or serves out-of-process.
About plugin-authoring, which serves it
Section titled “About plugin-authoring, which serves it”The charly box … AUTHORING verb handlers — a COMMAND-class charly plugin
(github.com/opencharly/sdk), NESTED under the core box command group (P14b).
charly box set/add-candy/rm-candy/write/cat mutate a project’s charly.yml directly via
sdk/kit (kit.SetByDotPath / kit.MappingChild / kit.SaveYAMLNodeFile — the comment-preserving
yaml.Node utilities) + the project-rooted file escape hatch (resolveProjectFile
path-traversal guard), with ZERO core reentry. charly box fetch/refresh pre-prime /
force-re-clone the remote-repo cache by re-running the hidden core __box-fetch /
__box-refresh reentry over the generic HostBuild(“cli”) reverse channel — the repo
resolver is host-coupled
(CHARLY_REPO_OVERRIDE + the refs-backend dispatch + the command:migrate auto-migration).
COMPILED-IN, it dispatches IN-PROC via Invoke(OpRun) (kong-parse each verb’s grammar), so
the handlers own charly’s real stdio. Placement-invisible (F8): the SAME provider compiles
into charly or serves out-of-process.
charly --help prints the command tree, including where each add-candy is invoked and under which parent.