mcpField
D
daily-meeting-update

daily-meeting-update

github.com/softaworks生产力2.6k4.0k 次安装34 周前更新
代码仓库

关于 daily-meeting-update

通过交互式访谈生成每日站会更新的 skill,面向需要整理昨日工作、今日计划和阻碍的团队成员。它可在获得同意后参考 GitHub、Jira 和 Claude Code 活动,并以 Markdown 汇总。

主要功能

  1. 01先检测集成并征求数据访问同意
  2. 02从 GitHub 和 Jira 获取近期活动
  3. 03可选读取 Claude Code 会话记录
  4. 04围绕昨日、今日、阻碍和讨论主题访谈
  5. 05结合活动上下文生成 Markdown 更新

适用场景

  1. 01准备每日站会的工作进展
  2. 02汇总多个仓库的提交、PR 和评审
  3. 03结合 Jira 工单回顾并安排工作
  4. 04从 Claude Code 会话中回忆非代码库工作

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/softaworks/agent-toolkit --skill daily-meeting-update

安装后在 Claude Code 中输入/daily-meeting-update确认已加载。

附带文件README.mdscripts/claude_digest.py

详细介绍

每日会议更新

通过交互式访谈生成每日站会/会议更新。切勿假设工具已配置——先询问。


工作流

START
  │
  ▼
┌─────────────────────────────────────────────────────┐
│ Phase 1: DETECT & OFFER INTEGRATIONS                │
│ • Check: Claude Code history? gh CLI? jira CLI?     │
│ • Claude Code → Pull yesterday's session digest     │
│   → User selects relevant items via multiSelect     │
│ • GitHub/Jira → Ask user, pull if approved          │
│ • Pull data NOW (before interview)                  │
├─────────────────────────────────────────────────────┤
│ Phase 2: INTERVIEW (with insights)                  │
│ • Show pulled data as context                       │
│ • Yesterday: "I see you merged PR #123, what else?" │
│ • Today: What will you work on?                     │
│ • Blockers: Anything blocking you?                  │
│ • Topics: Anything to discuss at end of meeting?    │
├─────────────────────────────────────────────────────┤
│ Phase 3: GENERATE UPDATE                            │
│ • Combine interview answers + tool data             │
│ • Format as clean Markdown                          │
│ • Present to user                                   │
└─────────────────────────────────────────────────────┘

阶段 1:检测并提供集成选项

步骤 1:静默检测

静默检查可用的集成**(抑制错误,不向用户显示)**:

集成检测方式
Claude Code History~/.claude/projects 目录存在且包含 .jsonl 文件
GitHub CLIgh auth status 执行成功
Jira CLI存在 jira 命令
Atlassian MCP有可用的 mcp__atlassian__* 工具
Git位于 Git 仓库内
步骤 2:提供 GitHub/Jira 集成选项(如果可用)

Claude Code 用户: 在此阶段的所有问题都使用 AskUserQuestionTool 工具。

GitHub/Git:

如果 HAS_GH 或 HAS_GIT:

"I detected you have GitHub/Git configured. Want me to pull your recent activity (commits, PRs, reviews)?"

Options:
- "Yes, pull the info"
- "No, I'll provide everything manually"

如果回答是:

"Which repositories/projects should I check?"

Options:
- "Just the current directory" (if in a git repo)
- "I'll list the repos" → user provides list

Jira:

如果 HAS_JIRA_CLI 或 HAS_ATLASSIAN_MCP:

"I detected you have Jira configured. Want me to pull your tickets?"

Options:
- "Yes, pull my tickets"
- "No, I'll provide everything manually"
步骤 3:拉取 GitHub/Jira 数据(如果获准)

GitHub/Git — 针对每个获准的仓库:

  • 用户从昨天起的提交
  • 用户创建/合并的 PR
  • 用户完成的审查

Jira — 分配给用户且在过去 24 小时内更新的工单

关键要点:保存结果,以便在阶段 2 的访谈中用作上下文。

步骤 4:提供 Claude Code History 集成选项

此集成会记录你使用 Claude Code 完成的所有工作——有助于回忆未记录在 git 或 Jira 中的工作。

检测:

ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1

如果存在 Claude Code 历史记录,询问:

"I can also pull your Claude Code session history from yesterday. This can help recall work that isn't in git/Jira (research, debugging, planning). Want me to check?"

Options:
- "Yes, pull my Claude Code sessions"
- "No, I have everything I need"

如果回答是,运行摘要脚本:

python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json

然后使用 multiSelect 显示会话:

使用 AskUserQuestionTool 并设置 multiSelect: true,让用户选择相关项目:

"Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"

Options (multiSelect):
- "Fix authentication bug (backend-api)"
- "Implement OAuth flow (backend-api)"
- "Update homepage styles (frontend-app)"
- "Research payment providers (docs)"

关键要点: 由用户选择哪些会话与工作相关。个人项目或实验可以排除。

以下情况不要运行摘要脚本:

  • 用户明确表示不使用 Claude Code 历史记录
  • 用户表示会手动提供所有信息
  • ~/.claude/projects 目录不存在

如果摘要脚本运行失败:

  • 回退方案:静默跳过 Claude Code 集成,继续访谈
  • 常见问题:未安装 Python、昨天没有会话、权限错误
  • 不要因此中断站会流程——该脚本仅用于辅助,并非必需

阶段 2:访谈(结合洞察)

Claude Code 用户: 使用 AskUserQuestionTool 工具进行访谈。通过结构化选项可提供更好的用户体验。

将拉取的数据用作上下文,让问题更有针对性。

问题 1:昨天

如果已拉取数据,先展示:

"Here's what I found from your activity:
- Merged PR #123: fix login timeout
- 3 commits in backend-api
- Reviewed PR #456 (approved)

Anything else you worked on yesterday that I missed?"

如果没有拉取数据:

"What did you work on yesterday/since the last standup?"

如果用户的回答含糊不清,请追问:

  • “能否详细说明一下 X?”
  • “你具体完成了什么吗?”
问题 2:今天
"What will you work on today?"

Options:
- [Text input - user types freely]

如果已拉取 Jira 数据,可以建议:

"I see you have these tickets assigned:
- PROJ-123: Implement OAuth flow (In Progress)
- PROJ-456: Fix payment bug (To Do)

Will you work on any of these today?"
问题 3:阻碍
"Do you have any blockers or impediments?"

Options:
- "No blockers"
- "Yes, I have blockers" → follow-up for details
问题 4:讨论主题
"Any topic you want to bring up at the end of the daily?"

Options:
- "No, nothing to discuss"
- "Yes" → follow-up for details

Examples of topics:
- Technical decision that needs input
- Alignment with another team
- Question about prioritization
- Announcement or info for the team

阶段 3:生成更新

将所有信息整理为清晰的 Markdown:

# Daily Update - [DATE]

## Yesterday
- [Items from interview]
- [Items from GitHub/Jira if pulled]

## Today
- [Items from interview]

## Blockers
- [Blockers or "No blockers"]

## PRs & Reviews (if pulled from GitHub)
- [PRs opened]
- [PRs merged]
- [Reviews done]

## Jira (if pulled from Jira)
- [Tickets updated]

## Topics for Discussion
- [Topics or "None"]

---
*Links:*
- [PR links]
- [Ticket links]

核心原则

  1. 访谈优先——工具仅用于补充,不能替代人工提供的上下文
  2. 先征得同意再访问——从任何集成拉取数据前都必须先询问
  3. 结合上下文提问——在访谈过程中展示拉取的数据以唤起记忆(“我看到你合并了 PR #123……”)

快速参考

阶段操作工具
1. 检测并提供选项检查 gh/jira/claude 历史记录,询问用户,拉取数据Bash(静默)、AskUserQuestionTool*
2. 访谈结合洞察提出 4 个问题AskUserQuestionTool*
3. 生成格式化 Markdown输出文本

*仅适用于 Claude Code:使用 AskUserQuestionTool 工具提出结构化问题。

Claude Code 摘要脚本
# Get yesterday's sessions as JSON
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json

# Get today's sessions
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --date today --format json

# Filter to specific project
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json

会话示例

Claude: "Let's prepare your daily! I detected GitHub configured. Want me to pull your recent activity?"
User: "Yes"

Claude: "Which repos should I check?"
User: "backend-api and frontend-app"

[Claude pulls GitHub data silently]

Claude: "I can also pull your Claude Code session history from yesterday. Want me to check?"
User: "Yes"

[Claude runs digest script, gets 5 sessions]

Claude: "Here are your Claude Code sessions from yesterday. Select the ones relevant to your standup:"
  ☑ Fix authentication timeout bug (backend-api)
  ☑ Implement OAuth flow (backend-api)
  ☐ Update personal blog (blog) - [user unchecks personal project]
  ☑ Research payment providers (docs)
  ☐ Debugging test failures (experiments)

User: [selects 3 relevant items]

Claude: "Here's what I found from your activity:
- Merged PR #120: fix login timeout
- Opened PR #125: feat: add OAuth flow
- Reviewed PR #123 (approved), PR #456 (changes requested)
- 5 commits in backend-api
- [From Claude Code] Fix authentication timeout bug
- [From Claude Code] Implement OAuth flow
- [From Claude Code] Research payment providers

Anything else you worked on yesterday that I missed?"
User: "No, that covers it"

Claude: "What will you work on today?"
User: "Continue the OAuth feature and deploy to staging"

Claude: "Any blockers?"
User: "No"

Claude: "Any topic to bring up at the end of the daily?"
User: "Yes, I want to discuss the architecture of the new payments module"

[Claude generates update]

输出示例

# Daily Update - 2026-01-22

## Yesterday
- Worked on authentication feature
- Research on payment providers
- Merged PR #120 (fix: login timeout)
- Opened PR #125 (feat: add OAuth flow)

## Today
- Continue OAuth feature
- Deploy to staging

## Blockers
- No blockers

## PRs & Reviews
- **Opened:** PR #125 - feat: add OAuth flow
- **Merged:** PR #120 - fix: login timeout
- **Reviews:** PR #123 (approved), PR #456 (changes requested)

## Topics for Discussion
- Architecture of the new payments module

---
*Links:*
- https://github.com/org/repo/pull/125
- https://github.com/org/repo/pull/120

反模式

避免原因(专家知识)替代做法
未经询问就运行 gh/jira用户可能有个人仓库处于可见状态,或正在处理不希望暴露的敏感项目务必先询问,让用户选择仓库
假设当前目录是唯一项目开发者通常会同时处理 2-5 个仓库(前端、后端、基础设施)询问“你正在处理哪些项目?”
即使有工具数据,也跳过访谈工具能记录发生了什么,却无法捕捉原因和背景(研究、会议、规划)以访谈为主,工具提供补充
未完成全部 4 个问题就生成更新用户可能有会改变叙述重点的关键阻塞问题或讨论主题完成访谈后再生成
包含原始提交消息提交消息往往晦涩难懂(“fix”“wip”),无法说明具体情况总结为易于理解的成果
访谈后再索取数据在访谈中展示洞察能让问题更有针对性(“我看到你合并了 PR #123,还有其他进展吗?”)先提取数据,再结合背景进行访谈

切勿

  • 切勿假设工具已配置 — 许多开发者安装了 gh,但尚未完成身份验证,或者 jira CLI 指向了错误的实例
  • 切勿跳过“讨论主题”问题 — 这往往是站会中最有价值的部分,而工具无法捕捉到这一点
  • 切勿生成超过 15 条要点 — 站会内容的阅读时间应少于 2 分钟;更新过长会让听众失去兴趣
  • 切勿不加说明地包含工单/PR 编号 — “PROJ-123”毫无意义;务必附上标题或摘要
  • 切勿从用户未明确批准的仓库提取数据 — 即使你能看到其他仓库,也要尊重边界

评论

支持 Markdown