ci-watcherlisted
Install: claude install-skill YoniChechik/claude-code-config
CI watcher: always-on background process that monitors CI and notifies on both failure and pass via webhook channel.
Launch once per feature — the watcher never exits, so no re-launch is needed.
# **CRITICAL RULE: DO NOT KILL THE CI WATCHER AUTOMATICALLY**
**THE CI WATCHER MUST NEVER BE KILLED BY CLAUDE ON ITS OWN.** This is an absolute rule with no exceptions:
- **DO NOT** kill the watcher when CI passes.
- **DO NOT** kill the watcher when CI fails.
- **DO NOT** kill the watcher when a PR is merged.
- **DO NOT** kill the watcher on merge to `main`.
- **DO NOT** kill the watcher when the feature looks "done".
- **DO NOT** kill the watcher on any other "natural completion" event.
- **DO NOT** call `/ci-watcher stop`, `touch /tmp/ci_watch_kill_*`, `kill <pid>`, `pkill ci_watch`, or any equivalent on your own initiative.
The watcher is intentionally always-on and stays alive across CI runs, PR merges, branch switches, and feature transitions.
**THE ONLY WAY TO STOP THE WATCHER IS AN EXPLICIT USER REQUEST**, such as the user typing `/ci-watcher stop` or giving a clear natural-language instruction like "stop the ci watcher" / "kill the ci watcher". If the user has not explicitly asked, leave it running.
# step 0: handle `stop` subcommand
If the first argument is `stop`, drop a per-session kill flag and exit — do NOT launch the watcher:
```bash
if [[ -z "${CLAUDE_CODE_SESSION_ID:-}" ]]; then
echo "Error: CLAUDE_CODE_SESSION_ID is unset; cannot stop ci watcher." >&2
e