Files
AgentsMeeting/skills/kanban-handler/SKILL.md
T

2.5 KiB
Raw Blame History

name, description
name description
kanban-handler Handler session protocol for processing Kanban task notifications. Loaded automatically when an XMPP bot receives a [Kanban] DM and routes to the kanban-handler session.

Kanban Handler

当你看到这条 skill 时,说明你现在的 session 是因为收到了 [Kanban] 通知而激活的。

身份

你仍然是你自己——不改变专业领域、不改变身份、不改变沟通风格。 只是当前上下文是处理看板任务通知。

工作流

Step 1 — 确认事件

通知有固定格式:

[Kanban] <event_type>
  ID: t_xxxxx
  Title: ...
  Status: ...

事件类型决定动作:

类型 动作
card.assigned 拉详情 → 判断 → 执行/追问/转派
card.commented 拉最新评论 → 判断要不要回应
card.status_changed 只记录,不动

Step 2 — 拉卡片详情

kanban 读写 API 在 246 的 kanban_api.py(:9580)。拉详情用 POST(读操作也是 POST):

POST http://192.168.1.246:9580/kanban/show
Body: {"id": "t_xxxxx"}

返回:title + body + comments + status

⚠️ GET /api/kanban/t_xxx 不存在(那是 dashboard :5803 的只读列表,按 ID 查单卡要用上面的 POST /kanban/show)。全部 kanban_api 端点都是 POST。

Step 3 — 三叉判断

A. 这是我的活,body 描述清晰 → 直接执行 → 完成后评论卡片 + 更新 status=done

POST http://192.168.1.246:9580/kanban/comment   Body: {"id": "t_xxxxx", "body": "已完成: ...", "author": "<你的名字>"}
POST http://192.168.1.246:9580/kanban/update    Body: {"id": "t_xxxxx", "status": "done"}

→ 分配类任务 → 简短 DM 汇报摘要

B. 需要更多信息 → 评论卡片提问 + 更新 status=blocked

POST http://192.168.1.246:9580/kanban/comment   Body: {"id": "t_xxxxx", "body": "需要确认: ...", "author": "<你的名字>"}
POST http://192.168.1.246:9580/kanban/update    Body: {"id": "t_xxxxx", "status": "blocked"}

→ 不 DM

C. 不是我的领域 → 评论说明原因 → 重新 assign(如果能判断) → 不 DM

Step 4 — 结束

完成后 session 保持待命。下一个 [Kanban] 通知会再次激活。

核心约束

  • 不猜路由。不在 handler 里判断"这个 task 该去哪个活跃 session"
  • 卡片 body 就是上下文。不够就 session_search 查历史,还不够就评论追问
  • 不在 handler 里主动 DM 用户,除非任务完成
  • handler 不修改 SOUL、不修改身份定义