Skip to content

plugin-task

Version 2026.267.2313
Repo box/github.com/opencharly/plugin-task:v2026.268.1402
Plugin yes — see the plugin reference

The generic declarative TASK runner for charly — the replacement for a Taskfile. Serves three task capabilities plus four generic maintenance verbs. Task capabilities: kind:task (a named, host-native, REUSABLE plan authored as a task: node in charly.yml, using the SAME #Step/#Op grammar a candy’s plan uses), command:task (charly task [list] [<name>] [--dry-run] [--json] [--param k=v] [--all]), and verb:task (compose a declared task into a candy/box/task plan). The engine reuses kit.RunPlan + a checkkit.VerbResolver over kit.ShellExecutor{} — the SAME engine candy/plugin-check drives — so there is no second execution engine. Any task a repository needs (build, test, lint, release, verify, notify) is a task entity; the task body is the base-schema #Task, validated host-side against #TaskValue (a task’s plan: [...#Step] references the base #Step grammar, which a self-contained plugin schema cannot carry).

Four GENERIC, domain-neutral MAINTENANCE verbs replace repository shell scripts, each parameterized by the repo’s own data (paths/pairs/pins) so the plugin stays reusable by any repository: verb:git-submodules (status/bump/ verify .gitmodules pins, incl. the policy-B comparison of a repo’s pins against a pinned checkout’s gitlinks), verb:file-parity (check/sync that paired files are byte-identical), verb:splice-region (splice a marked region from a fragment into a target), and verb:module-pins (adopt a source go.mod’s require pins across every module a glob matches, then tidy).

COMPILED-IN by default (the command needs the host’s loaded project over the reverse channel; the maintenance verbs are host-native and act on the checkout); the kind/verb capabilities also serve out-of-process.

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 plugin entrypoint, its self-contained CUE schema, and the generated params are all present in the candy directory — a deterministic probe that fails if any is missing
check the provider source declares all seven capabilities (the three task classes individually + the four maintenance verbs) — a deterministic probe that fails if a capability is dropped