协作办公
准备每日站会/例会更新时:检测并征得同意拉取 GitHub…
适用于开发者准备 daily standup/scrum update/team sync 时,通过交互式问答结合 GitHub/Jira/Claude Code 活动,快速生成结构化 Markdown 更新。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
准备每日站会/例会更新时:检测并征得同意特定
解决思路
- 通过交互式面试生成每日 standup/meeting update;不要假设工具已配置,先询问。
- Phase 1:检测并主动提供集成;检查 Claude Code history、gh CLI、jira CLI;Claude Code → 拉取昨天 session digest,用户通过 multiSelect 选择相关项;GitHub/Jira → 询问用户,获批后拉取;在面试前立即拉取数据。
- Phase 2:带洞察进行面试;先展示已拉取数据作为上下文;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:生成更新;合并面试答案与工具数据;格式化为干净 Markdown;展示给用户。
- 静默检测可用集成:抑制错误,不向用户显示。
- 检测 Claude Code History:`~/.claude/projects` 目录存在且有 `.jsonl` 文件。
- 检测 GitHub CLI:`gh auth status` 成功。
- 检测 Jira CLI:`jira` 命令存在。
- 检测 Atlassian MCP:`mcp__atlassian__*` 工具可用。
- 检测 Git:在 git 仓库内。
- Claude Code 用户在本阶段所有问题使用 `AskUserQuestionTool`。
- 如果 `HAS_GH` 或 `HAS_GIT`,询问“I detected you have GitHub/Git configured. Want me to pull your recent activity (commits, PRs, reviews)?”;选项为“Yes, pull the info”/“No, I'll provide everything manually”。
- 若用户同意 GitHub/Git,询问“Which repositories/projects should I check?”;选项为“Just the current directory”(若在 git 仓库中)或“I'll list the repos”,让用户提供列表。
- 如果 `HAS_JIRA_CLI` 或 `HAS_ATLASSIAN_MCP`,询问“I detected you have Jira configured. Want me to pull your tickets?”;选项为“Yes, pull my tickets”/“No, I'll provide everything manually”。
- 若批准 GitHub/Git,对每个批准的 repo 拉取用户自昨天以来的 commits。
- 对每个批准的 repo 拉取用户 opened/merged 的 PRs。
- 对每个批准的 repo 拉取用户完成的 reviews。
- 若批准 Jira,拉取分配给用户且在最近 24h 更新的 tickets。
- 存储拉取结果,作为 Phase 2 面试的上下文。
- 检测 Claude Code 历史:运行 `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?”;选项为“Yes, pull my Claude Code sessions”/“No, I have everything I need”。
- 若用户同意,运行 digest script:`python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json`。
- 使用 `AskUserQuestionTool` 并设置 `multiSelect: true`,展示昨天的 Claude Code sessions,让用户选择与 standup 相关的项。
- 让用户排除个人项目或实验,只选工作相关 sessions。
- 不要运行 digest script 当:用户明确说“No”到 Claude Code history。
- 不要运行 digest script 当:用户说会手动提供全部信息。
- 不要运行 digest script 当:`~/.claude/projects` 目录不存在。
- 如果 digest script 失败,回退:静默跳过 Claude Code 集成,继续面试。
- digest script 常见问题:Python 未安装、昨天没有 sessions、权限错误。
- 不要因为 digest script 失败而阻塞 standup 流程;该脚本是补充,不是必需。
- Phase 2 中,Claude Code 用户使用 `AskUserQuestionTool` 进行面试,以获得结构化选项的更好 UX。
- 使用已拉取数据作为上下文,让问题更智能。
- Question 1 Yesterday:如果拉取了数据,先展示发现内容,例如 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?”。
- 如果用户回答模糊,追问“Can you give more details about X?”或“Did you complete anything specific?”。
- Question 2 Today:问“What will you work on today?”;选项为用户自由文本输入。
- 如果拉取了 Jira 数据,提示“I see you have these tickets assigned: PROJ-123... PROJ-456... Will you work on any of these today?”。
- Question 3 Blockers:问“Do you have any blockers or impediments?”;选项为“No blockers”/“Yes, I have blockers”,若选 Yes 则追问细节。
- Question 4 Topics for Discussion:问“Any topic you want to bring up at the end of the daily?”;选项为“No, nothing to discuss”/“Yes”,若选 Yes 则追问细节。
- Topics 示例:需要输入的技术决策、与其他团队对齐、优先级问题、公告或团队信息。
- Phase 3:合并所有信息为干净 Markdown。
- 使用标题 `# Daily Update - [DATE]`。
- `## Yesterday`:包含面试项,以及如果拉取过的 GitHub/Jira 项。
- `## Today`:包含面试项。
- `## Blockers`:包含 blockers 或“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 或“None”。
- 底部添加 `---` 和 `*Links:*`:包含 PR links、Ticket links。
- Core Principle:面试为主 — 工具补充,不能替代人的上下文。
- Core Principle:访问前先获得同意 — 从任何集成拉取前始终询问。
- Core Principle:上下文感知问题 — 在面试中展示已拉取数据以触发记忆,例如“I see you merged PR #123...”。
- Quick Reference Phase 1:Detect & Offer — 检查 gh/jira/claude history、询问用户、拉取数据;工具为 Bash (silent)、AskUserQuestionTool。
- Quick Reference Phase 2:Interview — 带洞察地问 4 个问题;工具为 AskUserQuestionTool。
- Quick Reference Phase 3:Generate — 格式化 Markdown;工具为 Output text。
- Claude Code only:使用 `AskUserQuestionTool` 工具进行结构化问题。
- Digest script 获取昨天 sessions 为 JSON:`python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json`。
- Digest script 获取今天 sessions:`python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --date today --format json`。
- Digest script 过滤特定 project:`python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json`。
- Anti-pattern:不要未经询问运行 gh/jira;始终先问,让用户选择 repos。
- Anti-pattern:不要假设当前目录是唯一项目;问“Which projects are you working on?”。
- Anti-pattern:不要因为有工具数据就跳过面试;工具捕获 WHAT,错过 WHY 和上下文(research、meetings、planning);面试为主,工具补充。
- Anti-pattern:不要在所有 4 个问题回答前生成更新;可能有关键 blocker 或讨论主题改变叙述;完成面试后再生成。
- Anti-pattern:不要包含原始 commit messages;commit messages 常晦涩(“fix”、“wip”)且不能讲故事;总结为人类可读结果。
- Anti-pattern:不要面试后才要数据;在面试中展示洞察使问题更聪明;先拉数据,再带上下文面试。
- NEVER:不要假设工具已配置 — 很多开发者安装了 gh 但未认证,或 jira CLI 指向错误实例。
- NEVER:不要跳过“Topics for Discussion”问题 — 这常是 standup 最有价值且工具无法捕获的部分。
- NEVER:不要生成超过 15 个 bullets — standup 应 <2 分钟读完;过长更新会失去听众。
- NEVER:不要包含 ticket/PR 编号而没有上下文 — “PROJ-123”没有意义;始终包含标题或摘要。
- NEVER:不要从用户未明确批准的 repos 拉取数据 — 即使能看到其他 repos,也尊重边界。
适用边界 · 注意事项
- 用户拒绝某集成、表示会手动提供全部信息,或 `~/.claude/projects` 不存在时,不适用自动拉取 Claude Code 历史/运行 digest script。
- 工具未配置或未认证(如 `gh` 未认证、`jira` CLI 指向错误实例),或涉及敏感项目、个人仓库、未明确批准的 repos 时,不适用自动访问,应先询问并限定范围。
- 四个问题未完成、无法提供必要上下文前,不适用直接生成更新;也不应跳过 Topics for Discussion 或生成超过 15 个 bullets。