notify
Syntax
notify: <destination>
What it does
Declares where to send word when a run finishes โ the config-tier line that answers "tell someone when it's done". It names a destination such as slack, so an unattended loop can hand its result off to a human channel instead of leaving the outcome buried in a log. It pairs naturally with schedule: and runner:: a loop you kicked off yourself you'll watch in-session, but a nightly or headless run is exactly the case where you want a ping on completion rather than checking back manually.
Why it lives at the config tier: notification is a property of how the file is operated, not of any single goal, so you set it once for the whole file alongside the other operational lines (schedule:, runner:, target:, runs as:). It is a delivery target only โ it decides where the completion message goes, not whether the loop stopped or what "done" means. The verdict itself is still owned by done when and the human gates.
Status: notify: is deferred past v1 for execution โ it parses today and is accepted by the grammar, so you can author it now and it won't break a run, but the delivery is not wired up yet. Treat it as a forward-looking declaration of intent rather than a guaranteed page.
Example
schedule: nightly
notify: slackping on finish
Example โ on an unattended run
schedule: nightly
runner: claude-code
notify: slack
runs as: nightly-bot
loop "refresh the changelog":
goal: CHANGELOG.md covers everything merged since the last tag
done when "scripts/changelog-check.sh" passesheadless run, result pinged to a channel
Common mistakes
- Expecting a message today.
notify:is deferred past v1 โ it parses but does not yet deliver. Don't build a workflow that depends on the ping arriving; it's an intent declaration for now. - Putting it inside a loop body.
notify:is a config-tier line โ it belongs at the top of the file withschedule:andrunner:, before anylooporpipeline, not indented under a goal. - Treating it as a stop condition. Notification is delivery, not verification. Whether the loop is done is decided by
done whenand any human gate;notify:only says where to send the news.