hang-check
Skill5 starsChanged 22 days agoMITView on GitHub
Watch running background agents for evidence of a genuine stall without killing healthy work. Use for hang checks, stuck or silent subagents, stalled agents, watchdog monitoring, or periodic status detection.
In this repository47 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agents-md-fixerSkill
- arch-docsSkill
- book-to-markdownSkill
- docset-updaterSkill
- humanizerSkill
- news-release-docsSkill
- pdf-guideSkill
- readme-docsSkill
- screenshot-docsSkill
- see-also-docsSkill
- setup-install-usage-docsSkill
- bptools-writer-expertSkill
- color-accessibility-expertSkill
- css-creative-expertSkill
- game-design-expertSkill
- geometry-expertSkill
- glass-expertSkill
- hic-human-interact-expertSkill
- openscad-3d-printing-expertSkill
- podman-expertSkill
- postgresql-expertSkill
- pyside6-engineerSkill
- rust-code-expertSkill
- solid-js-expertSkill
- svg-creator-expertSkill
- typescript-engineerSkill
- ui-ux-engineerSkill
- vision-expertSkill
- wasm-rust-expertSkill
- webwork-writer-expertSkill
- delegate-manager-to-subagentsSkill
- gas-town-workflowSkill
- html-game-parallel-builderSkill
- parallel-planSkill
- stay-busySkill
- repo-rules-readerSkill
- blueprint-plan-drafterSkill
- ideonomy-plainSkill
- ideonomy-richSkill
- make-goalSkill
- modest-plan-drafterSkill
- audit-code-reviewerSkill
- old-python-code-reviewSkill
- prune-testsSkill
- unit-test-starterSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 6 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Use CronCreate for the recurring check and CronDelete to remove it.
- Distinctive: line 32
Every 10-15 minutes fits most work.
- Distinctive: line 61
Before touching a suspected-hung agent:
- Distinctive: line 63
Read its most recent output in full.
- Distinctive: line 65
Check whether it is legitimately blocked on a long operation.
- Distinctive: line 66
Check file mtimes when files are expected: a file touched seconds ago means work is happening even if stdout is quiet.
- Very specific: line 69
Only after the evidence confirms a genuine hang, TaskStop the agent.
- Very specific: line 77
After each check, if no subagents remain active, remove the timer with CronDelete using the recorded job ID and confirm with CronList so no …
- Distinctive: line 87
Leave advancing agents alone.
- Very specific: line 90
When no subagents remain active, CronDelete the timer.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hang check
Purpose
A dispatched subagent can hang: it stops making progress but never returns. This skill installs a recurring check that catches a real hang while leaving a slow-but-working agent alone. Judge on evidence, not the clock: elapsed time alone is never proof of a hang, because a long compile, model load, or remote wait looks identical to a stuck agent if you only watch the timer.
When to use
- One or more background subagents are running and may run long.
- The user asks for a watchdog, hang check, or "tell me if an agent gets stuck."
Skip it when no background subagents are active, when driving a single
foreground task turn by turn, or when the user wants live per-event log
streaming (use the Monitor tool for that).
Timer
Use CronCreate for the recurring check and CronDelete to remove it.
- Arm exactly one recurring job when the first watched subagent starts. One watchdog covers all active agents; do not arm a second.
- Every 10-15 minutes fits most work; shorten only if agents finish fast.
- The job prompt re-enters this skill: "Run hang-check: review each active subagent's status, recent output, and file activity; investigate any agent that looks stuck; remove the timer if no subagents remain active."
- Record the returned job ID for cleanup.
CronCreatejobs auto-expire after 7 days; tell the user if the watched work could run longer.
Evidence and decision
Each check, read up to three signals per active agent:
| Signal | How to read it |
| Agent status | TaskList / agent status: running, completed, or errored |
| Recent output | Latest lines (TaskOutput or output file) -- is it advancing? |
| File activity | New or changed files / mtimes in the work area, when relevant |
File activity is evidence only when the agent is expected to touch files. An agent that is researching, reading, or waiting on a remote call may make no file changes while healthy; do not treat missing file changes as a hang.
Advancing on any relevant signal means healthy: leave it alone. Quiet on every relevant signal for an unusually long stretch relative to the task's pace means suspect a hang: investigate, do not stop it yet. "Unusually long" is relative to the task, not a fixed number.
Investigate before stopping
Before touching a suspected-hung agent:
- Read its most recent output in full. A stack trace, a prompt waiting on input, or a "downloading..." line changes the diagnosis.
- Check whether it is legitimately blocked on a long operation.
- Check file mtimes when files are expected: a file touched seconds ago means work is happening even if stdout is quiet.
Only after the evidence confirms a genuine hang, TaskStop the agent. Do
not automatically re-dispatch it: decide whether to resume, replace, or
cancel the work. Re-dispatch is wrong when the task is obsolete, already
done by another agent, unsafe to repeat, or depends on non-idempotent
actions. Report what the evidence showed, not just the action taken.
Cleanup
After each check, if no subagents remain active, remove the timer with
CronDelete using the recorded job ID and confirm with CronList so no
orphaned watchdog keeps firing. Re-arm only when new subagents are
dispatched.
Workflow
- Confirm one or more background subagents are active. If none, stop.
- Arm one recurring
CronCreatewatchdog; record the job ID. - On each fire, read the relevant evidence signals for every active agent.
- Leave advancing agents alone; flag agents quiet on every relevant signal.
- Investigate each flagged agent before acting.
- For a confirmed hang,
TaskStop, then decide resume, replace, or cancel. - When no subagents remain active,
CronDeletethe timer; confirm withCronList.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

