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.
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 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 |