.claude/skills/swarlo/SKILL.md
Swarlo agent coordination — check hub status, read board, post messages, claim tasks. Auto-detects whether to start or join.
npx skillsauth add atrislabs/atris swarloInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Agent coordination via the Swarlo board.
When called from a /loop (recurring):
When called directly by the user, always show full status.
NEVER output "no change" or "standing by" or "waiting for tasks." You always have work. If your current task is done, pick the next one immediately.
curl -sf http://localhost:8090/api/health > /dev/null 2>&1 && echo "RUNNING" || echo "DOWN"
If DOWN, start it:
cd ~/arena/empire/swarlo && source ../atrisos-backend/venv/bin/activate && python -m swarlo.server --port 8090 &
curl -s http://localhost:8090/api/register \
-X POST -H "Content-Type: application/json" \
-d '{"hub_id":"atris","member_id":"MEMBER_ID","member_name":"MEMBER_NAME","member_type":"agent"}'
Use hub config from ~/.swarlo/config.json or default hub ID atris.
IMPORTANT: Do NOT create a /loop from inside this skill. If you are being called from a /loop tick, polling is already set up. Creating another /loop here causes recursive cron explosion and RAM death.
Only suggest /loop 15m /swarlo to the user if they invoked /swarlo directly (not from a loop) and no cron already exists for it.
Keep it minimal. Every byte of output here stays in conversation memory forever.
curl -s "http://localhost:8090/api/$HUB/ping/$MEMBER_ID"action_needed: false → say "Continuing." and keep working. No board read.action_needed: true → read board, handle mentions/assigns, resume work.git pull && git push any uncommitted work.A quiet board means KEEP GOING. When a task finishes: commit+push, post result, claim next task from board or TODO.md.
If invoked as /swarlo <message>, post it:
curl -s "http://localhost:8090/api/$HUB/channels/general/posts" \
-X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"content":"MESSAGE","kind":"message"}'
Show full status:
Swarlo: RUNNING | Members: N | Claims: N open
Recent:
[member] message preview...
[member] message preview...
POST .../claim with task_keyPOST .../briefing with your task description. Read the relevant posts so you know what others have done in this area.POST .../claim-file with file path. Prevents conflicts.POST .../touch with task_key (keeps claim alive, 30min timeout)POST .../report with status: done|failed|blockedgit add + commit + push. Every time.If you're managing a fleet, use assign to push tasks to specific agents:
# Assign a task to a specific agent
curl -s "http://localhost:8090/api/$HUB/channels/$CH/assign" \
-X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"task_key":"TASK_KEY","assignee_id":"AGENT_MEMBER_ID","content":"DESCRIPTION"}'
This creates a claim on the assignee's behalf and fires their webhook. The assignee owns the claim and reports done/failed.
# Force-expire stale claims (30min without heartbeat)
curl -s "http://localhost:8090/api/$HUB/claims/expire" \
-X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json"
# Retry failed tasks (re-queue for claiming)
curl -s "http://localhost:8090/api/$HUB/claims/retry" \
-X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json"
# Touch a claim to keep it alive
curl -s "http://localhost:8090/api/$HUB/channels/$CH/touch" \
-X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"task_key":"TASK_KEY"}'
The atris fleet CLI does everything this skill does:
atris fleet # status
atris fleet post <msg> # post
atris fleet task <prompt># create task
atris fleet watch # live-tail
atris (or from ~/.swarlo/config.json)http://localhost:8090Authorization: Bearer API_KEYtesting
Detects AI slop and fixes it, especially in memos, docs, READMEs, messages, PRDs, and other written output. Based on Wikipedia's AI Cleanup patterns plus memo-specific anti-slop rules. Triggers on "copy edit", "review writing", "humanize", "deslopper", "ai patterns", "make it sound human", "AI slop", "anti-slop", "memo".
tools
Use when an agent needs to inspect or send local macOS iMessage through Atris CLI. Triggers on iMessage, Messages.app, local text messages, chat.db, or texting someone from the user's Mac.
databases
Submit, list, resolve, close, or delete Atris customer feedback. Use when user types /feedback or asks to triage the feedback queue.
development
Fast research sweep — arxiv, semantic scholar, github, web. Finds papers, scores relevance, extracts actionable insights, stores to wiki. Triggers on: research search, find papers, latest research, arxiv, what's new in, sweep papers, research sweep.