Files
yixiong-claude-marketplace/plugins/huanxi/skills/huanxi-org/SKILL.md
T
SkyJourneyandClaude Opus 5 4ce9a92013 feat(huanxi): 拆为个人端 / 管理端两个插件,技能全面对齐寰汐 v2
寰汐 v2 上线双 MCP(个人端 /mcp/ 与管理端 /admin-mcp/),两条端点是**两条独立的
信任边界**——Token 前缀不同、工具集不同、视角不同(管理端看全量、个人端只看我参与的)。
一个插件塞两套会让普通员工的客户端里出现他根本调不动的管理工具,因此拆成两个插件,
按角色各装各的。

## huanxi(个人端,全体员工)

7 个技能:shared / report / leader / task / issue / meeting / org

- 新增 `issue` `meeting`——v2 的议题域与会议域(M6v2 会议×议题解耦后的产物)
- **删除 `weekly`**——v2 没有 weekly_report 表,周报已并入报告体系
- 各技能重写为**流水线定义**而非使用说明:写明工具调用顺序、ID 在步骤间怎么传、
  人工确认节点落在哪。「禁止自动提交」这条 v1 已验证的硬约束保留
- 删掉 `references/` 拆分文件——v2 技能自包含

## huanxi-admin(管理端,仅后台管理员)

4 个技能:admin-shared / admin-report / admin-module / admin-ops

MCP server key 取 `huanxi-admin`(与个人端的 `huanxi` 不同名),否则两插件并存时
会键冲突。

## 缓存目录按信任边界隔离

`~/.claude/huanxi-cache/` 下分 `personal/` `admin/` `dict/`:前两者视角不同,
混用会越权展示或数据错乱;`dict/` 与身份无关可共享。业务数据(任务/日报/会议/议题)
**显式声明不缓存**——v1 没写这条,Agent 会自行决定缓存然后拿到陈旧数据。

## 源码单一真相不在本仓库

技能源码在寰汐仓库 `skills/`,与 MCP docstring 同仓库同 commit——签名一改,
技能与工具在同一次改动里更新,从结构上消除跨仓库漂移(本仓库记忆
`feedback_plugin_dev.md` 记录的 4 类漂移覆盖全部 6 个 v1 技能,正是这个病)。
本仓库退化为**分发壳**,只接收 `python skills/sync_marketplace.py` 的产物,不手工编辑。

寰汐侧有 CI 守卫:技能里出现的每个工具名必须存在于实际注册表、个人端技能不得
指导调用管理端独有工具、不得硬编码状态字面量。

## 本分支不合 main

插件配置的域名此刻跑的还是 v1,合进 main 会通过自动更新推给已安装用户,
他们的技能会去调 v1 上不存在的工具。合并前置条件写在 CLAUDE.md「已发布插件」节。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019Vyeia9k43dVaUFNLo8Lny
2026-08-06 18:56:55 +08:00

2.6 KiB
Raw Blame History

name, description
name description
huanxi-org 寰汐组织与检索:查人、查部门、全局搜索、按标签反查、团队任务看板。当用户说「XX是谁」「这个部门有哪些人」「搜一下」「团队在忙什么」时使用。

寰汐组织与检索

前置:先读 huanxi-shared

本技能主要有两个职责:把名字解析成 ID 供其他技能使用,以及维护缓存


解析 ID

几乎所有写操作都要 ID。顺序是:先读缓存,未命中再调工具,拿到后写回缓存。

user_search(q="冯普")            姓名模糊搜 → 拿 id
user_search(ids=[...])           已知 id 批量取详情
module_query(role?)              我参与的模块(带 my_role
org_tree()                       组织架构树,含各部门成员姓名

user_search 结果里标注了 offboarding(离职观察期,不宜再派新活)与 inactive (已停用)——把人派给这两类之前先提醒用户。


全局检索

search(q="关键词")   一次返回六组:任务/模块/用户/标签/会议/议题,各组带总数

不确定某个东西叫什么、在哪个模块时先用它定位,拿到 id 再调对应的 *_get。 比逐个域去 query 快得多。

tag_related(tag_id)   按标签反查五个域的关联内容

标签是平级横切索引,同一个标签可以贴在用户/模块/任务/会议/议题任何一种上。 这个工具回答「打了这个标签的所有东西都有哪些」。


公告与报告

announcement_query(kind?, series_slug?, period_key?, ids?)

统一入口,覆盖系统周报、周度复盘、版本发布、运维简报、人工公告。 只返回你有权看的——报告按受众分档(全员/管理层/老板/本人),过滤在服务端完成, 查不到某条不代表它不存在。

想看某条内置报告的历次期次,传 series_slug;想要具体某期,加 period_key


团队看板

people_board()   按人聚合的跨模块任务负载,**含 0 任务的人**

「我团队现在都在忙什么」「谁比较闲」用它,比逐个 task_query 高效得多。 含 0 任务的人是有意的——那正是「谁完全没有负载」这个问题的答案。


缓存维护

本技能负责的三份缓存(详见 huanxi-shared):

文件 来源 TTL
personal/me.json whoami 永久
personal/users.json user_search 24h
personal/my-modules.json module_query 24h
admin/org-tree.json org_tree 24h

用户说「刷新一下」「组织变了」时,删掉对应文件重新拉取即可。