batch-process
Produce multiple content pieces as a sequential, checkpointed queue — each piece runs the full 10-phase ContentForge pipeline with all 10 quality gates, sorted…
Switch ContentForge's tracking and delivery backend between Google Sheets + Drive, Airtable, and local filesystem — guiding credential setup, verifying access, optionally migrating existing tracking records and output files (migration is additive and never deletes source data),
$ npx -y skills add indranilbanerjee/contentforge --skill cf-switch-backend --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cf-switch-backendContext preview
The summary Claude sees to decide when to auto-load this skill.
Switch ContentForge's tracking and delivery backend between Google Sheets + Drive, Airtable, and local filesystem — guiding credential setup, verifying access, optionally migrating existing tracking records and output files (migration is additive and never deletes source data),
name: cf-switch-backend description: "Switch ContentForge's tracking and delivery backend between Google Sheets + Drive, Airtable, and local filesystem — guiding credential setup, verifying access, optionally migrating existing tracking records and output files (migration is additive and never deletes source data), and updating tracking.backend in the brand profile so the next run uses it immediately. Triggers on \"/contentforge:cf-switch-backend\", \"switch tracking to Airtable\", \"move tracking to Google Sheets\", \"which backend am I using\", \"migrate my tracking data\". Runs backend-migrator.py, sheets-tracker.py, airtable-tracker.py, or local-tracker.py; --status reports current backend health. Pairs with /contentforge:cf-cowork-setup for the Cowork Drive route and /contentforge:cf-style-guide, whose Step G sets the initial backend." disable-model-invocation: true argument-hint: "[local | airtable | google_sheets] [--status]" effort: high
Switch ContentForge's tracking and delivery backend between **Google Sheets + Drive**, **Airtable**, or **Local filesystem**. Optionally migrate existing tracking data and output files to the new backend.
**Running in Cowork?** The "local" backend writes to the ephemeral sandbox filesystem — files vanish at session end. For Cowork team setups, use the Google (Drive) route and run `/contentforge:cf-cowork-setup` first to wire the Drive folder layout.
/contentforge:cf-switch-backend airtable /contentforge:cf-switch-backend google_sheets /contentforge:cf-switch-backend local /contentforge:cf-switch-backend --status
Read the active brand profile's `tracking.backend` field.
Report current state:
Current backend: local
Records: 47 tracking records (~/.claude-marketing/{brand}/tracking/tracking.json)
Output files: 42 files in ~/.claude-marketing/{brand}/outputs/{YYYY}/{MM}/**If switching to Airtable:** 1. Check `AIRTABLE_TOKEN` environment variable exists 2. If missing, guide through setup:
3. Ask for the Airtable Base ID (from the base URL: `airtable.com/appXXXXXXXXX/...`) 4. Verify access by running:
python {scripts_dir}/airtable-tracker.py --action init --base-id {base_id}**If switching to Google Sheets + Drive:** 1. Check Google credentials at `~/.claude-marketing/google-credentials.json` 2. If missing, guide through setup:
3. Ask for the Google Sheet ID and Drive folder ID 4. Verify access by running:
python {scripts_dir}/sheets-tracker.py --action init --sheet-id {sheet_id}**If switching to Local:**
python {scripts_dir}/local-tracker.py --action init --brand "{brand}"If the current backend has existing records:
You have 47 tracking records and 42 output files on 'local'. Would you like to migrate this data to Airtable? 1. Yes — Copy all records and files to the new backend 2. No — Start fresh (existing data preserved but not synced) 3. Skip — Just switch, decide on migration later
**If yes**, run:
python {scripts_dir}/backend-migrator.py --action migrate --brand "{brand}" --from {current} --to {target} [backend-specific args]`{current}` and `{target}` must be one of `local`, `airtable`, `google_sheets` — the migrator rejects any other value.
Report migration results:
Migration complete:
Records migrated: 47
Files migrated: 42
Files failed: 0
Source data preserved at: ~/.claude-marketing/{brand}/tracking/tracking.json
and ~/.claude-marketing/{brand}/outputs/{YYYY}/{MM}/Update the brand profile JSON:
Backend switched to Airtable.
New tracking records → Airtable base appXXXXXX
Output files → Airtable attachment fields
Previous data preserved at: ~/.claude-marketing/{brand}/tracking/tracking.json
and ~/.claude-marketing/{brand}/outputs/{YYYY}/{MM}/
Run /contentforge:cf-switch-backend --status to verify anytime.| Factor | Google Sheets + Drive | Airtable | Local | |--------|----------------------|----------|-------| | Auth setup | Service account (~5 min) | Personal token (~2 min) | None | | Tracking | Google Sheets | Airtable records | JSON file | | File delivery | Google Drive | Attachment field | Local filesystem | | Collaboration | Share via Google | Share via Airtable | Single user | | Free tier | 15GB Drive | 1,000 records + 10GB | Unlimited | | Offline | No | No | Yes |
Run with `--status` flag to check current backend health:
/contentforge:cf-switch-backend --status
This runs:
python {scripts_dir}/backend-mig🌐 Read this in: English · हिन्दी · 中文 · 日本語 · 한국어 · Español · Português · العربية · اردو · தமிழ் · বাংলা · Русский You need to ship 30 articles this quarter that sound human, cite real sources, link into your funnel, and survive an editor who checks.
Produce multiple content pieces as a sequential, checkpointed queue — each piece runs the full 10-phase ContentForge pipeline with all 10 quality gates, sorted…
Connect any external API or service to ContentForge as a custom MCP connector — walks non-technical users from finding a verified MCP package or HTTP endpoint…
Post-publication AI-visibility check — re-probes target queries via web search, records whether the published piece is cited in Google AI Overviews, audits…
Render an ASCII analytics dashboard of ContentForge production history — quality score trends, phase-by-phase pipeline timing, brand and content-type…
Audit an existing content library for freshness decay and coverage gaps — scores every piece 0-100 on age, statistic currency, link health, and citation…
Generate a research-backed content brief from a keyword or topic — keyword data with volume and difficulty, top-5 competitor and E-E-A-T analysis,…