From heartbeat
Interview-driven builder for the responsive-agent pattern. Walks you through a short spec (channels, frequency, voice reference, skip rules) and generates a ready-to-paste scheduled task body customized to your setup. Supports three levels: Level 1 Gmail-only, Level 2 Gmail + Slack, Level 3 Supabase to-do routing. Triggers on "build a heartbeat", "set up email heartbeat", "make my agent responsive", "build me a scheduled task that drafts replies", "I want an hourly agent that checks my inbox".
How this skill is triggered — by the user, by Claude, or both
Slash command
/heartbeat:heartbeatThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interviews the operator, generates a customized scheduled task body, and walks them through creating the task in cowork. Same shape as `/edge-fn` from `supabase-builder` — spec it, ship it.
Interviews the operator, generates a customized scheduled task body, and walks them through creating the task in cowork. Same shape as /edge-fn from supabase-builder — spec it, ship it.
User says any variant of:
Ask these in a single structured block. Accept "default" or "skip" for any field.
Quick spec:
1. Which level are we building?
- Level 1: Gmail only
- Level 2: Gmail + Slack DMs
- Level 3: Supabase to_do routing (needs supabase-builder plugin)
Default: Level 1 for first-time builds.
2. How often should it run? (hourly / every 30 min / every 4 hours / other)
Default: hourly.
3. What's your voice reference folder path?
Default: personal-responses/ in coworker workspace.
4. Skip list preferences (comma-separated, or "standard"):
standard = marketing, receipts, calendar invites, newsletters, unknown senders
Add or remove anything you want.
5. Lead-flagging: should the agent flag potential leads / client opportunities
separately in the summary line? (yes/no)
Default: yes, with a 🎯 prefix.
Wait for the operator's answers. If they give short or vague answers, use the defaults.
Mirror back their answers in a compact block so they can correct before you generate. Example:
Building:
- Level 1: Gmail only
- Frequency: hourly
- Voice ref: coworker/personal-responses/
- Skip: marketing, receipts, calendar invites, newsletters, unknown senders
- Lead-flagging: yes (🎯 prefix)
Look right? Say 'go' to generate the scheduled task body.
If they change anything, update and re-confirm. When they say go, proceed.
Use the templates in references/scheduled-task-instruction.md as the base. Substitute their spec values into the template. For Level 2 / 3, stack the additional blocks per the template file.
Output three things in one message:
The generated task body — in a fenced code block so they can copy it cleanly.
The setup checklist — folders to create before first run (inbox-log/, personal-responses/, heartbeat-log.md).
The paste walkthrough — exact cowork clicks:
1. Open cowork → Settings → Scheduled Tasks → New Task
2. Task name: Email Heartbeat
3. Frequency: <spec.frequency>
4. Model: Sonnet
5. Project: coworker (or whichever folder has your voice ref)
6. Paste the task body (above) into the instruction field
7. Save
After they confirm they've created the task, tell them:
Trigger a manual run now (cowork's scheduled task list usually has a "Run now" button).
Check for:
- inbox-log/<today>.md created with any recent emails
- heartbeat-log.md has a new line
- Gmail drafts folder has N new drafts (if you had inbound messages in the last hour)
If anything's missing, come back and tell me what you see vs. expected.
After the operator confirms Level 1 works (usually 2-3 weeks in):
Level 1 is solid. Ready to add Slack DMs (Level 2) or Supabase to_do routing (Level 3)?
- Level 2 needs the Slack MCP connector.
- Level 3 needs supabase-builder + Supabase MCP.
If yes, re-run the intake with the new level selected and regenerate the task body.
Before generating, verify (ask the operator to confirm):
supabase-builder plugin installed + Supabase MCP connector authed + to_do table exists (or offer to create it).If a prerequisite is missing, stop before generating and walk the operator through the setup first.
Always include these rules in the generated task body, regardless of level:
heartbeat-log.md — timestamp, counts, anything flagged.personal-responses/. That folder stays pure human output.For operators who want the templates directly (skip the interview), point them to:
references/scheduled-task-instruction.md — Part 1 (Level 1), Part 2 (Level 2 addendum), Part 3 (Level 3 Supabase schema + replacement instruction).
to_do table.Mention these at the right moment — when the operator hits the limitation, not upfront.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub heymitch/vip-accelerator --plugin heartbeat