Files
yixiong-claude-marketplace/plugins/huanxi/skills/huanxi-leader/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

64 lines
2.4 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: huanxi-leader
description: "寰汐负责人日报:查看下属汇报情况、起草模块汇总、批量提交。当用户说「写负责人日报」「模块汇总」「我下属今天报了什么」「谁还没交」时使用。"
---
# 寰汐负责人日报
**前置:先读 `huanxi-shared`。**
与员工日报是两件事:员工日报是「我做了什么」的条目列表,负责人日报是「我这个模块
整体怎么样」的一段整体内容,**结构不同、接口不同,不要混用**。
---
## 标准流程
```
Step 1 leader_report_get(date?, module_ids?)
↓ 一次拿全每个模块的:进度、我这条汇总的现状、**未提交成员名单**、
以及成员们当天各自报了什么(member_reports
↓ 起草素材全在这里,不需要再调别的工具取
Step 2 基于 member_reports 归纳,为每个模块起草一段汇总
↓ 归纳而非罗列——把「三个人各自做了什么」写成「这个模块本周推进到哪」
↓ 有 pending_members 时提醒用户:这几位还没交,汇总可能不完整
Step 3 leader_report_save(entries=[{module_id, content}, ...])
Step 4 ⏸ 展示全部草稿,等待用户明确确认
Step 5 leader_report_submit(module_ids=[...])
↓ 不传 module_ids 则提交我负责的全部(自动跳过已提交与内容为空的)
```
---
## 「谁还没交」
这是最高频的单点问题,`leader_report_get``pending_members` 直接回答,
不需要遍历成员逐个查。
想看全公司范围而不只是我负责的模块,那是管理端的 `report_pending`(见
`huanxi-admin`),个人端拿不到。
---
## 撤回
```
leader_report_withdraw(module_ids=[...]) → 变回草稿,仅当天可撤
```
---
## 几条容易踩的
- **一个模块一条**`module_id` 是主键的一部分,同一模块当天只有一条汇总,
重复保存是覆盖不是新增。
- **内容为空不能提交**:批量提交会静默跳过空内容的模块并在返回里说明,
不要以为「提交成功」就等于每个模块都交了——看返回的 `skipped_empty_count`
- **不要前置校验下属是否交齐**:负责人日报不依赖员工日报的提交状态,
下属没交也能交自己的汇总(这是有意设计,避免一个人拖住整条链)。
- 只有 `leader` 角色的模块才会出现在这里;`reviewer` 不写负责人日报。