supabase
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
google-docs-manager
Expert in Google Docs management. Use when creating, reading, updating, formatting, or managing Google Docs with markdown support, advanced formatting, tables with full manipulation, images with styling, lists, headers/footers, and table of contents.
Full skill instructions
Expert in managing and editing Google Docs with comprehensive read/write/update operations, advanced formatting, styling, table of contents, images, and tables.
Use this skill when users request:
IMPORTANT: When creating new documents, always use the copy command to duplicate from "Template v2" rather than creating blank documents.
Template v2 Document ID: 1lcUWzmqtj-h0OMdM_NcvDN_qa4EyAfwCgE-IZUAlLPc
Workflow:
copy command with Template v2 ID, new title, and target folderset-markdown or update-section to add contentExample:
# Step 1: Copy Template v2 to create new document
google-docs-manager copy 1lcUWzmqtj-h0OMdM_NcvDN_qa4EyAfwCgE-IZUAlLPc "My New Article" --folder <FOLDER_ID>
# Step 2: Add content
google-docs-manager set-markdown <NEW_DOC_ID> content.md
Why use Template v2?
Location: ~/.claude/skills/google-docs-manager/scripts/google-docs-manager
Type: Standalone Go binary (no Python dependencies required)
Source Code: ~/projects/new/google-docs-manager/
Usage:
Basic Document Operations:
# Create new document (blank)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create <title> --folder <folder_id>
# Copy existing document (RECOMMENDED for creating from templates)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager copy <source_document_id> <new_title> --folder <folder_id>
# Read document (full content as markdown)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager read <document_id>
# Get document structure (headings with indices)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure <document_id>
# Set content from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown <document_id> <markdown_file>
# Update section from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section <document_id> <heading_text> <markdown_file>
# Insert after section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-after <document_id> <heading_text> <markdown_file>
# Get document info
~/.claude/skills/google-docs-manager/scripts/google-docs-manager info <document_id>
Text Operations:
# Delete text range
~/.claude/skills/google-docs-manager/scripts/google-docs-manager delete-text <document_id> <start_index> <end_index>
# Format text (bold, italic, underline, strikethrough, color, font-size)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text <document_id> <start_index> <end_index> \
[--bold] [--italic] [--underline] [--strikethrough] \
[--color "R,G,B"] [--font-size N]
# Color Format Details:
# --color accepts RGB values as comma-separated integers (0-255)
# Format: "R,G,B" where R=Red, G=Green, B=Blue
#
# Hex to RGB Conversion:
# To convert hex colors (e.g., #bf9000) to RGB:
# 1. Split hex into pairs: #bf9000 → bf, 90, 00
# 2. Convert each pair from hex to decimal:
# - bf (hex) = 191 (decimal)
# - 90 (hex) = 144 (decimal)
# - 00 (hex) = 0 (decimal)
# 3. Result: "191,144,0"
#
# Common Colors:
# - Black: "0,0,0" (#000000)
# - White: "255,255,255" (#ffffff)
# - Red: "255,0,0" (#ff0000)
# - Green: "0,255,0" (#00ff00)
# - Blue: "0,0,255" (#0000ff)
# - Dark Red: "153,0,0" (#990000)
# - Dark Green: "56,118,29" (#38761d)
# - Amber/Orange: "191,144,0" (#bf9000)
#
# Examples:
# Apply amber color to text at indices 100-115:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 100 115 --color "191,144,0"
#
# Apply dark green with bold:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 200 210 --bold --color "56,118,29"
#
# Apply black color (default):
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text DOC_ID 300 315 --color "0,0,0"
# Align paragraph
~/.claude/skills/google-docs-manager/scripts/google-docs-manager align-paragraph <document_id> <start_index> <end_index> <ALIGNMENT>
# ALIGNMENT: START (left), CENTER, END (right), JUSTIFIED
List Operations:
# Create bulleted list
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create-bullets <document_id> <start_index> <end_index> [--style STYLE]
# STYLES: BULLET_DISC_CIRCLE_SQUARE (default), BULLET_CHECKBOX, BULLET_ARROW_DIAMOND_DISC, BULLET_DIAMONDX_ARROW3D_SQUARE
# Create numbered list
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create-numbered <document_id> <start_index> <end_index>
# Remove bullets/numbering
~/.claude/skills/google-docs-manager/scripts/google-docs-manager remove-bullets <document_id> <start_index> <end_index>
Table Operations:
# Insert table from CSV
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table <document_id> <csv_file> [--legend LEGEND] [--index INDEX]
# Update cell content
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-table-cell <document_id> <table_index> <row_index> <column_index> "text"
# Style cell (background color)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager style-table-cell <document_id> <table_index> <row_index> <column_index> \
[--bg-color "R,G,B"]
# Note: --bg-color uses same RGB format as --color (see format-text color documentation above)
# Example: --bg-color "191,144,0" for amber (#bf9000)
Image Operations:
# Insert image
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image <document_id> <image_url> [--legend LEGEND] [--index INDEX]
Headers & Footers:
# Add/update header
~/.claude/skills/google-docs-manager/scripts/google-docs-manager add-header <document_id> <text> [--page-number]
# Add/update footer
~/.claude/skills/google-docs-manager/scripts/google-docs-manager add-footer <document_id> <text> [--page-number]
Examples:
# Create a new document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Report" 1folderabc123
# Read full document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager read 1docabc123xyz
# Get document structure
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123xyz
# Set content from markdown file
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown 1docabc123xyz content.md
# Update specific section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123xyz "Methodology" methodology.md
# Insert table with legend
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table 1docabc123xyz data.csv --legend "Table 1: Sales Data Q4 2024"
# Insert image with legend
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image 1docabc123xyz "https://example.com/chart.png" --legend "Figure 1: Revenue Trends"
# Apply color formatting (convert hex #bf9000 to RGB 191,144,0)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text 1docabc123xyz 100 115 --color "191,144,0"
# Apply multiple formatting options (green + bold)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager format-text 1docabc123xyz 200 215 --bold --color "56,118,29"
How It Works: The binary is a standalone Go executable that:
~/.credentials/~/projects/new/google-docs-manager/Documents created with the create command use standard Google Docs styles:
# title)## chapter)### sub-chapter)#### sub-sub-chapter)##### sub-sub-sub-chapter)###### sub-sub-sub-sub-chapter)| Markdown | Google Docs Style |
|---|---|
# title | Title |
## Chapter | Heading 1 |
### Sub Chapter | Heading 2 |
#### Sub Sub Chapter | Heading 3 |
##### Sub Sub Sub Chapter | Heading 4 |
###### Sub Sub Sub Sub Chapter | Heading 5 |
| Regular text | Normal Text |
**bold** | Bold text |
*italic* or _italic_ | Italic text |
| Tables | Google Docs tables with italic legend above |
| Images | Inline images with italic legend below (left-aligned) |
Note: Italic formatting supports both asterisk (*text*) and underscore (_text_) syntax. This is particularly useful for scientific names and technical terms that conventionally use underscores in markdown (e.g., _Chlamydophila pneumoniae_).
Creates a new blank Google Doc with standard styles.
Process:
Extract document content as markdown or plain text.
Full Read:
Section Read:
Returns hierarchical structure of document headings.
Output:
{
"headings": [
{
"level": 1,
"text": "Introduction",
"index": 15,
"style": "HEADING_1"
},
{
"level": 2,
"text": "Background",
"index": 45,
"style": "HEADING_2"
}
]
}
This is a utility function for markdown conversion. The primary focus of this skill is document editing.
Replaces entire document content with markdown-formatted content.
Markdown Conversion Process:
# text → Title style## text → Heading 1 style### text → Heading 2 style#### text → Heading 3 style##### text → Heading 4 style###### text → Heading 5 style**bold** → Bold formatting*italic* or _italic_ → Italic formatting (both syntaxes supported)- item → Bullet point (Normal Text with dash)Important Notes:
update-toc to add automatic TOCUpdates content under a specific heading.
Process:
Inserts a formatted table with optional legend.
Format:
Table 1: Sales Data Q4 2024 (italic, above table)
┌────────────┬──────────┬──────────┐
│ Month │ Sales │ Growth │
├────────────┼──────────┼──────────┤
│ October │ $125k │ +5% │
│ November │ $142k │ +13% │
│ December │ $198k │ +39% │
└────────────┴──────────┴──────────┘
Input: CSV file or JSON data Output: Google Docs table with legend
Inserts an image into the document with optional legend.
CRITICAL LIMITATION - Google Docs API Requirements: Google Docs API ONLY accepts images via publicly accessible HTTP/HTTPS URLs. Local files CANNOT be inserted directly.
Required Workflow for Local Images:
type: anyone, role: readerhttps://drive.google.com/uc?export=view&id=FILE_IDAlternative Approaches (NOT supported by API):
Recommended Practice:
Format:
[Image]
Figure 1: Revenue Trends (italic, below image, left-aligned)
[blank line automatically added after legend for spacing]
Input: Publicly accessible HTTP/HTTPS URL (typically from Google Drive) Output: Inline image with legend and blank line after for proper spacing
Example Workflow:
# 1. Upload image to Drive (using google-drive-manager skill)
# Use the google-drive-manager skill to upload the image and get FILE_ID
# 2. Make image publicly accessible
# Use the google-drive-manager skill to set permissions (type: anyone, role: reader)
# 3. Insert into document
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image DOC_ID \
"https://drive.google.com/uc?export=view&id=FILE_ID" \
--legend "Figure 1: Description"
Inserts "Table of content" heading placeholder at document start.
IMPORTANT LIMITATION: Google Docs API v1 does NOT support programmatic TOC insertion. This command only inserts the heading.
Process:
Manual Steps Required: After running this command, you must manually complete the TOC insertion:
Notes:
~/.credentials/Enable Required APIs:
gcloud services enable docs.googleapis.com
gcloud services enable drive.googleapis.com
Create OAuth Credentials:
~/.credentials/google_credentials.jsonFirst-time Authentication:
# Create credentials directory
mkdir -p ~/.credentials
# Copy downloaded credentials
cp ~/Downloads/client_secret_*.json ~/.credentials/google_credentials.json
# Run any command - will open browser for OAuth consent
~/.claude/skills/google-docs-manager/scripts/google-docs-manager info <document_id>
# Token saved to ~/.credentials/google_token.json for future use
Subsequent Runs:
No installation required! The binary is pre-compiled and ready to use:
# Create new document
DOC_ID=$(~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Sales Report" 1folderabc123 | grep "Document ID:" | cut -d' ' -f3)
# Set content from markdown
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown $DOC_ID report.md
# Add table
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table $DOC_ID sales_data.csv --legend "Table 1: Quarterly Sales"
# Add chart image
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-image $DOC_ID "https://charts.example.com/q4.png" --legend "Figure 1: Sales Trends"
# Read current section (requires custom implementation - use get-structure to find section boundaries)
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123
# Edit methodology.md locally...
# Update section
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123 "Methodology" methodology.md
# Create document
DOC_ID=$(~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Analysis Report" 1folder123 | grep "Document ID:" | cut -d' ' -f3)
# Generate markdown report from data
python generate_report.py --output report.md
# Set content
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown $DOC_ID report.md
# Add multiple tables
for table in results/*.csv; do
legend=$(basename "$table" .csv | sed 's/_/ /g')
~/.claude/skills/google-docs-manager/scripts/google-docs-manager insert-table $DOC_ID "$table" --legend "Table: $legend"
done
set-markdown to populate document with structured contentget-structure to understand document organizationWhen users request Docs operations:
Identify the operation:
Gather required parameters:
Run the appropriate command:
Handle document structure:
get-structure to understand organizationHandle errors:
User: "Create a new Google Doc for the Q4 report and add this markdown content"
Response:
I'll create a new Google Doc and add your content.
Creating document...
Execute:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager create "Q4 Report" 1folderabc123
Then:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager set-markdown 1newdoc123 content.md
Final response:
Created document "Q4 Report"
Added content from markdown
Document link: https://docs.google.com/document/d/1newdoc123/edit
User: "Update the 'Conclusion' section in this document with new content"
Response:
I'll update the Conclusion section with your new content.
First, let me check the document structure...
Execute:
~/.claude/skills/google-docs-manager/scripts/google-docs-manager get-structure 1docabc123
~/.claude/skills/google-docs-manager/scripts/google-docs-manager update-section 1docabc123 "Conclusion" new_conclusion.md
Final response:
Updated 'Conclusion' section
The Conclusion section has been updated while preserving all other content.
# Create credentials directory
mkdir -p ~/.credentials
# Download OAuth credentials from Google Cloud Console
# Save to ~/.credentials/google_credentials.json
# Ensure Docs and Drive APIs are enabled
gcloud services enable docs.googleapis.com drive.googleapis.com
# Verify OAuth scopes include:
# - https://www.googleapis.com/auth/documents
# - https://www.googleapis.com/auth/drive
get-structure to see all available headings# Delete token to trigger new OAuth flow
rm ~/.credentials/google_token.json
# Run any command to re-authenticate
~/.credentials/None! The binary is self-contained with all dependencies compiled in:
To accomplish Docs management tasks:
To rebuild the binary after making changes:
# Navigate to source directory
cd ~/projects/new/google-docs-manager/
# Build the binary
make
# Copy to skill directory
cp google-docs-manager ~/.claude/skills/google-docs-manager/scripts/
The binary will be compiled with all dependencies included.
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
Comprehensive guides and best practices for Neon Serverless Postgres, covering setup, connection methods, authentication, and platform APIs.
Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.
A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.
Official skill for integrating Firebase AI Logic (Gemini API) into web applications. Covers setup, multimodal inference, structured output, and security.
Complete Better Auth server and client setup with database adapters, session management, plugins, and security configuration.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Complete Cloudflare platform integration with decision trees for compute, storage, AI, networking, security, and infrastructure-as-code.
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.
Send, read, and manage Gmail messages, drafts, labels, and account settings.
Comprehensive website auditing across 230+ rules in 21 categories including SEO, performance, security, and accessibility.
Shared authentication, CLI syntax, and output formatting patterns for gws Google Workspace commands.
Discover your celebrity doppelgänger with StarByFace!
GeoSpy: Pricing, Features, FAQs, and Alternatives for AI Teams
Detect AI-generated voices to protect against audio fraud.
Ensure Your Content's Originality with AI Plagiarism Checker
Upscale images by 400% without quality loss
Protect your social media from copyright disputes
Accurately Detect AI-Generated Content with TheChecker.AI
Chrome extension that detects and flags AI-generated content