用途
Google Spaces Updates 用于将团队更新发布到 Google Chat Space,通过 webhook 完成发送。它覆盖部署通知、Bug 修复、功能发布和提问等常见团队沟通场景。
主要能力
- 支持多种更新类型:deployment(部署后)、bugfix(修复 Bug 后)、feature(功能完成后)、question(需要团队输入时)、custom(其他情况)。
- 从项目目录下的 .claude/settings.json 读取配置,包括项目名称、仓库、团队 chat_webhook 和成员列表。
- 自动收集上下文:最近提交(git log --oneline -3)、当前分支(git branch --show-current)、变更文件(git diff --name-only HEAD~1)。
- 提供消息模板:部署、Bug 修复、功能完成、提问、自定义。
- 遵循 Google Chat 格式规则:使用 bold 表示强调(非 markdown 粗体),使用 italic 表示次要文本,换行正常生效,消息保持简洁并包含可操作链接。
使用方式
首次设置
运行 /google-spaces-updates setup,或手动创建 .claude/settings.json:
{ "project": { "name": "my-project", "repo": "github.com/org/my-project" }, "team": { "chat_webhook": "https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?key=KEY&token=TOKEN", "members": ["Deepinder", "Joshua", "Raquel"] } }
设置命令会询问 Google Spaces webhook URL、项目名称(或从 package.json/repo 检测)、团队成员(可选),然后创建配置文件,并在需要时将 .claude/ 加入 .gitignore。
发布更新
可用自然语言触发,例如:
- "Post deployment update to team"
- "Tell the team about the new feature"
- "Ask the team about the auth approach"
工作流程
- 检查项目设置:查找当前项目目录下的 .claude/settings.json。若未找到,询问用户是否设置,并需要团队 Google Space 的 webhook URL,然后按 templates/settings-template.json 创建文件。
- 确定更新类型:根据命令或上下文选择 deployment、bugfix、feature、question 或 custom。
- 收集上下文:获取最近提交、当前分支、变更文件,并结合对话中的信息(刚完成的内容、预览/生产 URL、相关文件路径、需要知晓的人)。
- 格式化消息:使用 templates/ 目录中的对应模板。
- 发布到 webhook:
curl -X POST "WEBHOOK_URL"
-H "Content-Type: application/json"
-d '{"text": "MESSAGE_HERE"}'
其中 WEBHOOK_URL 取自 .claude/settings.json 的 team.chat_webhook,MESSAGE_HERE 为格式化后的消息(注意转义引号)。
- 向用户确认:"Posted update to team chat: [简要摘要]"。
消息模板
部署:
🚀 Deployed: [PROJECT_NAME]
[WHAT_CHANGED - 1-2 sentences]
• Branch: [BRANCH]
• Commit: [COMMIT_HASH]
[• Preview: URL (if applicable)]
[• Production: URL (if applicable)]
Posted by [USER] via Claude Code
Bug 修复:
🐛 Bug Fixed: [PROJECT_NAME]
Problem: [What was broken] Solution: [How it was fixed] Files: [Key files changed]
[• Commit: [COMMIT_HASH]]
Please verify if you reported this issue.
功能完成:
✨ Feature Complete: [PROJECT_NAME]
[FEATURE_NAME]
[DESCRIPTION - what it does, 1-2 sentences]
[• Demo: URL] [• Files: key files]
Ready for review/testing.
提问:
❓ Question: [PROJECT_NAME]
[QUESTION - clear and specific]
Context: [Relevant background - what you're working on, what you've tried]
Options considered:
- [Option A]
- [Option B]
@[PERSON] - would appreciate your input
自定义:
📢 Update: [PROJECT_NAME]
[MESSAGE]
Posted by [USER] via Claude Code
适用场景
- 推送到生产/预发环境、部署到 Vercel 等之后。
- 修复 Bug 后,尤其是团队报告的 Bug。
- 完成可供审查/使用的功能后。
- 被阻塞或需要团队对决策提供输入时。
- 用户说 "done"、"finished"、"completed" 且完成重要工作后。
- 推送到 main/master/production 后。
- 用户提到团队成员姓名,或似乎被阻塞、可能受益于团队输入时。
限制
- 不适用于次要重构、拼写修复、未就绪的 WIP 提交、内部调试/测试,以及任何只会造成噪音的内容。
- 需要有效的 Google Chat webhook URL。
- 安全提示:webhook URL 应保密,并将 .claude/settings.json 加入 .gitignore。
获取 Webhook URL
- 打开 Google Chat。
- 进入你的 Space。
- 点击 Space 名称 → Apps & integrations → Webhooks。
- 点击 Add webhook。
- 命名(例如 "Claude Code Updates")。
- 复制 webhook URL。
URL 格式:https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?key=KEY&token=TOKEN