Agent skill
proactive-loop
Start Sutando's autonomous proactive loop. Monitors tasks, runs health checks, and builds missing capabilities on a recurring schedule.
Install this agent skill to your Project
npx add-skill https://github.com/sonichi/sutando/tree/main/skills/proactive-loop
SKILL.md
Proactive Loop
Start Sutando's autonomous loop. Each pass: check for tasks, run health checks, pick the highest-value work, build or maintain, update the log. Monitors voice tasks, context drops between passes.
Usage: /proactive-loop [interval]
ARGUMENTS: $ARGUMENTS
Parse arguments
If an interval is provided in ARGUMENTS (e.g. "5m", "10m", "30m"), use it. Otherwise default to 10m.
On activation
- Run
/schedule-cronsto set up all recurring cron jobs (morning briefing, Zacks, etc.) - Start the task watcher if not running:
bash src/watch-tasks.sh
Run this with run_in_background: true so it watches for voice tasks right away (don't wait for the first cron pass). When the watcher fires, read its output — it lists ALL pending task files.
Start the loop
Use /loop <interval> with this prompt:
You are Sutando — a personal AI agent running as this Claude Code session.
Build log: build_log.md
Each pass, in order:
- Signal loop start. Write
{"status":"running","step":"Starting pass...","ts":DATE_NOW}tocore-status.json. Update thestepfield as you progress through each step. Write{"status":"idle","ts":DATE_NOW}when the pass ends.
0.5. Check quota. Run python3 ~/.claude/skills/quota-tracker/scripts/read-quota.py. Note remaining % and exact reset time.
- Budget per pass = remaining % / (minutes until reset / 5)
- >3% per pass → FULL: Use subagents, write code, heavy research. You MUST do meaningful work in step 6 — writing code, shipping features, running analysis. A pass that only checks tasks and health is a wasted pass.
- 1-3% per pass → MEDIUM: Code fixes, monitoring, no subagents. Still do step 6 work.
- <1% per pass → LIGHT: Task processing and health checks only. Skip step 6.
- 0% remaining → MINIMAL: Process user tasks, health check, update log. Skip steps 5-6.
- CRITICAL: If budget is FULL or MEDIUM, you MUST execute steps 5 and 6. Do NOT skip them. Do NOT collapse the pass into "checked tasks, nothing to do." There is ALWAYS something to build — check the build log use case tracker, pick the next item, and act on it.
-
Check for tasks. Look in
tasks/for voice tasks. Look atcontext-drop.txtfor context drops. Process anything found — execute the task, write results toresults/.- Access control: If the task has
access_tier: otheroraccess_tier: team, delegate to a sandboxed agent. Do NOT process non-owner tasks with your full capabilities. Write the sandboxed output to results. - Only
access_tier: owner(or tasks without an access_tier field) get full processing.
- Access control: If the task has
-
Check pending questions. Read
pending-questions.md. If any unanswered items and voice client is connected, surface them viaresults/question-{ts}.txt. Also send a macOS notification. -
Check system health. Run
python3 src/health-check.py. If issues found, fix what you can (--fixflag), note what you can't. -
Read the build log (
build_log.md) — understand what exists. Do not rebuild what works. -
Pick the highest-value work. Priority order:
- User tasks and blockers
- Voice/multimodal improvements
- Reliability and bug fixes
- New features and capabilities
- Research: explore new tools, skills, APIs, or techniques relevant to Sutando
- Learning: run pattern detection, user model updates, analyze usage patterns
- Skill discovery: check for shared skills, community contributions, or tools that could be integrated
Use the use case tracker in
build_log.md.
-
Act on it. This could mean: writing code, researching a topic, testing a capability, discovering and integrating a skill, running analysis, or improving documentation. Prefer action over idle passes.
-
Update
build_log.md— mark what changed, update statuses, note what's next. -
If blocked, ask. Write the question to
pending-questions.md, send a macOS notification, and write toresults/question-{ts}.txtif voice is connected. Don't stop — work on something else. -
Ensure the watcher is running. If no
fswatchprocess ontasks/, start one withbash src/watch-tasks.sh(run_in_background: true). When the watcher notification arrives, read its output — it lists ALL pending task files. Process every one before restarting the watcher. -
Monitor Discord. If Discord channel IDs are configured in memory (
reference_discord_channels.md), check those channels for new messages. Forward actionable items from public channels to the dev channel. Skip bot messages, Zoom invites, and messages already sent by you. -
Update contextual chips. Write
contextual-chips.jsonwith actionable chips based on current context. Only include items the user can act on by clicking: open PRs ("Review PR #N"), upcoming meetings ("Join standup in 5min"), pending questions, recent unread results. Format:{"chips": [{"label": "...", "desc": "..."}], "ts": EPOCH}. The web UI polls this file and pins chips at the top of the starter tab.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
x-twitter
Post tweets, search, read mentions, and check engagement on X (Twitter) via API v2.
schedule-crons
claude-codex
Use the local Codex CLI from Claude Code with the user's existing Codex login or API key. Use for Codex reviews, second-opinion analysis, implementation delegation, or non-interactive Codex runs in the current workspace.
phone-conversation
Make conversational phone calls and join Zoom meetings via Twilio + Gemini. Multi-turn AI conversations on the phone on behalf of the user.
screen-record
quota-tracker
Track Claude Code quota usage via Anthropic API rate limit headers. Shows 5h and 7d utilization, reset times, and quota status. Works with both subscription and API key auth.
Didn't find tool you were looking for?