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
87 lines
2.6 KiB
Markdown
87 lines
2.6 KiB
Markdown
---
|
|
name: huanxi-admin-module
|
|
description: "寰汐管理端模块与任务:全量查模块任务、建模块、改模块状态、整组配置成员、跨模块任务管理。当用户说「建个模块」「把某人加进模块」「全公司任务情况」「关掉这个模块」时使用。"
|
|
---
|
|
|
|
# 寰汐管理端 · 模块与任务
|
|
|
|
**前置:先读 `huanxi-admin-shared`。**
|
|
|
|
全量视角,不受「我参不参与」过滤。
|
|
|
|
---
|
|
|
|
## 查
|
|
|
|
```
|
|
module_query(status_category?, q?) 全量模块,带负责人与成员数
|
|
module_get(module_ids=[...]) 详情含成员名单与各自角色
|
|
task_query(module_ids?, assignee_ids?, status_category?, priority?, q?)
|
|
task_get(task_ids=[...])
|
|
```
|
|
|
|
过滤维度都收列表,一次查多个比循环调用好。
|
|
|
|
---
|
|
|
|
## 建模块
|
|
|
|
```
|
|
module_create(name, type_id, leader_user_id, description?)
|
|
```
|
|
|
|
`type_id` 先 `dict_get(kinds=["module_types"])` 取,`leader_user_id` 用 `user_query` 取。
|
|
创建后会自动生成该模块的「杂记」任务,承载不值得单独建任务的零散工作。
|
|
|
|
---
|
|
|
|
## 改模块
|
|
|
|
```
|
|
module_update(module_id, name?, description?, status_option_id?)
|
|
```
|
|
|
|
⏸ **切到「已取消」有副作用**:级联取消该模块下全部未完成任务,并给成员发飞书通知。
|
|
这不是可撤销的操作,确认清楚再调。
|
|
|
|
模块**删除**不在本端点——那是纠错场景(建错了),需要在后台确认。
|
|
|
|
---
|
|
|
|
## 成员整组配置
|
|
|
|
```
|
|
module_set_members(module_id, members=[{user_id, role}, ...])
|
|
```
|
|
|
|
⏸ **替换语义**:不在名单里的现有成员**会被移除**。正确做法:
|
|
|
|
```
|
|
1. module_get 拿现有名单
|
|
2. 在现有名单基础上做改动(加人/改角色/去人)
|
|
3. 把完整的最终名单整组传回
|
|
4. 先把「改完会变成谁、谁会被移除」说给用户听,确认后再调
|
|
```
|
|
|
|
返回的 `added` / `role_changed` / `removed` 三组是本次实际发生的变更,
|
|
用它向用户复述结果。
|
|
|
|
一人一模块只能有一个角色(`leader` / `reviewer` / `member`)。新加入的成员会收到飞书通知。
|
|
|
|
---
|
|
|
|
## 任务
|
|
|
|
```
|
|
task_create(module_id, tasks=[{title, ...}])
|
|
task_update(updates=[{id, status_option_id?, progress?, priority?, ...}])
|
|
task_set_assignees(task_id, user_ids=[...])
|
|
```
|
|
|
|
- 改状态先 `dict_get` 取 task 类型的 `status_option_id`
|
|
- 状态与进度**有联动,只传一个就够**(进度 100 自动完成;已完成的调低进度自动回落)
|
|
- 非叶子任务(`progress_readonly` 为 true)不能直接设进度,要改它的子任务
|
|
- `task_set_assignees` 是**替换**不是追加,同 `module_set_members` 的注意事项
|
|
|
|
任务删除与跨模块转移不在本端点。
|