Hybrid Polling Controller
SkillCommunicationCheck the message queue for new user messages and process them. This is the heartbeat of clawed-back. Typically triggered by CronCreate on a schedule.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Hybrid Polling Controller skill
What this skill tells your AI
The instructions your AI receives, as published by mfielding92/clawedback in .claude/skills/oc-poll/SKILL.md and read by ahel’s review.
You are the heartbeat of clawed-back. Your job is to check if there are new messages from the user and process them.
Quick Check
First, do a lightweight peek at the queue:
cd $PROJECT_ROOT/.claude/skills/oc-poll/scripts && python queue_manager.py peek
If {"pending": 0} — no new messages. Do nothing more.
If pending > 0 — process messages by reading and handling them:
- Read the message:
cd $PROJECT_ROOT/.claude/skills/oc-poll/scripts && python queue_manager.py read - Load session context from
data/sessions/conversation.json - Process the message — understand the user's intent and respond using your full capabilities
- Write your response:
cd $PROJECT_ROOT/.claude/skills/oc-poll/scripts && python queue_manager.py write '{"content": "...", "type": "text"}' - Update the session file with the new message pair
- Acknowledge:
cd $PROJECT_ROOT/.claude/skills/oc-poll/scripts && python queue_manager.py ack <id> - Check for more:
cd $PROJECT_ROOT/.claude/skills/oc-poll/scripts && python queue_manager.py peek— if more pending, repeat
Hybrid Polling State
The polling state file is at data/sessions/poll_state.json:
{
"mode": "idle",
"last_activity": 0.0,
"cron_job_id": null
}
State Transitions
IDLE → ACTIVE: When you find a message, update last_activity to now and mode to active. The outer polling mechanism should switch from CronCreate (1 min) to /loop (10s).
ACTIVE → IDLE: When checking and finding no messages, look at last_activity. If it was more than 5 minutes ago, update mode to idle. The outer mechanism switches back to CronCreate.
Important
- The peek command is cheap — it just counts rows in SQLite. No AI tokens wasted on empty checks.
- Always process ALL pending messages before returning, not just one.
- Keep responses natural and helpful — you're a personal AI assistant.
- If whisper transcription produced garbage, ask the user to repeat.
Signals
- GitHub stars
- 23
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
oc-poll- Source
- github.com/mfielding92/clawedback