skills-experimental/async-task-delegation/SKILL.md
Background task execution system with worker threads, status tracking, and timeout handling. Submit, monitor, and manage async tasks for long-running operations. Use when executing background tasks, monitoring async operations, or delegating heavy computations.
npx skillsauth add bianhaifeng789-hue/openclaw-config async-task-delegationInstall 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.
借鉴 DeerFlow 2.0 的 Background Task Storage + ThreadPoolExecutor。
长任务会阻塞主线程:
问题: 主线程阻塞 → 用户无响应
解决方案: Async Task Delegation
Worker Threads:
Main Thread
↓ submit(task)
Task Queue (Map)
↓ start(task)
Worker Thread (isolated)
↓ execute
Result → Main Thread (message)
Task Status:
PENDING → RUNNING → COMPLETED
→ FAILED
→ CANCELLED
→ TIMED_OUT
impl/bin/async-task.js:
class AsyncTaskManager {
constructor(config) {
this.maxWorkers = config.maxWorkers || 3;
this.timeoutMs = config.timeoutMs || 300000; // 5min
this.tasks = new Map();
this.workers = new Map();
}
submit(taskType, taskScript, taskData) {
const taskId = uuid.v4();
const task = {
task_id: taskId,
task_type: taskType,
task_script: taskScript,
task_data: taskData,
status: 'pending',
created_at: Date.now(),
started_at: null,
completed_at: null,
result: null,
error: null
};
this.tasks.set(taskId, task);
if (this.workers.size < this.maxWorkers) {
this.start(taskId);
}
return taskId;
}
start(taskId) {
const task = this.tasks.get(taskId);
task.status = 'running';
task.started_at = Date.now();
const worker = new Worker(task.task_script, {
workerData: {
task_id: taskId,
task_data: task.task_data
}
});
worker.on('message', (msg) => {
if (msg.type === 'progress') {
task.progress = msg.progress;
} else if (msg.type === 'result') {
task.result = msg.result;
task.status = 'completed';
task.completed_at = Date.now();
}
});
worker.on('error', (err) => {
task.error = err.message;
task.status = 'failed';
});
}
}
Submit task:
const manager = new AsyncTaskManager();
const taskId = manager.submit('migration', '/path/to/migrate.js', {
source: '/old/path',
target: '/new/path'
});
console.log(`Task submitted: ${taskId}`);
Monitor progress:
const task = manager.get(taskId);
console.log(`Status: ${task.status}`);
console.log(`Progress: ${task.progress}%`);
Cancel task:
manager.cancel(taskId);
Submit:
node async-task.js submit migration /path/to/script.js
Status:
node async-task.js status
List:
node async-task.js list
node async-task.js list running
Get:
node async-task.js get <task_id>
Cancel:
node async-task.js cancel <task_id>
Cleanup:
node async-task.js cleanup 24
state/async-tasks-state.json:
{
"tasks": {
"uuid-xxx": {
"task_id": "uuid-xxx",
"trace_id": "trace-yyy",
"task_type": "migration",
"status": "completed",
"created_at": 1234567890,
"started_at": 1234567895,
"completed_at": 1234568000,
"result": { ... },
"error": null
}
},
"timestamp": 1234568000
}
worker-script.js:
const { parentPort, workerData } = require('worker_threads');
const { task_id, task_data } = workerData;
// Report progress
parentPort.postMessage({
type: 'progress',
progress: 25
});
// Execute task
const result = doWork(task_data);
// Report result
parentPort.postMessage({
type: 'result',
result: result
});
function doWork(data) {
// Task logic
return { success: true };
}
| Benefit | Description | |---------|-------------| | Non-blocking | Main thread stays responsive | | Parallel | Multiple workers (maxWorkers) | | Trackable | Progress + status tracking | | Timeout | Auto-kill timeout tasks | | Persistent | State saved to file |
DeerFlow 2.0 - backend/packages/harness/deerflow/subagents/executor.py
关键借鉴:
创建时间: 2026-04-15 借鉴来源: https://github.com/bytedance/deer-flow
business
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings