workloadlisted
Install: claude install-skill bks-lab/open-bridge
# Workload
One declared run, on one machine, with an owner. The declaration in
`workflow/workloads/<id>.yaml` is the source of truth; the unit file on the
machine is an artifact and may be rebuilt from the declaration at any time.
The engine is `skills/workload/engine/` behind the shim `skills/workload/workload.sh`.
The data is the declaration plus `_schema.yaml` and `_template.yaml` next to it.
Nothing instance specific lives in the code: hosts come from `infra/remotes/`,
paths and prefixes from the `workloads:` block of `bridge-config.yaml`.
## Guard
`workloads.enabled` must not be `false` in `bridge-config.yaml`. A missing block
means defaults, never a crash. A `false` refuses every subcommand with exit `3`
and names the key and the file it read.
`reconcile --notify` speaks through the program declared in
`workloads.notify_via`, never through a name this skill knows:
```yaml
workloads:
notify_via:
command: ["~/bin/my-notifier", "--subject", "{what}", "--host", "{where}",
"--action", "{todo}"]
detail: ["--body", "{detail}"] # appended only when there is detail
```
Substitution is per argv element, so a value with a space stays one argument.
With no `notify_via`, `--notify` sends nothing and says so, naming the key: an
alarm path this skill invented would be a dependency the repository does not
ship.
## Commands
```
workload list [--host H] [--kind K] [--runtime R] [--owner O] [--scope S] [--retired] [--json]
workload show