diff --git a/jobs/auto-work-646-a13.json b/jobs/auto-work-646-a13.json new file mode 100644 index 0000000..8888a42 --- /dev/null +++ b/jobs/auto-work-646-a13.json @@ -0,0 +1,15 @@ +{ + "name": "auto-work-646-a13", + "description": "646 auto-work: Cross-op scan: claim unclaimed work from #jobs/board", + "agent": "646", + "schedule": "21,51 * * * *", + "timeout": 300, + "prompt_template": "Cross-op scan: check #jobs and the board for unclaimed work other operators posted. If something fits 646 scope, claim it and start; otherwise note what you saw in one line. Nothing new: report idle.\n[TOOL swarm.list {}]", + "sidechat": { + "create": true, + "reuse_key": "auto-work-646-a13", + "name_template": "auto-work-646-a13-{date}" + }, + "chain_next": null, + "on_failure": "alert" +} diff --git a/jobs/auto-work-health-h06.json b/jobs/auto-work-health-h06.json new file mode 100644 index 0000000..29d9c06 --- /dev/null +++ b/jobs/auto-work-health-h06.json @@ -0,0 +1,22 @@ +{ + "name": "auto-work-health-h06", + "description": "Quality check deep: validators catalog \u2014 hourly", + "schedule": "56 * * * *", + "agent": "646", + "timeout": 600, + "prompt_template": "Job ID: {job_id}\nTime: {datetime}\n\nDeep quality check on input validators and error-code catalog.\nRun:\n[TOOL health.check {}]\n\nThen:\n[EXEC quality.check {\"scope\": \"validators\"}]\n\nEnd with your verdict: OK if all green, otherwise FAIL plus a one-line summary of what failed.", + "sidechat": { + "create": true, + "name_template": "auto-work-health-h06", + "reuse_key": "auto-work-health-h06" + }, + "followup": { + "escalate": "opm", + "expect_reply": true, + "nudges": 2, + "route": "auto-work-health", + "timeout": "30m" + }, + "on_failure": "alert", + "chain_next": null +} diff --git a/jobs/auto-work-swarm-g16.json b/jobs/auto-work-swarm-g16.json new file mode 100644 index 0000000..18cb4cb --- /dev/null +++ b/jobs/auto-work-swarm-g16.json @@ -0,0 +1,21 @@ +{ + "name": "auto-work-swarm-g16", + "description": "Swarm & sidechat hygiene sweep 16/20 - swarm status, stale cleanup, ephemeral sidechat archive, result harvest", + "schedule": "47 * * * *", + "agent": "646", + "timeout": 600, + "prompt_template": "Swarm and sidechat hygiene sweep (slot 16/20).\nJob ID: {job_id}\nTime: {datetime}\n\n1. Run `box swarm-list`. Note any swarm whose status is not completed/killed.\n2. For non-terminal swarms, run `box swarm-status `. If a swarm is stale (>2h old, zero running slots), record it; do not kill without clear stale evidence.\n3. Sidechat hygiene: `box thread-list --agent 646 --limit 30`. Identify terminal swarm-slot threads that are unarchived; report them.\n4. Harvest: `box swarm-results ` for recently completed swarms; one-line summary per swarm.\n\nReport-only unless threads/swarms are unambiguously stale. Do not touch other agents' work.\nConclude with a one-line summary: swarms=/ threads=.", + "sidechat": { + "create": true, + "name_template": "auto-work-swarm-g16-{date}", + "reuse_key": "auto-work-swarm-g16" + }, + "followup": { + "expect_reply": true, + "timeout": "30m", + "nudges": 1, + "escalate": "opm", + "route": "swarm-hygiene" + }, + "on_failure": "alert" +} diff --git a/jobs/work-finder.json b/jobs/work-finder.json index be6bf52..23e238d 100644 --- a/jobs/work-finder.json +++ b/jobs/work-finder.json @@ -1,14 +1 @@ -{ - "name": "work-finder", - "agent": "opm", - "schedule": "*/15 * * * *", - "description": "Autonomous work discovery: scan fleet, jobs, and ops for actionable work", - "prompt_template": "Scan for work: 1) Check fleet status via box fleet status. 2) List jobs via box job list, find unclaimed or failed. 3) Check each op (muse, pip, 646, dev) for activity gaps. Report findings back to box. If you find actionable work, claim it.", - "timeout": 600, - "on_failure": "alert", - "chain_next": null, - "sidechat": { - "create": true, - "name_template": "work-finder" - } -} +{"agent":"646","chain_next":null,"description":"Work-finder sweep — auto-discovers operator work: unclaimed JOBs, fleet health, silent agents, stuck jobs. PENDING SUPER APPROVAL — intended schedule every 30 min (*/30 * * * *); parked on manual until approved.","dm_target":"646 tasks","followup":{"escalate":"opm","expect_reply":true,"nudges":1,"route":"646-tasks","timeout":"1h"},"name":"work-finder","on_failure":"alert","prompt_template":"Work-finder sweep — auto-discover operator work.\nJob ID: {job_id}\nTime: {datetime}\n\nScan the fleet for work needing an operator. Use the box tools below, then post a concise HUMAN-READABLE work list with priorities in this thread — not raw JSON.\n\n1. Fleet health:\n[TOOL health.check {}]\nAny node with proc_alive=false or cdp_ok=false is P0 (act now).\n\n2. Unclaimed JOBs in #jobs:\n[TOOL chat.messages {\"channel\": \"#jobs\", \"limit\": 30}]\nFind JOB posts older than 30 minutes with no claim reply after them. Each unclaimed JOB is P1 (claim or assign).\n\n3. Silent agents in #lobby:\n[TOOL chat.messages {\"channel\": \"#lobby\", \"limit\": 50}]\nWhich agent identities posted recently, and who has gone quiet (silent 2h+ for normally-active agents)? Quiet non-op agents are P2 (nudge/check).\n\n4. Failed or stuck scheduled jobs:\n[TOOL cron.runs {}]\nFlag jobs with recent failures or missed schedules. P2/P3.\n\nIf a tool rejects its args, fall back to web.fetch of https://chat.muse-dev.online/api/chat/history?channel=%23jobs&limit=30 (use %23lobby for the lobby check).\n\nPost the list in this format:\n\nWORK LIST {datetime}\nP0 (act now): \nP1 (claim or assign): \nP2 (nudge / check): \nP3 (watch): \nIf all clear: 'WORK LIST: all clear — fleet green, no unclaimed JOBs, no silent agents.'\n\nFinish with: [RESULT {job_id}] OK","schedule":"manual","sidechat":{"create":false},"timeout":600} \ No newline at end of file