Post team updates to Google Chat Spaces via webhook. Deployment notifications, bug fixes, feature announcements, questions. Reads config from .claude/settings.json, includes git context. Use when: "post to team", "notify team", after deployments, completing features, fixing bugs, asking team questions.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/jezweb/claude-skills/blob/main/skills/google-spaces-updates/SKILL.md -a claude-code --skill google-spaces-updatesInstallation paths:
.claude/skills/google-spaces-updates/# Google Spaces Updates
**Status**: Production Ready
**Last Updated**: 2026-01-09
Post updates to a team Google Chat Space via webhook.
---
## Quick Start
### 1. Setup (first time per project)
Run `/google-spaces-updates setup` or manually create `.claude/settings.json`:
```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"]
}
}
```
### 2. Post an update
```
"Post deployment update to team"
"Tell the team about the new feature"
"Ask the team about the auth approach"
```
---
## How It Works
### Step 1: Check for project settings
Look for `.claude/settings.json` in the current project directory:
```bash
cat .claude/settings.json 2>/dev/null || echo "NOT_FOUND"
```
If NOT_FOUND, ask the user:
> "This project doesn't have Google Spaces configured. Would you like me to set it up? I'll need the webhook URL for your team's Google Space."
Then create the file using the template in `templates/settings-template.json`.
### Step 2: Determine update type
Based on the command or context, determine the update type:
| Type | When to use |
|------|-------------|
| `deployment` | After pushing to production/staging, deploying to Vercel/etc |
| `bugfix` | After fixing a bug, especially one reported by team |
| `feature` | After completing a feature that's ready for review/use |
| `question` | When blocked or need team input on a decision |
| `custom` | For anything else |
### Step 3: Gather context
Collect relevant information to include:
```bash
# Recent commits (for context)
git log --oneline -3 2>/dev/null
# Current branch
git branch --show-current 2>/dev/null
# Changed files (if recent changes)
git diff --name-only HEAD~1 2>/dev/null | head -10
```
Also use context from the conversation:
- What was just completed
- Any preview/production URLs
- Relevant fil