skills/golem-powers/_archive/freeze-detect/SKILL.md
Use when supervising cmux or similar agent surfaces that look unchanged, quiet, or token-frozen. Distinguishes stale parsed telemetry from genuinely idle workers by rotating one full read onto the worst offender, requiring prompt proof before calling a surface idle, and parking monitor loops around known long-running operations. Triggers on: parsed_only, frozen screen, idle codex, no token movement, stuck worker, long-running build, long-running test.
npx skillsauth add etanhey/golems freeze-detectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Repeated partial telemetry is a suspicion, not a verdict. Escalate one surface to a full read, then reason from what you actually saw.
parsed_only output keeps repeatingparsed_only=True is compressed telemetry. It can repeat the same wrapper while the underlying surface is still active. A loop that treats repeated parsed snippets as truth will:
/monitor-loop counter discipline by resetting or parking for the wrong reasonThis skill forces a narrow verification path: escalate one suspect surface per tick, read the full screen, and prove idleness before you say it.
When monitoring N surfaces, keep lightweight telemetry on all of them, but escalate only one surface to a full read per tick.
Required fields:
parsed_only_signatureconsecutive_matching_parsed_tickslast_full_read_timelast_full_read_summarylast_known_long_running_opidle_candidate_sinceTick shape:
1. Gather parsed-only snapshots for all monitored surfaces.
2. Identify which surfaces have matching parsed signatures across repeated ticks.
3. Select the single worst offender:
- highest `consecutive_matching_parsed_ticks`
- oldest `last_full_read_time`
- highest operational risk if misclassified
4. Run exactly one full read on that surface this tick.
5. Classify it as:
- active
- idle-candidate
- long-running
- unknown-needs-recheck
6. Carry the result back into `/monitor-loop` without declaring success from telemetry alone.
If parsed_only output matches across repeated ticks, do not call the surface idle.
Action:
This is the anti-spam rule. Five suspicious surfaces do not justify five full reads in one cycle.
If the full read shows any of these:
Then the surface is active, not idle.
Action:
idle_candidate_since/monitor-loop focused on the queue, not on poking the workerIf the full read shows the worker is in a known multi-minute operation such as:
Then classify it as long-running.
Action:
15m re-check interval before the next full read unless another stronger signal arrivesThe point is to reduce monitor churn while preserving the worker's runway.
A quiet full read is still not enough to declare idleness. Only declare idle when both conditions hold:
›>$60sIf either condition is missing, the surface is only an idle-candidate.
Action:
When several surfaces look frozen, escalate only the single worst offender to a full read that tick.
Do not:
No prompt at the bottom of the screen means no idle verdict.
Acceptable proof:
› at the bottom after an agent turn finishes> at the shell prompt$ at the shell promptUnacceptable proof:
Token counts can stall while tools keep working. Tool calls, subprocesses, and long-running commands often do not produce billable token movement.
Therefore:
Do not interrupt or re-dispatch a worker just because the screen is stable during a build or test.
Instead:
15mIf a full read cannot prove idle or active state, say unknown-needs-recheck.
/never-fabricate applies here: repeated telemetry, wrapper text, and token counters are not evidence strong enough to claim a worker is idle.
When multiple surfaces match parsed-only telemetry, rank them by:
consecutive_matching_parsed_tickslast_full_read_timeExamples of high-risk surfaces:
| Skill | How it composes |
|---|---|
| /monitor-loop | Supplies the tick state machine and ensures freeze checks still end in dispatch, verify-and-decrement, or park |
| /never-fabricate | Prevents treating parsed-only wrappers, token counts, or silence as proof of idleness |
| Anti-pattern | Why it fails | Fix | |---|---|---| | 15 parsed reads for 5 surfaces across 3 ticks | Repeats low-signal telemetry and still learns nothing | Rotate one full read per tick onto the worst offender | | "Token count hasn't moved, so the codex is idle" | Tool work may continue without token movement | Use token freeze as a hint, then read the full surface | | Prompt appears once in the middle of the screen | Mid-screen prompt fragments are not bottom-of-screen idle proof | Require prompt indicator at the bottom plus 60s identical full reads | | Build output unchanged for 2 minutes, so worker is frozen | Stable build/test output is often normal | Mark long-running, park monitor branch, re-check in 15m | | Parsed-only wrapper says idle | Wrapper text is telemetry, not truth | Full read and classify from actual screen evidence |
When a loop or monitor policy violates this skill:
15m re-check.development
Create, edit, and verify golem-powers skills using the standard SKILL.md structure, workflow files, adapters, templates, and eval fixtures. Use for new skills, structural edits, workflows/adapters, and pre-deploy validation. NOT for invoking existing skills, superpowers skills, or skill-creator agent workflows.
testing
Extract structured knowledge from any video source — YouTube URLs or local screen recordings. YouTube → gems workflow (yt-dlp transcript → keyword hotspots → frame extract → brain_digest → structured gems). Screen recordings → QA workflow (reuses /qa-video stalker pipeline). Use when user shares a YouTube link wanting deep extraction with frames, shares a .mov/.mp4 for QA processing, says "extract from video", "video gems", "process this recording", or mentions gem extraction from video content.
testing
Use when running or reviewing any recurring monitor loop for merge queues, worker queues, collab tails, or agent completion. Enforces drive-to-completion ticks: every tick must query live state with `!`, classify whether real progress happened, and then dispatch, verify-and-decrement, or escalate-park. Triggers on: monitor loop, /loop, recurring tick, keep monitoring, silent autonomous, merge gate, blocked review, no-progress loop.
tools
MeHayom freelance client management — daily updates, decision tracking, time logging. Use when drafting Yuval updates, logging scope changes, tracking hours, or any MeHayom client communication. Triggers: 'draft Yuval update', 'client update', 'daily update', 'log decision', 'track time', 'mehayom'.