@@ -146,6 +146,7 @@ Directory root:
146146 in_progress/
147147 completed/
148148 blocked/
149+ superseded/
149150 tmp/
150151 _events.jsonl
151152 locks/
@@ -286,8 +287,9 @@ Task transitions are represented by moving the file:
286287
287288- ` pending/<taskId>.json ` -> ` in_progress/<taskId>.json `
288289- ` in_progress/<taskId>.json ` -> ` completed/<taskId>.json `
290+ - ` pending|in_progress|blocked/<taskId>.json ` -> ` superseded/<taskId>.json `
289291
290- Blocked tasks can be stored in ` blocked/ ` to make discovery fast.
292+ Blocked tasks can be stored in ` blocked/ ` to make discovery fast, and stale coordination tasks can be moved to ` superseded/ ` to preserve audit history without leaving them claimable .
291293
292294### 4.4 Event logs
293295
@@ -308,6 +310,7 @@ audit. These logs MUST be safe by default.
308310{ "ts" : 1710000000000 , "type" : " task_added" , "task_id" : " ..." , "title" : " ..." }
309311{ "ts" : 1710000005000 , "type" : " task_claimed" , "task_id" : " ..." , "by" : " researcher" }
310312{ "ts" : 1710000010000 , "type" : " task_completed" , "task_id" : " ..." , "by" : " researcher" }
313+ { "ts" : 1710000015000 , "type" : " task_superseded" , "task_id" : " ..." , "by" : " lead" , "reason" : " stale contract" }
311314```
312315
313316The full message body SHOULD NOT be copied into ` _events.jsonl ` unless explicitly
@@ -408,9 +411,10 @@ Add a `roboppi agents` CLI group:
408411- ` roboppi agents message ack --context <dir> --for <memberId> --message-id <uuid> `
409412
410413- ` roboppi agents tasks add --context <dir> --title ... --description ... [--depends-on ...] `
411- - ` roboppi agents tasks list --context <dir> [--status pending|in_progress|completed] `
414+ - ` roboppi agents tasks list --context <dir> [--status pending|in_progress|completed|blocked|superseded ] `
412415- ` roboppi agents tasks claim --context <dir> --task-id <uuid> --member <memberId> `
413416- ` roboppi agents tasks complete --context <dir> --task-id <uuid> --member <memberId> [--artifact <path>] `
417+ - ` roboppi agents tasks supersede --context <dir> --task-id <uuid> --member <memberId> [--reason <text>] [--replacement-task-id <uuid>] `
414418
415419Return values MUST be JSON so workers can parse them reliably.
416420
@@ -486,10 +490,10 @@ Implementation note:
486490- Prefer ` roboppi agents message ... ` subcommands that accept structured JSON via
487491 stdin (` --json-stdin ` ) to avoid quoting errors.
488492
489- ### 6.3 Optional: MCP server (future)
493+ ### 6.3 MCP server
490494
491- For better ergonomics (no shell quoting, richer schemas), provide an MCP server
492- ` roboppi agents mcp ` that exposes tools:
495+ For better ergonomics (no shell quoting, richer schemas), ` roboppi agents mcp `
496+ exposes a stdio MCP server with tools:
493497
494498- ` agents_send_message `
495499- ` agents_broadcast `
@@ -499,6 +503,11 @@ For better ergonomics (no shell quoting, richer schemas), provide an MCP server
499503- ` agents_tasks_list `
500504- ` agents_tasks_claim `
501505- ` agents_tasks_complete `
506+ - ` agents_tasks_supersede `
507+ - ` agents_status_get `
508+ - ` agents_status_set `
509+ - ` agents_specialist_activate `
510+ - ` agents_specialist_deactivate `
502511
503512Teammate sessions (Claude Code) already load MCP servers as part of context.
504513This aligns with the Claude agent teams note that teammates "load the same
0 commit comments