master-schedule

star 206

Silent setup check. Verifies master-schedule.json exists and the sheet is accessible. If not, copies the template sheet to the user's account and writes master-schedule.json. Called automatically by other skills before reading or writing product data.

AlpacaLabsLLC By AlpacaLabsLLC schedule Updated 6/10/2026

name: master-schedule description: Silent setup check. Verifies master-schedule.json exists and the sheet is accessible. If not, copies the template sheet to the user's account and writes master-schedule.json. Called automatically by other skills before reading or writing product data. allowed-tools: - Read - Write - Bash - mcp__google-sheets__list_sheets - mcp__google-sheets__get_sheet_data - mcp__google-sheets__create_spreadsheet - mcp__google-sheets__update_cells

/master-schedule — Sheet Setup Check

Called automatically by all product skills before reading or writing. Can also be run manually to reconnect or reset.

Template sheet ID: 1mWnExnSWTKJv0vbu1mDnrQFmv_Iz_fNklIeuBYfMB5k


Step 1: Check for master-schedule.json

cat ./master-schedule.json 2>/dev/null

Legacy config: if master-schedule.json is missing but ./canoa.json exists (written by plugin versions ≤ 1.0.0), migrate it — mv ./canoa.json ./master-schedule.json — and continue as found.

Found and valid → Step 2 (verify access)

Not found → Step 3 (auto-setup)


Step 2: Verify Sheet Access

Call mcp__google-sheets__list_sheets with the master_sheet_id from master-schedule.json.

  • Success → sheet is accessible. Return silently — the calling skill continues.
  • 404 / error → sheet was deleted or moved. Proceed to Step 3 to set up a new one.

Step 3: Auto-Setup

No config found or sheet inaccessible. Set up automatically without asking the user.

3a: Copy the template

Attempt to copy the template sheet using the Google Drive API (files.copy). If a Drive MCP tool is available, use it:

drive.files.copy
  fileId: "1mWnExnSWTKJv0vbu1mDnrQFmv_Iz_fNklIeuBYfMB5k"
  title: "Product Library — {today's date}"

If no Drive copy tool is available, fall back to creating a new spreadsheet and writing the header row:

  1. Call mcp__google-sheets__create_spreadsheet with title "Product Library — {today's date}"
  2. Write the 33-column header row to Sheet1!A1:AG1 using the CSV header from ../../schema/product-schema.md

Note in master-schedule.json whether this was a template copy or a fresh sheet ("setup": "copy" or "setup": "fresh").

3b: Identify the Products tab

Look for a tab named Products. If not found (e.g. fresh sheet named Sheet1), use whatever tab exists and record its name in master-schedule.json.

3c: Write master-schedule.json

{
  "master_sheet_id": "{new sheet ID}",
  "sheet_title": "Product Library — {date}",
  "sheet_url": "https://docs.google.com/spreadsheets/d/{id}",
  "products_tab": "Products",
  "project_name": "",
  "setup": "copy",
  "created_at": "{ISO timestamp}"
}

3d: Notify the user

✓ Product library created and connected.
  docs.google.com/spreadsheets/d/{id}

  You may want to rename this sheet and set a project name.
  Run /master-schedule to update.

Then return — the calling skill continues.


Manual Run

When invoked directly (/master-schedule), run the same flow but also:

  • If master-schedule.json exists and the sheet is accessible, show current status:
Product library connected.

  Project:  {project_name or "(unnamed)"}
  Sheet:    {sheet_title}
  URL:      docs.google.com/spreadsheets/d/{id}
  Tab:      {products_tab}

Options:
  1. Update project name
  2. Connect a different sheet (paste URL)
  3. Reset (create a new copy of the template)
  • If user chooses (2), ask for URL, validate, update master-schedule.json.
  • If user chooses (3), run Step 3 again.

MCP Connection Errors

If any MCP call fails with "tool not found" or auth error, stop and report:

Google Sheets MCP is not connected or not authenticated.

To connect it, add to ~/.claude/mcp_settings.json:

{
  "mcpServers": {
    "google-sheets": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-google-sheets"],
      "env": {
        "GOOGLE_SERVICE_ACCOUNT_KEY": "<path-to-service-account-json>"
      }
    }
  }
}

Then restart Claude Code and try again.
Need help creating a service account? Ask for instructions.

Edge Cases

Situation Handling
master-schedule.json exists, sheet accessible Return silently
master-schedule.json exists, sheet deleted Auto-create new copy, update master-schedule.json
master-schedule.json missing Auto-create new copy, write master-schedule.json
Drive copy tool not available Fall back to fresh sheet + header row
MCP not connected Stop, show setup instructions
Install via CLI
npx skills add https://github.com/AlpacaLabsLLC/skills-for-architects --skill master-schedule
Repository Details
star Stars 206
call_split Forks 41
navigation Branch main
article Path SKILL.md
More from Creator
AlpacaLabsLLC
AlpacaLabsLLC Explore all skills →