huanxi 插件的技能内容从 v1 全面替换为 v2(huanxi-org/huanxi-weekly 等 v1 专属技能下线,新增 huanxi-issue/huanxi-lookup/huanxi-meeting),MCP 连接与 Token 获取方式同步更新为个人中心自助生成。 新增独立的 huanxi-admin 插件(管理端 4 个技能,hxa_ Token,普通员工无需 安装),此前一直卡在"v2 未部署到生产域名前不推送"这条约束,今晚寰汐 v1.0.0 生产切换完成后条件满足。 产物由 huanxi-menagement 仓库 skills/sync_marketplace.py 生成,技能源码 单一真相在该仓库的 skills/,本仓库只接收产物、不手工编辑。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018xxRKMuiGR4wYT3QbwCpDc
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| huanxi-task | 寰汐任务管理:查任务、建任务、改状态与进度、分配执行人、认领。当用户说「我有什么任务」「建个任务」「把这个标成完成」「派给谁」时使用。 |
寰汐任务管理
前置:先读 huanxi-shared(尤其「状态是可配置的两层模型」一节)。
ID 传递链
任务操作几乎都是这条链,中间结果要展示给用户,不要一路闷头做到底:
module_query() → module_id
↓
task_query(module_ids=[...]) → task_id[] ← 展示给用户看
↓ ⏸ 用户指明改哪些
task_update(updates=[{id, ...}])
查
task_query(scope="mine") 我负责执行的(默认)
task_query(scope="all", module_ids=[...]) 某几个模块的全部任务
task_query(q="关键词") 标题模糊搜
task_get(task_ids=[...]) 详情:描述 + 层级路径
过滤维度都收列表,一次查多个模块比循环调用好。
改状态与进度
先 dict_get 取 task 类型的状态选项,拿到 status_option_id 再传:
dict_get(kinds=["status_options"])
→ 筛 entity_type == "task"
→ 按 category 找到目标状态(not_started/in_progress/completed/cancelled)
→ 取它的 id
task_update(updates=[{id: 任务id, status_option_id: 状态id}])
状态与进度有联动,只传一个就够:进度设到 100 会自动转完成;已完成的任务把进度 调低会自动回落进行中。两个都传等于重复表达同一个意思。
非叶子任务不能直接设进度——返回里 progress_readonly 为 true 的那些,进度是子任务
聚合出来的,硬设会被拒绝。要推进它,去改它的子任务。
建任务
task_create(module_id=..., tasks=[{title, description?, priority?, end_date?,
parent_id?, milestone_id?, assignee_ids?}])
- 建子任务传
parent_id,最多三级(任务 / 子任务 / 孙任务) - 需要是该模块的成员或负责人
priority的取值以工具说明为准——不要凭直觉写,这个字段有 DB 级约束,写错直接报错
执行人
task_set_assignees(task_id=..., user_ids=[...]) 整组覆盖,传空即清空
task_claim(task_ids=[...], claim=true/false) 认领 / 取消认领(只动自己)
task_set_assignees 是替换不是追加。 想加一个人,要先 task_get 拿到现有名单,
把新人拼进去再整组传回——直接传一个人会把其余执行人全部踢掉。这是最容易出错的地方,
覆盖前把「改完会变成谁」说给用户听。
被指派的人若不是模块成员,会自动加入该模块;新增执行人会收到飞书通知。
不在工具里的操作
删除任务、跨模块转移任务不在 MCP,请引导用户去网页端——这两个动作作用于整棵子树 且不可逆,需要看清楚影响范围再点。