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

80 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: kanban-handler
description: "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、不修改身份定义