# reporter > Schedule autonomous reporting jobs using the Isolated Dispatch Pattern (guaranteed delivery without user trigger). Use for daily briefs, status reports, or alerts that must fire at a specific time regardless of user activity. - Author: Chief - Repository: protosschiefbot-cpu/openair-workspace - Version: 20260205000007 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/protosschiefbot-cpu/openair-workspace - Web: https://mule.run/skillshub/@@protosschiefbot-cpu/openair-workspace~reporter:20260205000007 --- --- name: reporter description: Schedule autonomous reporting jobs using the Isolated Dispatch Pattern (guaranteed delivery without user trigger). Use for daily briefs, status reports, or alerts that must fire at a specific time regardless of user activity. --- # Reporter Skill This skill standardizes the "Isolated Dispatch Pattern" for `cron` jobs in Clawdbot. Standard `cron` jobs (system events) wait for a heartbeat (user message) to execute. To ensure a report fires *autonomously* at a precise time and *pushes* a message to the user, specific parameters are required. ## The Isolated Dispatch Pattern To schedule an autonomous report, use the `cron` tool with these exact settings: 1. **Session Target:** `isolated` (Runs in a dedicated session, does not block on main session state) 2. **Wake Mode:** `now` (Forces the Gateway to spawn the session immediately at the scheduled time) 3. **Payload Kind:** `agentTurn` (Not `systemEvent`) 4. **Delivery:** Explicitly configured in the payload. ### Template: `cron.add` ```javascript cron.add({ name: "job-name", schedule: { kind: "cron", // or "at" expr: "0 7 * * *" // 7:00 AM }, sessionTarget: "isolated", // REQUIRED wakeMode: "now", // REQUIRED payload: { kind: "agentTurn", message: "Your prompt instructions here...", deliver: true, // Send output to channel channel: "telegram", // Or "whatsapp", "discord" to: "USER_ID_OR_TOPIC" // Target ID (get from context) } }) ``` ## Usage Guidelines ### When to use - Daily Intelligence Briefs - Morning/Evening Status Reports - Time-sensitive alerts (Reminders that must ping the phone) ### When NOT to use - Internal maintenance tasks (Use `systemEvent` / `main` session) - Passive checks that don't need to ping the user (Use standard heartbeat) ### Troubleshooting - **Job didn't fire?** Check `wakeMode`. If "next-heartbeat", it's waiting for a message. Change to "now". - **Job fired but no message?** Check `payload.deliver: true` and `payload.to`. Isolated sessions act like a "ghost" user; they need a destination.