core.noop
An empty step: does nothing, always succeeds without changing state.
core.noop is a verb module with a single state, run: it runs nothing, writes nothing, and always returns changed=false. It exists as a syntactic anchor — a barrier across the dependency graph, or a placeholder that carries an output: projection of other tasks' register.* values. There is no params schema: any keys are accepted and ignored.
Requirements
- Rootnot required
- Side
soul-side - Collection
soulstack.exec - Category
exec
States
core.noop.run — No-op: does nothing, succeeds without changing state.
Never — by definition a noop does not mutate state.
Always — the step is a no-op by construction.
Parameters
No parameters.
Example — Barrier via register dependencies
- name: Collect diagnose result module: core.noop.run when: input.action == 'diagnose' params: {} output: ping: "${ register.ping.stdout }" replication_state: "${ register.repl.stdout }" used_memory: "${ register.mem.stdout }"Example — Placeholder anchor that waits for a set of tasks
- name: barrier module: core.noop.run require: - Install package - Render configOutput
| Field | Type | Description |
|---|---|---|
changed | false |
Notes
- changed=false is structural and not configurable — a no-op never reports drift; idempotency is inherent to an empty operation.
- Barrier anchor: a task that reads register.* from several earlier tasks gives a point where the framework waits for them to finish. The barrier comes from the dependency graph (require: / register references), not from the module itself.
- Placeholder: an empty step in a destiny/scenario skeleton, or a carrier for an output: projection that reads earlier tasks' register.*.
- Errand-safe (ADR-033): implements ErrandReadSafe, safe for ad-hoc invocation over the Errand pull path; required_capabilities is empty.