Install
openclaw skills install subagent-sheepdogLaunch verification and watchdog discipline for delegated, backgrounded, browser-driven, and long-running tasks. Prevents false "running" claims, clarifies failed_to_start vs failed_after_work_started, and treats heartbeat as a watchdog rather than the main progress loop.
openclaw skills install subagent-sheepdogUse this skill whenever work is:
Do not use this skill for tiny direct tasks where startup verification would add noise.
This skill prevents a common failure mode in agent systems:
an agent launches something, gets back a session/process/tab handle, and falsely reports that work is running even though startup already failed or never truly began.
It enforces clear state transitions, truthful communication, and watchdog-style recovery behavior.
Do not claim work is running until startup is verified.
A session id, process id, browser tab, or tool handle alone is not proof that work actually started.
Treat the period after launch and before verification as:
launching_unverifiedOnly after verification may the task become:
runningIf startup fails before real execution begins, classify it as:
failed_to_startIf work began and failed later, classify it as:
failed_after_work_startedUse these states consistently:
launching_unverifiedrunningdelayedfailed_to_startfailed_after_work_startedcompletedlaunching_unverifiedLaunch was attempted, but startup health is not yet confirmed.
runningStartup was verified and meaningful execution is underway.
delayedWork is still running, but later than expected.
failed_to_startThe launch path failed before real work began.
failed_after_work_startedReal work began, then later failed.
completedTask finished successfully with real output or result.
Whenever this skill applies, follow this sequence:
launching_unverifiedrunningfailed_to_startDo not claim success unless you verify at least:
Examples of failed_to_start here:
Do not claim success unless you verify at least:
Examples of failed_to_start here:
command not foundno such file or directoryDo not claim browser work is underway unless you verify at least the relevant part of the path:
Examples of failed_to_start here:
If the page loaded and meaningful interaction began before failure, use failed_after_work_started instead.
Heartbeat is a watchdog, not the main progress loop.
Use heartbeat to:
Do not use heartbeat to:
A ghost delegation is when work was described as launched, but:
Heartbeat should surface that clearly instead of returning a normal all-clear.
Prefer concise truth over reassuring fiction.
Retry only when the fix is obvious and mechanical.
Examples:
If retrying:
launching_unverifiedDo not loop forever.
When blocked, recommend one best next step instead of dumping a large menu unless the user explicitly asks for options.
Good:
Less good:
“Background worker launched and running now.”
(But only a session id exists; no verification was done.)
“Launch attempted; verifying startup.”
Then either:
or:
“Opened the browser and I’m working on the site now.”
(But the browser only opened a login wall.)
“Browser launched, but the target workflow did not start. The page redirected to login before the task could begin. No work started.”
A task should only be described as completed when there is evidence of a real result, such as:
This skill teaches a simple discipline:
The result is better trust, clearer status reporting, and fewer ghost tasks.