Skip to content
Back to skills

Google Master

ASecurity

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.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
businesspythongobashapi

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill google-master --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google Master?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Google Master
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-google-master/badge)](https://www.skillsdirectory.com/skills/majiayu000-google-master)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: google-master
description: 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.
---

# Google Master

**This is NOT a user-facing skill.** It's a shared resource library referenced by all Google integration skills.

## Purpose

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.

---

## Architecture: DRY Principle

**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:**
- Single OAuth flow for all Google services
- One credentials source (`.env` file with GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_PROJECT_ID)
- One unified token with all scopes
- Consistent error handling across skills

---

## Shared Resources

All Google skills reference these resources (progressive disclosure).

### scripts/

#### Authentication & Configuration

**[google_auth.py](scripts/google_auth.py)** - Unified OAuth for all Google services
```bash
python google_auth.py --check [--service SERVICE] [--json]
python google_auth.py --login [--service SERVICE]
python google_auth.py --logout
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:**
- 0 = configured and ready
- 1 = needs login (credentials exist but not authenticated)
- 2 = not configured (missing credentials or dependencies)

**When to Use:** Run this FIRST before any Google operation. Called automatically by individual skills.

---

**[check_google_config.py](scripts/check_google_config.py)** - Pre-flight validation
```bash
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.

---

### references/

**[setup-guide.md](references/setup-guide.md)** - Complete setup wizard
- Creating Google Cloud project
- Enabling APIs (Gmail, Docs, Sheets, Calendar)
- Creating OAuth 2.0 credentials
- Adding credentials to `.env` file
- First-time authentication flow

**[error-handling.md](references/error-handling.md)** - Troubleshooting
- Common errors and solutions
- HTTP error codes (401, 403, 404)
- Scope/permission issues
- Rate limiting
- Token refresh failures

**[api-patterns.md](references/api-patterns.md)** - Common patterns
- Authentication headers
- Pagination
- Batch requests
- Error responses

---

## Service Scopes

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 Locations

| File | Location | Purpose |
|------|----------|---------|
| OAuth credentials | `.env` (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_PROJECT_ID) | App identity from Google Cloud |
| Access token | `01-memory/integrations/google-token.json` | User's authenticated token |

---

## How Skills Reference This

Each skill imports the shared auth module:

```python
# In any Google skill's operations script
import sys
from pathlib import Path

# Add google-master to path
NEXUS_ROOT = Path(__file__).resolve().parents[4]  # Adjust based on skill location
sys.path.insert(0, str(NEXUS_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')
```

---

## Intelligent Error Detection Flow

When a Google skill fails due to missing configuration, the AI should:

### Step 1: Run Config Check with JSON Output

```bash
python 00-system/skills/google/google-master/scripts/check_google_config.py --json
```

### Step 2: Parse the `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` |

### Step 3: Help User Fix Issues

If credentials missing:
1. Direct user to: https://console.cloud.google.com/
2. Guide through: APIs & Services > Credentials > Create OAuth Client ID (Desktop app)
3. Copy Client ID and Client Secret, add to `.env`:
   ```
   GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
   GOOGLE_CLIENT_SECRET=your-client-secret
   GOOGLE_PROJECT_ID=your-project-id
   ```
4. Run `--login` to authenticate

---

## Usage Example

**User says:** "send an email to john@example.com"

**What happens:**
1. AI loads `gmail` skill (NOT google-master)
2. `gmail` SKILL.md says: "Run pre-flight check first"
3. AI executes: `python google-master/scripts/google_auth.py --check --service gmail`
4. If exit code 0: proceed with gmail_operations.py
5. If exit code 1: run `--login` automatically
6. If exit code 2: load error-handling.md, guide user through setup

**google-master is NEVER loaded directly** - it's just a resource library.

---

## Adding New Google Services

To add a new Google service (e.g., Google Drive, Google Tasks):

1. Add scopes to `SCOPES` dict in `google_auth.py`
2. Create new skill folder with operations script
3. Import `get_service()` from google-master
4. Document in this SKILL.md

---

**Version**: 1.0
**Created**: 2025-12-17
**Updated**: 2025-12-17
**Status**: Production Ready

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.