Skip to content
Back to skills

Heartbeat

ASecurity

Proactive check-in with pre-gathered context. Run automatically via launchd every 30 minutes.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
ai-agentsgobashdebuggingapi

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add shahshrey/unclaw --skill heartbeat --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Heartbeat?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Heartbeat
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shahshrey-heartbeat/badge)](https://www.skillsdirectory.com/skills/shahshrey-heartbeat)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: heartbeat
description: Proactive check-in with pre-gathered context. Run automatically via launchd every 30 minutes.
disable-model-invocation: true
allowed-tools: Bash Read Write
---

Proactive heartbeat — gather context first, then reason:

1. **Gather context** (deterministic, no reasoning yet):
   ```bash
   bash .claude/scripts/gather-context.sh
   ```

2. **Read the output** and assess:
   - Is the configured channel server alive? If DEAD -> this is **critical**, notify immediately
   - Are there pending/follow-up items with passed or imminent deadlines?
   - Are there uncommitted changes that have been sitting for a long time?
   - Is disk space running low?
   - Are there duplicate claude/tmux processes? (expected: 1 each)
   - Any patterns in today's log that suggest an unfinished thread?

3. **Act** based on what you find:
   - If the channel server is DEAD -> run `bash ./bin/start-agent.sh` to restart (the watchdog also does this, but belt-and-suspenders)
   - If there are urgent pending items -> send a notification and summarize what needs attention
   - If there are stale uncommitted changes -> suggest committing or stashing
   - If nothing needs attention -> do nothing (don't generate output for the sake of it)

4. **Only notify if something is actionable.** Silent heartbeats are good. Don't be noisy.

## Debugging rules
- NEVER call Telegram's `getUpdates` API via curl — this competes with the bun long-poller and breaks message delivery
- Safe to check: `getWebhookInfo` (read-only, no side effects)
- Safe to check: `pgrep -f "bun.*server\.ts"` (process alive?)
- Safe to check: `lsof -i -P | grep bun` (network connections?)
- If the channel is flaky, inspect `.claude/runtime/watchdog.log`, `.claude/runtime/incidents/*.log`, and the latest `.claude/runtime/agent-session-*.log` before restarting anything

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.