本 skill 是 Hermes Kanban worker 的深入指南:良好的交接格式、重试诊断、边缘情况。
你的工作区类型决定了你在 $HERMES_KANBAN_WORKSPACE 中的行为:
| 类型 | 含义 | 如何工作 |
|---|---|---|
scratch | 全新临时目录,只属于你 | 自由读写;任务归档时会被 GC |
dir: | 共享持久目录 | 其他运行会读取你写的内容。把它当作长期状态 |
worktree | Git worktree 在解析路径 | 在此提交工作 |
如果设置了 $HERMES_TENANT,任务属于租户命名空间。读写持久记忆时,用租户前缀记忆条目:
business-a: Acme is our biggest customerAcme is our biggest customerkanban_complete(summary=..., metadata=...) 交接是下游 worker 了解你做了什么的方式:
编码任务:
kanban_complete(
summary="shipped rate limiter — token bucket, keys on user_id with IP fallback, 14 tests pass",
metadata={
"changed_files": ["rate_limiter.py", "tests/test_rate_limiter.py"],
"tests_run": 14,
"tests_passed": 14,
},
)
审查任务:
kanban_complete(
summary="reviewed PR #123; 2 blocking issues found (SQL injection, missing CSRF)",
metadata={
"pr_number": 123,
"findings": [
{"severity": "critical", "file": "api/search.py", "line": 42, "issue": "raw SQL concat"},
{"severity": "high", "file": "api/settings.py", "issue": "missing CSRF middleware"},
],
"approved": False,
},
)
如果你的运行产生了新的看板任务(通过 kanban_create),在 kanban_complete 上通过 created_cards 传递 id:
# 正确——捕获返回值,然后声明它们
c1 = kanban_create(title="remediate SQL injection", assignee="security-worker")
c2 = kanban_create(title="fix CSRF middleware", assignee="web-worker")
kanban_complete(
summary="Review done; spawned remediations for both findings.",
metadata={"pr_number": 123, "approved": False},
created_cards=[c1["task_id"], c2["task_id"]],
)
差:"stuck"——人类没有上下文。
好:一句话命名你需要做出的具体决定:
kanban_block(reason="Rate limit key choice: IP (simple, NAT-unsafe) or user_id (requires auth)?")
如果你打开任务,kanban_show 返回带一个或多个已关闭运行的 runs: [...],你就是重试:
outcome: "timed_out"——之前的尝试达到 max_runtime_seconds。你可能需要分块工作outcome: "crashed"——OOM 或段错误。减少内存占用outcome: "spawn_failed"——通常是 profile 配置问题。通过 kanban_block 询问人类outcome: "blocked"——之前的尝试阻塞;取消阻塞评论现在应该在线程中delegate_task 代替 kanban_create。delegate_task 用于短期推理子任务;kanban_create 用于跨 agent 交接$HERMES_KANBAN_WORKSPACE 之外的文件,除非任务正文说要这样做任务状态可能在派发和启动之间变化。始终先 kanban_show。如果报告 blocked 或 archived,停止。
工作区可能有陈旧产物。特别是 dir: 和 worktree 工作区可能有之前运行的文件。阅读评论线程了解状态。
评论区