task-dispatch

by cccaptain0129

Task scheduling and dispatching for task boards. Use when setting up periodic task dispatch, checking for dispatchable tasks, creating subagents to execute tasks, or verifying task completion. Supports task board APIs like ClawBoard.

3.8k效率与工作流未扫描2026年3月30日

安装

claude skill add --url https://github.com/openclaw/skills

文档

Task Dispatch

Automated task scheduling and execution for task management systems.

Quick Start

用户说"设置任务调度"或"部署 ClawBoard"时,按以下流程引导:

Step 1: 检测环境

bash
# 检查 Node.js
node --version  # 需要 >= 18

# 检查 ClawBoard 是否已安装
ls -la ~/ClawBoard 2>/dev/null || echo "ClawBoard not installed"

Step 2: 部署 ClawBoard(如未安装)

bash
# 克隆仓库
git clone https://github.com/CCCaptain0129/ClawBoard.git ~/ClawBoard
cd ~/ClawBoard

# 安装依赖并初始化
./clawboard install

# 生成访问 token(自动保存到 .env)
./clawboard token --generate

Step 3: 启动服务

bash
cd ~/ClawBoard
./clawboard start

# 检查状态
./clawboard status

Step 4: 配置 Agent 环境

在 Agent 工作目录创建 .env 文件:

bash
# 获取 token
TOKEN=$(cat ~/ClawBoard/.env | grep BOARD_ACCESS_TOKEN | cut -d= -f2)

# 写入 Agent 工作目录
echo "TASKBOARD_API_URL=http://127.0.0.1:3000" >> ~/.openclaw/workspace-<name>/.env
echo "TASKBOARD_ACCESS_TOKEN=$TOKEN" >> ~/.openclaw/workspace-<name>/.env

Step 5: 打开看板

Step 6: 设置定时调度(可选)

用户说"设置定时调度"时:

json
{
  "name": "ClawBoard 调度巡检",
  "schedule": { "kind": "every", "everyMs": 300000 },
  "payload": {
    "kind": "agentTurn",
    "message": "执行 task-dispatch 调度检查。无任务时返回 HEARTBEAT_OK。"
  },
  "sessionTarget": "isolated",
  "delivery": { "mode": "none" }
}

Agent Role

You are a dispatcher, not an executor.

  • Your job: plan, dispatch, verify, update status
  • NOT your job: implement tasks yourself
  • Task execution: delegated to subagents
  • You verify results and update task status

Data Source of Truth

WhatSource
Task dataAPI endpoint (e.g., http://127.0.0.1:3000/api/tasks/...)
Task filestasks/*.json (written by API)
Project docsprojects/<project-name>/docs/
NOT source of truthFrontend dashboard (view only)

ClawBoard Deployment Guide

Prerequisites

  • Node.js >= 18
  • Git
  • PM2 (auto-installed by ./clawboard install)

Installation Commands

CommandDescription
./clawboard installInstall dependencies, create .env
./clawboard startStart frontend + backend services
./clawboard stopStop all services
./clawboard statusCheck service health
./clawboard tokenShow current access token
./clawboard token --generateGenerate new token

Verification Checklist

After deployment, verify:

  1. ✅ Backend API responds: curl http://127.0.0.1:3000/health
  2. ✅ Frontend loads: open http://127.0.0.1:5173
  3. ✅ Token works: curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:3000/api/tasks/projects
  4. ✅ Agent .env configured with token

Common Issues

IssueSolution
Port 3000 in uselsof -i :3000 then kill process
Port 5173 in uselsof -i :5173 then kill process
Token not workingRegenerate with ./clawboard token --generate
Services not startingCheck logs in ~/ClawBoard/logs/

Dispatch Operations

Overview

This skill enables agents to:

  1. Check task boards for dispatchable tasks
  2. Spawn subagents to execute tasks
  3. Verify completion and update task status
  4. Continue dispatching until no tasks remain (no waiting for next cron)

Key Principle: Continuous Dispatch

code
触发一次 → 循环执行直到无任务 → 结束

而不是:

触发一次 → 派发一个任务 → 等待下次触发

Dispatch Loop

python
def dispatch_loop():
    while True:
        task = select_dispatchable_task()
        if not task:
            return HEARTBEAT_OK  # 本轮结束
        
        # 派发并等待完成
        result = spawn_and_wait(task)
        
        # 验收
        if result.success:
            update_task(task.id, status="review")
        else:
            update_task(task.id, status="failed", blockingReason=result.error)
        
        # 【关键】立即继续下一轮,不返回
        # 循环会自动检查下一个任务

API Reference

Get Projects

code
GET {TASKBOARD_API_URL}/api/tasks/projects
Authorization: Bearer {TOKEN}

Get Tasks

code
GET {TASKBOARD_API_URL}/api/tasks/projects/{projectId}/tasks
Authorization: Bearer {TOKEN}

Create Project

code
POST {TASKBOARD_API_URL}/api/tasks/projects
Authorization: Bearer {TOKEN}
Content-Type: application/json

{
  "id": "my-project",
  "name": "My Project",
  "description": "...",
  "taskPrefix": "MP",
  "color": "#3B82F6",
  "icon": "📁"
}

Create Task

code
POST {TASKBOARD_API_URL}/api/tasks/projects/{projectId}/tasks
Authorization: Bearer {TOKEN}
Content-Type: application/json

{
  "title": "Task title",
  "description": "...",
  "status": "todo",
  "priority": "P1",
  "executionMode": "auto",
  "assignee": "agent-id"
}

Update Task

code
PUT {TASKBOARD_API_URL}/api/tasks/projects/{projectId}/tasks/{taskId}
Authorization: Bearer {TOKEN}
Content-Type: application/json

{
  "status": "in-progress",
  "claimedBy": "agent-id"
}

Task Selection Rules

A task is dispatchable if ALL conditions are met:

ConditionRequirement
executionMode"auto"
status"todo" or "in-progress" (unclaimed)
assigneeEmpty or null
claimedByEmpty or null
dependenciesAll have status: "done"

Priority Order

  1. P0 > P1 > P2 > P3
  2. Same priority: earlier createdAt first

Subagent Execution

Prepare Dispatch Context

Before spawning subagent, prepare context using the Dispatch Template:

See references/dispatch-template.md for full template.

Required fields to fill:

  • Task Identity (from task data)
  • Goal (one sentence)
  • Hard Constraints (what NOT to do)
  • Deliverables (from task.deliverables)
  • Acceptance Criteria (from task.acceptanceCriteria)
  • Output Format (completion_signal block)

Spawn with Wait

Use sessions_spawn with the dispatch context:

json
{
  "runtime": "subagent",
  "mode": "run",
  "task": "<filled dispatch template>",
  "timeoutSeconds": 300
}

The main agent should:

  1. Fill dispatch template with task context
  2. Spawn subagent with the template
  3. Wait for completion (blocking or polling)
  4. Parse completion_signal from response
  5. Verify deliverables and update status
  6. Immediately continue to next task

Completion Signal

Subagent must return a completion_signal block:

completion_signal
task_id: <taskId>
status: done | blocked
summary: <one sentence summary>
deliverables: <comma-separated paths>
next_step: <N/A if done; blocking reason if blocked>

Parse this block to determine task outcome:

  • status: done → Verify deliverables, update to review
  • status: blocked → Update to failed with blockingReason

Status Transitions

code
todo → in-progress → review → done
                ↓         ↓
              failed    failed

Important: Tasks go to review after subagent completes, not directly to done. User or main agent verifies before done.


Verification Checklist

After subagent completes, verify:

  1. Deliverables exist

    • Check all paths in deliverables array
    • Files should be non-empty
  2. Acceptance criteria met

    • Review each criterion
    • Mark pass/fail
  3. Update status

    • All pass → review
    • Any fail → failed with blockingReason

Heartbeat Response

When triggered by cron/heartbeat:

  • No dispatchable tasks: Return HEARTBEAT_OK (silent, no message to user)
  • Tasks dispatched: Report results, then check for more
  • Continue until empty: Don't stop after one task

Failure Handling

When a task fails or has no valid execution:

  1. Record the reason in blockingReason field
  2. Clear invalid occupation (claimedBy)
  3. Return task to actionable state (todo or in-progress)
  4. Never fail silently - always log or report

Common Failure Scenarios

ScenarioAction
Subagent timeoutSet failed, clear claimedBy, log reason
Subagent returns blockedSet failed with blockingReason
Deliverables missingSet failed, clear claimedBy
API errorLog error, skip this round, try next time

Dispatch Principles

  1. Only dispatch executionMode=auto tasks
  2. Priority order: todo first, then unclaimed in-progress
  3. Respect assignee: Don't re-dispatch if assignee is set
  4. Verify before done: Tasks go to review first, then done after verification

Configuration

See references/config.md for:

  • Task board adapters
  • Priority mappings
  • Execution timeouts
  • Retry policies

Example Usage

Deploy ClawBoard

code
"部署 ClawBoard 看板"

Setup with User Guidance

code
"帮我设置任务调度系统"

Manual Dispatch (runs until empty)

code
"检查任务看板,派发所有待执行任务"

Setup Periodic Check

code
"设置每10分钟自动检查任务"

The cron will trigger the dispatch loop, which runs until no tasks remain.

相关 Skills

技能工坊

by anthropics

Universal
热门

覆盖 Skill 从创建到迭代优化全流程:起草能力、补测试提示、跑评测与基准方差分析,并持续改写内容和描述,提升效果与触发准确率。

技能工坊把技能从创建、迭代到评测串成闭环,方差分析加描述优化,特别适合把触发准确率打磨得更稳。

效率与工作流
未扫描111.1k

表格处理

by anthropics

Universal
热门

围绕 .xlsx、.xlsm、.csv、.tsv 做读写、修复、清洗、格式整理、公式计算与格式转换,适合修改现有表格、生成新报表或把杂乱数据整理成交付级电子表格。

做 Excel/CSV 相关任务很省心,能直接读写、修复、清洗和格式转换,尤其擅长把乱七八糟的表格整理成交付级文件。

效率与工作流
未扫描111.1k

PDF处理

by anthropics

Universal
热门

遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。

PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。

效率与工作流
未扫描111.1k

相关 MCP 服务

文件系统

编辑精选

by Anthropic

热门

Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。

这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。

效率与工作流
83.0k

by wonderwhy-er

热门

Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。

这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。

效率与工作流
5.9k

EdgarTools

编辑精选

by dgunning

热门

EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。

这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。

效率与工作流
2.0k

评论