参数/描述修正: - report-submit.md:report_submit → report_submit_item - huanxi-shared 全局约定:同步修正 report_submit 工具名 - weekly-draft.md:多模块循环示例 week → week_number(weekly_report_save 正确参数名) - 工具索引补全参数:task_list_mine/people_get_board/user_list/weekly_report_submit - resolve-ids.md:澄清 feishu_user_id 与 feishu_open_id 是两个不同字段 新增工具调用规范: - huanxi-shared 全局约定第 6 条:以 MCP 工具实际定义为准 - 5 个 skill 文件前置区域统一加 ⚠️ 提示引用第 6 条 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
134 lines
4.8 KiB
Markdown
134 lines
4.8 KiB
Markdown
---
|
||
name: huanxi-weekly
|
||
description: "寰汐周报工作流(仅限模块负责人):查看本周周报状态(+check)、基于本周负责人日报 AI 汇总草稿(+draft)、提交周报(+submit)、撤回(+withdraw)。当用户说"写周报"、"提交周报"、"本周总结"、"周报进度"时触发。"
|
||
---
|
||
|
||
# 寰汐周报(仅限模块负责人)
|
||
|
||
**前置条件:先 Read `../huanxi-shared/SKILL.md`(缓存规则 + TTL 策略)**
|
||
|
||
> ⚠️ **工具调用规范**:执行任何 `mcp__huanxi__*` 调用前,以工具实际注册的参数名和类型为准,本文档示例仅供工作流引导(见 shared 全局约定第 6 条)。
|
||
|
||
---
|
||
|
||
## 权限说明
|
||
|
||
**周报只有模块负责人(`my_role == 'leader'`)才需要提交。**
|
||
|
||
若用户不是任何模块的负责人:
|
||
- 告知:"您目前不是任何模块的负责人,无需提交周报。"
|
||
- 建议:若有疑问,可联系管理员确认模块角色。
|
||
|
||
---
|
||
|
||
## ISO 周数规范(重要)
|
||
|
||
寰汐周报使用 **ISO 8601 标准**:
|
||
- `year` 字段存 **ISO year**(不是日历年)
|
||
- 12月底/1月初可能跨年:如 2025-12-29 的 ISO year = 2026(第1周)
|
||
- Python 获取:`date.isocalendar()` → `(iso_year, week, weekday)`
|
||
|
||
**当前日期 → ISO 周号计算示例:**
|
||
- 2026-04-13(周一)→ year=2026, week=16
|
||
|
||
---
|
||
|
||
## 标准工作流
|
||
|
||
```
|
||
Step 0: 确认负责人身份和模块
|
||
→ Read ~/.claude/huanxi-cache/modules.json(24h 缓存)
|
||
→ 若过期:mcp__huanxi__module_list() → 更新缓存
|
||
→ 筛选 my_role == 'leader' 的模块列表
|
||
→ 若列表为空:告知用户无需提交周报,流程终止
|
||
→ 若有多个 leader 模块:询问"要提交哪些模块的周报?"
|
||
|
||
Step 1: 确定当前 ISO 周号
|
||
→ 根据今日日期计算 (iso_year, iso_week)
|
||
→ 告知:第 iso_week 周(周一 ~ 周日 日期范围)
|
||
|
||
Step 2: 批量拉取周报草稿
|
||
→ mcp__huanxi__weekly_report_get_batch(
|
||
year=iso_year,
|
||
week=iso_week,
|
||
module_ids=[<leader 模块的 ID 列表>]
|
||
)
|
||
→ 返回:各模块的现有草稿状态
|
||
|
||
Step 3: 逐日拉取本周负责人日报
|
||
→ 计算本周日期范围(周一到今日,YYYY-MM-DD 格式列表)
|
||
→ 对每个日期逐一调用:
|
||
mcp__huanxi__leader_report_get_batch(
|
||
date=<单个日期>,
|
||
module_ids=[<leader 模块的 ID 列表>]
|
||
)
|
||
→ 汇总所有日期的返回数据
|
||
→ 展示:本周每日负责人日报记录(含各日进展摘要 + 下属提交情况)
|
||
|
||
Step 4: 询问是否 AI 汇总
|
||
→ 展示本周负责人日报数据后,询问:
|
||
"是否需要 AI 根据本周负责人日报自动生成周报草稿?"
|
||
→ 用户同意 → AI 基于 leader_report_batch 起草:
|
||
· content:本周模块整体进展总结
|
||
· next_week_plan:下周模块工作计划
|
||
→ 展示草稿,供用户审阅和修改
|
||
→ 用户拒绝 → 引导用户手动填写本周总结和下周计划
|
||
|
||
Step 5: 逐模块保存草稿
|
||
→ 详见 references/weekly-draft.md
|
||
→ mcp__huanxi__weekly_report_save(module_id, year, week_number, content, next_week_plan)
|
||
|
||
Step 6: 确认并提交
|
||
→ 展示所有模块最终内容,等待用户明确确认("确认"/"提交"/"好的"等)
|
||
→ ⚠️ 未收到确认前,禁止调用 weekly_report_submit
|
||
→ mcp__huanxi__weekly_report_submit(module_id)
|
||
```
|
||
|
||
---
|
||
|
||
## Shortcuts
|
||
|
||
| 指令 | 说明 |
|
||
|------|------|
|
||
| `+check` | 查看本周周报状态(草稿/已提交) |
|
||
| [`+draft`](references/weekly-draft.md) | 基于本周负责人日报 AI 生成草稿 |
|
||
| `+submit` | 提交周报(必须先确认) |
|
||
| `+withdraw` | 撤回已提交周报 |
|
||
|
||
---
|
||
|
||
## +check:查看本周状态
|
||
|
||
```
|
||
1. 确认 leader 模块列表(同 Step 0)
|
||
2. 若无 leader 模块:告知无需提交周报
|
||
3. mcp__huanxi__weekly_report_get_batch(year, week, module_ids)
|
||
4. 展示各模块周报状态:
|
||
- submitted:已提交,展示摘要
|
||
- draft:草稿中,展示已填内容
|
||
- empty:未填,建议运行 +draft
|
||
```
|
||
|
||
---
|
||
|
||
## +withdraw:撤回周报
|
||
|
||
```
|
||
1. 确认 leader 模块(从 modules.json 缓存中取)
|
||
2. 若有多个 leader 模块,询问要撤回哪个模块的周报
|
||
3. 告知撤回影响(状态变为草稿,可重新编辑),等待用户确认
|
||
4. mcp__huanxi__weekly_report_withdraw(module_id)
|
||
(默认撤回当周;如需撤回历史周:传 year + week_number)
|
||
5. 告知成功,可重新编辑后再次提交
|
||
```
|
||
|
||
---
|
||
|
||
## 关键约束
|
||
|
||
- **仅负责人可提交**:首先检查 `my_role == 'leader'`,非负责人直接告知无需操作
|
||
- **禁止自动提交**:`weekly_report_submit(module_id)` 前必须展示全部内容并等待用户确认
|
||
- **year 存 ISO year**:高频出错点,必须使用 `isocalendar()[0]`,不要用 `date.year`
|
||
- 每个模块独立提交,有多个模块时逐一处理
|
||
- 撤回后可重新编辑,不影响当前状态
|