skills/integrations/google/google-master/SKILL.md
Shared resource library for Google integration skills. DO NOT load directly - provides common references (setup, API docs, error handling, authentication) and scripts used by gmail, google-docs, google-sheets, google-calendar, and future Google skills.
npx skillsauth add beam-ai-team/beam-next-skills google-masterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This is NOT a user-facing skill. It's a shared resource library referenced by all Google integration skills.
Provides shared resources to eliminate duplication across:
gmail - Email operations (read, send, reply, forward)google-docs - Document operations (read, write, create, export)google-sheets - Spreadsheet operations (read, write, append)google-calendar - Calendar operations (events, availability, scheduling)Instead of loading this skill, users directly invoke the specific skill they need above.
Problem solved: Google skills would have duplicated content (OAuth setup, credentials management, error handling, API patterns).
Solution: Extract shared content into google-master/references/ and google-master/scripts/, then reference from each skill.
Result:
.env file with GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_PROJECT_ID)All Google skills reference these resources (progressive disclosure).
google_auth.py - Unified OAuth for all Google services
uv run python google_auth.py --check [--service SERVICE] [--json]
uv run python google_auth.py --login [--service SERVICE]
uv run python google_auth.py --logout
uv run python google_auth.py --status
| Argument | Required | Default | Description |
|----------|----------|---------|-------------|
| --check | No | - | Check if authenticated and ready |
| --login | No | - | Initiate OAuth login flow |
| --logout | No | - | Remove stored token |
| --status | No | - | Show detailed auth status |
| --service | No | all | Specific service: gmail, docs, sheets, calendar, or all |
| --json | No | False | Output as JSON |
Exit codes:
When to Use: Run this FIRST before any Google operation. Called automatically by individual skills.
check_google_config.py - Pre-flight validation
uv run python check_google_config.py [--json]
| Argument | Required | Default | Description |
|----------|----------|---------|-------------|
| --json | No | False | Output structured JSON for AI consumption |
When to Use: Quick check if Google integration is configured. Use for diagnostics.
setup-guide.md - Complete setup wizard
.env fileerror-handling.md - Troubleshooting
api-patterns.md - Common patterns
The unified token requests all scopes on first login:
| Service | Scopes | |---------|--------| | Gmail | gmail.readonly, gmail.send, gmail.compose, gmail.modify, gmail.labels | | Docs | documents, drive | | Sheets | spreadsheets, drive.readonly | | Calendar | calendar, calendar.events |
Note: User grants all permissions once, then all Google skills work.
| File | Location | Purpose |
|------|----------|---------|
| OAuth credentials | .env (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_PROJECT_ID) | App identity from Google Cloud |
| Access token | 02-memory/integrations/google-token.json | User's authenticated token |
Each skill imports the shared auth module:
# In any Google skill's operations script
import sys
from pathlib import Path
# Add google-master to path
BEAM_NEXT_ROOT = Path(__file__).resolve().parents[4] # Adjust based on skill location
sys.path.insert(0, str(BEAM_NEXT_ROOT / "00-system/skills/google/google-master/scripts"))
from google_auth import get_credentials, get_service
# Get authenticated service
gmail = get_service('gmail', 'v1')
docs = get_service('docs', 'v1')
sheets = get_service('sheets', 'v4')
calendar = get_service('calendar', 'v3')
When a Google skill fails due to missing configuration, the AI should:
uv run python 00-system/skills/google/google-master/scripts/check_google_config.py --json
ai_action Field| ai_action | What to Do |
|-----------|------------|
| proceed | Config OK, continue with operation |
| install_dependencies | Run: pip install google-auth google-auth-oauthlib google-api-python-client |
| need_credentials | Guide user to create OAuth credentials in Google Cloud Console |
| need_login | Run: python google_auth.py --login |
If credentials missing:
.env:
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_PROJECT_ID=your-project-id
--login to authenticateUser says: "send an email to [email protected]"
What happens:
gmail skill (NOT google-master)gmail SKILL.md says: "Run pre-flight check first"python google-master/scripts/google_auth.py --check --service gmail--login automaticallygoogle-master is NEVER loaded directly - it's just a resource library.
To add a new Google service (e.g., Google Drive, Google Tasks):
SCOPES dict in google_auth.pyget_service() from google-masterVersion: 1.0 Created: 2025-12-17 Updated: 2025-12-17 Status: Production Ready
testing
Audit registry.yaml against disk, validate SKILL.md frontmatter, find duplicates and orphans. Load when user says 'audit skills registry', 'validate beam-next-skills', 'registry drift', 'skills catalog audit', 'check registry yaml'.
tools
All Workable ATS operations — fetch JDs, search candidates, post assessments/reviews. Load when user says "fetch JD", "search workable", "push to workable", "post review", "rate candidate", "workable", "push assessment", "list jobs", or after interview-coach completes an evaluation. Replaces workable-fetch-jd and workable-push-assessment.
data-ai
Load when user mentions "tavily research", "market intelligence", "competitive research", "GTM research", or needs real-time market data for sales, marketing, or vertical strategy.
development
Shared resource library for Slack integration skills. DO NOT load directly - provides common references (setup, API docs, error handling, authentication) and scripts used by slack-connect and individual Slack skills.