원클릭으로
board
Shared task board for coordinating work across agents. Use when creating, assigning, tracking, or querying tasks in a swarm.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Shared task board for coordinating work across agents. Use when creating, assigning, tracking, or querying tasks in a swarm.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | board |
| description | Shared task board for coordinating work across agents. Use when creating, assigning, tracking, or querying tasks in a swarm. |
Shared task board for coordinating work across agents. Agents create tasks, claim them, post notes with findings, and mark them done.
VERS_INFRA_URL env var points to the infra VM (e.g., http://abc123.vm.vers.sh:3000). All endpoints below are relative to this base URL.
curl -X POST "$VERS_INFRA_URL/board/tasks" \
-H "Content-Type: application/json" \
-d '{
"title": "Implement auth middleware",
"description": "Add JWT validation to all API routes",
"createdBy": "orchestrator",
"assignee": "backend-lt",
"tags": ["auth", "backend"],
"dependencies": []
}'
Returns 201. Required: title, createdBy. Optional: description, status (default: open), assignee, tags, dependencies.
# All tasks
curl "$VERS_INFRA_URL/board/tasks"
# Filter by status
curl "$VERS_INFRA_URL/board/tasks?status=in_progress"
# Filter by assignee
curl "$VERS_INFRA_URL/board/tasks?assignee=backend-lt"
# Filter by tag
curl "$VERS_INFRA_URL/board/tasks?tag=auth"
Returns { tasks: [...], count: N }. Sorted newest first. Valid statuses: open, in_progress, blocked, done.
curl "$VERS_INFRA_URL/board/tasks/01ABC123..."
curl -X PATCH "$VERS_INFRA_URL/board/tasks/01ABC123..." \
-H "Content-Type: application/json" \
-d '{"status": "in_progress", "assignee": "backend-lt"}'
Updatable: title, description, status, assignee (set null to unassign), tags, dependencies.
curl -X DELETE "$VERS_INFRA_URL/board/tasks/01ABC123..."
curl -X POST "$VERS_INFRA_URL/board/tasks/01ABC123.../notes" \
-H "Content-Type: application/json" \
-d '{
"author": "backend-lt",
"content": "Found the root cause — missing CORS header in preflight",
"type": "finding"
}'
Returns 201. Required: author, content, type. Valid types: finding, blocker, question, update.
curl "$VERS_INFRA_URL/board/tasks/01ABC123.../notes"
Returns { notes: [...], count: N }.
# List open tasks assigned to me (or unassigned)
curl "$VERS_INFRA_URL/board/tasks?status=open&assignee=my-agent"
# Claim and start
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "in_progress", "assignee": "my-agent"}'
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-agent", "content": "Cannot proceed — DB credentials missing from env", "type": "blocker"}'
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "blocked"}'
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-agent", "content": "Auth middleware implemented and tested", "type": "update"}'
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "done"}'
Lieutenants follow a strict protocol for board updates. The board is the source of truth — if the board is stale, the orchestrator can't coordinate.
Set status to in_progress and assign yourself immediately. Don't start work silently.
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "in_progress", "assignee": "my-lt-name"}'
Add notes as things happen — findings, decisions, blockers. Don't batch them.
# Found something relevant
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-lt-name", "content": "Auth tokens expire after 1h, not 24h as documented", "type": "finding"}'
# Made a design decision
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-lt-name", "content": "Using SQLite instead of JSONL — need row-level revocation", "type": "update"}'
Set status to blocked with a note explaining what's wrong and what you need.
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-lt-name", "content": "Cannot SSH to infra VM — no key access. Need orchestrator to deploy.", "type": "blocker"}'
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "blocked"}'
Set status to in_review and add a summary note with: what changed, branch name, test results.
curl -X POST "$VERS_INFRA_URL/board/tasks/$TASK_ID/notes" \
-H "Content-Type: application/json" \
-d '{"author": "my-lt-name", "content": "Branch feat/share-links pushed. 24 new tests, all passing. Added SQLite store, admin routes, public viewer route.", "type": "update"}'
curl -X PATCH "$VERS_INFRA_URL/board/tasks/$TASK_ID" \
-H "Content-Type: application/json" \
-d '{"status": "in_review"}'
The orchestrator moves tasks from in_review to done after verification. LTs don't mark their own tasks done.
When a new task replaces or absorbs multiple older tasks, link them bidirectionally:
<new-task-id> ()" and close them as done.This ensures future visitors can trace the lineage in both directions — from the old tasks forward to where the work moved, and from the new task back to the prior thinking.
Orchestrators are responsible for keeping the board current. Don't wait to be asked. The board is the persistence layer — a new session reads it to understand what's happening. If it's stale, recovery fails.
The agent-services extension does not auto-create board tasks — all task management is manual/explicit. However, agents auto-register in the registry and publish to the feed on startup, so you can discover available agents before assigning tasks.
If the agent-services extension is loaded:
board_create_task — Create a new taskboard_list_tasks — List/filter tasksboard_update_task — Update status, assignee, etc.board_add_note — Post a finding, blocker, question, or updateinterface Task {
id: string; // ULID
title: string;
description?: string;
status: "open" | "in_progress" | "blocked" | "done";
assignee?: string;
tags: string[];
dependencies: string[]; // Task IDs this depends on
createdBy: string;
createdAt: string;
updatedAt: string;
notes: Note[];
}
interface Note {
id: string;
author: string;
content: string;
type: "finding" | "blocker" | "question" | "update";
createdAt: string;
}
Always register VM snapshots in the commit ledger. Use when committing/snapshotting VMs, before destroying VMs, during deploys, or when creating golden images. Ensures no snapshot goes untracked.
Generate a magic login link for the agent-services dashboard UI. Use when the user wants to access the dashboard, needs a login link, says "magic link," or asks for UI access.
Deploy a branch to a preview VM for zero-risk change review. Snapshot infra, clone it, deploy the branch on the clone, share the link. Production untouched. Use for ALL UI changes, feature demos, and PR reviews.
Commit ledger for tracking VM snapshots. Use when recording, querying, or managing Vers VM commit history — golden images, infra snapshots, rollback points.
Append-only work log for agent sessions. Use when recording what happened, what was decided, and what's next — the log is for the next session's orchestrator.
Deploy agent-services to the infra VM. Use when shipping new code, restarting services, or rolling back a broken deploy. Covers pre-deploy snapshot, pull/build/restart, smoke tests, and rollback.