daily-meeting-update
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDaily Meeting Update
每日会议更新
Generate a daily standup/meeting update through an interactive interview. Never assume tools are configured—ask first.
通过交互式访谈生成每日站会/会议更新内容。切勿假设工具已配置完成——务必先询问用户。
Workflow
工作流程
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 │
└─────────────────────────────────────────────────────┘START
│
▼
┌─────────────────────────────────────────────────────┐
│ 阶段1:检测并提供集成选项 │
│ • 检查:Claude Code历史记录?gh CLI?jira CLI? │
│ • Claude Code → 提取昨日会话摘要 │
│ → 用户通过多选功能选择相关项 │
│ • GitHub/Jira → 询问用户,获许后提取数据 │
│ • 立即提取数据(访谈前完成) │
├─────────────────────────────────────────────────────┤
│ 阶段2:带上下文的访谈 │
│ • 展示提取的数据作为上下文 │
│ • 昨日工作:“我看到你合并了PR #123,还有其他工作吗?”│
│ • 今日计划:你今天将开展哪些工作? │
│ • 遇到的阻碍:有没有什么问题阻碍你推进工作? │
│ • 讨论议题:会议末尾有什么需要讨论的内容吗? │
├─────────────────────────────────────────────────────┤
│ 阶段3:生成更新内容 │
│ • 结合访谈回答与工具提取的数据 │
│ • 格式化为简洁的Markdown │
│ • 呈现给用户 │
└─────────────────────────────────────────────────────┘Phase 1: Detect & Offer Integrations
阶段1:检测并提供集成选项
Step 1: Silent Detection
步骤1:静默检测
Check for available integrations silently (suppress errors, don't show to user):
| Integration | Detection |
|---|---|
| Claude Code History | |
| GitHub CLI | |
| Jira CLI | |
| Atlassian MCP | |
| Git | Inside a git repository |
静默检查可用的集成(抑制错误,不向用户展示):
| 集成工具 | 检测方式 |
|---|---|
| Claude Code历史记录 | 存在 |
| GitHub CLI | |
| Jira CLI | |
| Atlassian MCP | 存在 |
| Git | 当前处于git仓库目录内 |
Step 2: Offer GitHub/Jira Integrations (if available)
步骤2:提供GitHub/Jira集成选项(如果可用)
Claude Code users: Usetool for all questions in this phase.AskUserQuestionTool
GitHub/Git:
If or :
HAS_GHHAS_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"If yes:
"Which repositories/projects should I check?"
Options:
- "Just the current directory" (if in a git repo)
- "I'll list the repos" → user provides listJira:
If or :
HAS_JIRA_CLIHAS_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"Claude Code用户注意:此阶段的所有问题请使用工具。AskUserQuestionTool
GitHub/Git:
如果检测到或:
HAS_GHHAS_GIT“我检测到你已配置GitHub/Git。是否需要我提取你近期的活动记录(提交、PR、评审)?”
选项:
- “是,提取相关信息”
- “否,我将手动提供所有内容”如果用户选择是:
“我需要检查哪些仓库/项目?”
选项:
- “仅当前目录”(如果处于git仓库内)
- “我会列出仓库” → 用户提供仓库列表Jira:
如果检测到或:
HAS_JIRA_CLIHAS_ATLASSIAN_MCP“我检测到你已配置Jira。是否需要我提取你的工单信息?”
选项:
- “是,提取我的工单”
- “否,我将手动提供所有内容”Step 3: Pull GitHub/Jira Data (if approved)
步骤3:提取GitHub/Jira数据(如果获许)
GitHub/Git — For each approved repo:
- Commits by user since yesterday
- PRs opened/merged by user
- Reviews done by user
Jira — Tickets assigned to user, updated in last 24h
Key insight: Store results to use as context in Phase 2 interview.
GitHub/Git — 针对每个获许的仓库:
- 用户昨日以来的提交记录
- 用户打开/合并的PR
- 用户完成的评审
Jira — 过去24小时内更新的、分配给用户的工单
关键提示:保存提取结果,作为阶段2访谈的上下文。
Step 4: Offer Claude Code History
步骤4:提供Claude Code历史记录选项
This integration captures everything you worked on with Claude Code — useful for recalling work that isn't in git or Jira.
Detection:
bash
ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1If Claude Code history exists, ask:
"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"If yes, run the digest script:
bash
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format jsonThen present sessions with multiSelect:
Use with to let user pick relevant items:
AskUserQuestionToolmultiSelect: 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)"Key insight: User selects which sessions are work-related. Personal projects or experiments can be excluded.
Do NOT run digest script when:
- User explicitly says "No" to Claude Code history
- User says they'll provide everything manually
- directory doesn't exist
~/.claude/projects
If digest script fails:
- Fallback: Skip Claude Code integration silently, proceed with interview
- Common issues: Python not installed, no sessions from yesterday, permission errors
- Do NOT block the standup flow — the script is supplemental, not required
此集成可捕获你在Claude Code上的所有工作内容——有助于回忆未记录在git或Jira中的工作。
检测方式:
bash
ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1如果存在Claude Code历史记录,询问用户:
“我还可以提取你昨日的Claude Code会话历史,这有助于回忆未记录在git/Jira中的工作(研究、调试、规划)。是否需要我提取?”
选项:
- “是,提取我的Claude Code会话记录”
- “否,我已有所需的全部内容”如果用户选择是,执行摘要脚本:
bash
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json然后通过多选功能展示会话记录:
使用工具并开启,让用户选择相关项:
AskUserQuestionToolmultiSelect: true“以下是你昨日的Claude Code会话记录。请选择与站会相关的内容:”
选项(可多选):
- “修复认证bug(backend-api)”
- “实现OAuth流程(backend-api)”
- “更新首页样式(frontend-app)”
- “研究支付提供商(docs)”关键提示:用户可选择哪些会话与工作相关,个人项目或实验可排除在外。
以下情况请勿执行摘要脚本:
- 用户明确拒绝提取Claude Code历史记录
- 用户表示将手动提供所有内容
- 目录不存在
~/.claude/projects
如果摘要脚本执行失败:
- 备选方案:静默跳过Claude Code集成,继续访谈流程
- 常见问题:未安装Python、昨日无会话记录、权限错误
- 请勿中断站会流程——该脚本仅作为补充,非必需项
Phase 2: Interview (with insights)
阶段2:带上下文的访谈
Claude Code users: Usetool to conduct the interview. This provides a better UX with structured options.AskUserQuestionTool
Use pulled data as context to make questions smarter.
Claude Code用户注意:请使用工具开展访谈,这能提供更优的结构化交互体验。AskUserQuestionTool
利用提取的数据作为上下文,让问题更贴合实际。
Question 1: Yesterday
问题1:昨日工作
If data was pulled, show it first:
"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?"If no data pulled:
"What did you work on yesterday/since the last standup?"If user response is vague, ask follow-up:
- "Can you give more details about X?"
- "Did you complete anything specific?"
如果已提取数据,先展示数据:
“我从你的活动记录中发现:
- 合并了PR #123:修复登录超时问题
- 在backend-api中有3次提交
- 评审了PR #456(已批准)
还有哪些昨日的工作是我未提取到的?”如果未提取数据:
“你昨日/上次站会以来做了哪些工作?”如果用户回答模糊,可追问:
- “你能详细说说X相关的工作吗?”
- “你有没有完成什么具体的任务?”
Question 2: Today
问题2:今日计划
"What will you work on today?"
Options:
- [Text input - user types freely]If Jira data was pulled, you can suggest:
"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?"“你今天将开展哪些工作?”
选项:
- [文本输入 - 用户自由填写]如果已提取Jira数据,可给出建议:
“我看到你有以下工单待处理:
- PROJ-123:实现OAuth流程(进行中)
- PROJ-456:修复支付bug(待处理)
你今天会处理这些工单吗?”Question 3: Blockers
问题3:遇到的阻碍
"Do you have any blockers or impediments?"
Options:
- "No blockers"
- "Yes, I have blockers" → follow-up for details“你有没有遇到任何阻碍或障碍?”
选项:
- “没有阻碍”
- “有,我遇到了阻碍” → 追问细节Question 4: Topics for Discussion
问题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“站会末尾有什么需要讨论的议题吗?”
选项:
- “没有,无讨论内容”
- “有” → 追问细节
议题示例:
- 需要团队输入的技术决策
- 与其他团队的协作对齐
- 关于优先级的问题
- 团队公告或信息同步Phase 3: Generate Update
阶段3:生成更新内容
Combine all information into clean Markdown:
markdown
undefined将所有信息整合成简洁的Markdown格式:
markdown
undefinedDaily Update - [DATE]
每日更新 - [日期]
Yesterday
昨日工作
- [Items from interview]
- [Items from GitHub/Jira if pulled]
- [访谈获取的内容]
- [如果提取了数据,补充GitHub/Jira相关项]
Today
今日计划
- [Items from interview]
- [访谈获取的内容]
Blockers
遇到的阻碍
- [Blockers or "No blockers"]
- [阻碍内容或“无阻碍”]
PRs & Reviews (if pulled from GitHub)
PR与评审(如果从GitHub提取了数据)
- [PRs opened]
- [PRs merged]
- [Reviews done]
- [已打开的PR]
- [已合并的PR]
- [已完成的评审]
Jira (if pulled from Jira)
Jira工单(如果从Jira提取了数据)
- [Tickets updated]
- [已更新的工单]
Topics for Discussion
讨论议题
- [Topics or "None"]
Links:
- [PR links]
- [Ticket links]
---- [议题内容或“无”]
链接:
- [PR链接]
- [工单链接]
---Core Principles
核心原则
- Interview is primary — Tools supplement, they don't replace human context
- Consent before access — Always ask before pulling from any integration
- Context-aware questions — Show pulled data during interview to trigger memory ("I see you merged PR #123...")
- 访谈优先 —— 工具仅作为补充,不能替代人工提供的上下文
- 获取许可后再访问 —— 提取任何集成工具的数据前务必先询问用户
- 问题贴合上下文 —— 访谈时展示提取的数据,帮助用户回忆(“我看到你合并了PR #123...”)
Quick Reference
快速参考
| Phase | Action | Tool |
|---|---|---|
| 1. Detect & Offer | Check gh/jira/claude history, ask user, pull data | Bash (silent), AskUserQuestionTool* |
| 2. Interview | Ask 4 questions with insights | AskUserQuestionTool* |
| 3. Generate | Format Markdown | Output text |
*Claude Code only: Use tool for structured questions.
AskUserQuestionTool| 阶段 | 操作 | 工具 |
|---|---|---|
| 1. 检测并提供 | 检查gh/jira/claude历史记录,询问用户,提取数据 | Bash(静默执行), AskUserQuestionTool* |
| 2. 访谈 | 结合上下文提出4个问题 | AskUserQuestionTool* |
| 3. 生成 | 格式化为Markdown | 输出文本 |
*仅Claude Code用户:使用工具进行结构化提问。
AskUserQuestionToolClaude Code Digest Script
Claude Code摘要脚本
bash
undefinedbash
undefinedGet yesterday's sessions as JSON
获取昨日的会话记录(JSON格式)
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format 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
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
---python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json
---Example Session
会话示例
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]Claude: “让我们准备你的每日站会更新!我检测到你已配置GitHub,是否需要提取你近期的活动记录?”
用户: “是”
Claude: “我需要检查哪些仓库?”
用户: “backend-api和frontend-app”
[Claude静默提取GitHub数据]
Claude: “我还可以提取你昨日的Claude Code会话记录,是否需要提取?”
用户: “是”
[Claude执行摘要脚本,获取5条会话记录]
Claude: “以下是你昨日的Claude Code会话记录。请选择与站会相关的内容:”
☑ 修复认证超时bug(backend-api)
☑ 实现OAuth流程(backend-api)
☐ 更新个人博客(blog) - [用户取消选择个人项目]
☑ 研究支付提供商(docs)
☐ 调试测试失败问题(experiments)
用户: [选择3条相关内容]
Claude: “我从你的活动记录中发现:
- 合并了PR #120:修复登录超时
- 打开了PR #125:feat: 添加OAuth流程
- 评审了PR #123(已批准)、PR #456(要求修改)
- 在backend-api中有5次提交
- [来自Claude Code] 修复认证超时bug
- [来自Claude Code] 实现OAuth流程
- [来自Claude Code] 研究支付提供商
还有哪些昨日的工作是我未提取到的?”
用户: “没有,这些已经涵盖了”
Claude: “你今天将开展哪些工作?”
用户: “继续开发OAuth功能并部署到预发布环境”
Claude: “有没有遇到任何阻碍?”
用户: “没有”
Claude: “站会末尾有什么需要讨论的议题吗?”
用户: “有,我想讨论新支付模块的架构”
[Claude生成更新内容]Output Example
输出示例
markdown
undefinedmarkdown
undefinedDaily Update - 2026-01-22
每日更新 - 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)
- 开发认证功能
- 研究支付提供商
- 合并了PR #120(修复:登录超时)
- 打开了PR #125(新增:添加OAuth流程)
Today
今日计划
- Continue OAuth feature
- Deploy to staging
- 继续开发OAuth功能
- 部署到预发布环境
Blockers
遇到的阻碍
- No blockers
- 无阻碍
PRs & Reviews
PR与评审
- Opened: PR #125 - feat: add OAuth flow
- Merged: PR #120 - fix: login timeout
- Reviews: PR #123 (approved), PR #456 (changes requested)
- 已打开: PR #125 - 新增:添加OAuth流程
- 已合并: PR #120 - 修复:登录超时
- 已评审: PR #123(已批准)、PR #456(要求修改)
Topics for Discussion
讨论议题
- Architecture of the new payments module
Links:
---Anti-Patterns
反模式
| Avoid | Why (Expert Knowledge) | Instead |
|---|---|---|
| Run gh/jira without asking | Users may have personal repos visible, or be in a sensitive project context they don't want exposed | Always ask first, let user choose repos |
| Assume current directory is the only project | Developers often work on 2-5 repos simultaneously (frontend, backend, infra) | Ask "Which projects are you working on?" |
| Skip interview even with tool data | Tools capture WHAT happened but miss WHY and context (research, meetings, planning) | Interview is primary, tools supplement |
| Generate update before all 4 questions | User might have critical blocker or discussion topic that changes the narrative | Complete interview, then generate |
| Include raw commit messages | Commit messages are often cryptic ("fix", "wip") and don't tell the story | Summarize into human-readable outcomes |
| Ask for data after interview | Showing insights during interview makes questions smarter ("I see you merged PR #123, anything else?") | Pull data first, then interview with context |
| 需避免的做法 | 原因(专业经验) | 正确做法 |
|---|---|---|
| 未询问就提取gh/jira数据 | 用户可能有个人仓库可见,或处于敏感项目环境中,不希望数据被暴露 | 务必先询问用户,让用户选择要提取的仓库 |
| 假设当前目录是唯一的项目 | 开发者通常同时处理2-5个仓库(前端、后端、基础设施) | 询问“你正在处理哪些项目?” |
| 即使有工具数据也跳过访谈 | 工具只能记录“做了什么”,但无法记录“为什么做”及相关上下文(研究、会议、规划) | 访谈优先,工具仅作为补充 |
| 未完成4个问题就生成更新内容 | 用户可能有重要的阻碍或讨论议题,会改变更新内容的整体叙事 | 完成所有访谈问题后再生成更新 |
| 包含原始提交信息 | 提交信息通常晦涩难懂(如“fix”“wip”),无法完整呈现工作内容 | 总结为易于理解的成果 |
| 访谈后才提取数据 | 访谈时展示提取的上下文能让问题更贴合实际(“我看到你合并了PR #123,还有其他工作吗?”) | 先提取数据,再结合上下文开展访谈 |
NEVER
绝对禁止
- NEVER assume tools are configured — Many devs have gh installed but not authenticated, or jira CLI pointing to wrong instance
- NEVER skip the "Topics for Discussion" question — This is often the most valuable part of standup that tools can't capture
- NEVER generate more than 15 bullets — Standup should be <2 minutes to read; long updates lose the audience
- NEVER include ticket/PR numbers without context — "PROJ-123" means nothing; always include title or summary
- NEVER pull data from repos user didn't explicitly approve — Even if you can see other repos, respect boundaries
- 绝对不要假设工具已配置完成 —— 很多开发者安装了gh但未认证,或jira CLI指向错误的实例
- 绝对不要跳过“讨论议题”问题 —— 这通常是站会中最有价值的部分,工具无法捕获相关内容
- 绝对不要生成超过15个项目符号 —— 站会内容应在2分钟内读完;过长的更新会失去受众注意力
- 绝对不要只包含工单/PR编号而无上下文 —— “PROJ-123”毫无意义;务必附带标题或摘要
- 绝对不要提取用户未明确批准的仓库数据 —— 即使你能看到其他仓库,也要尊重用户边界