#949 by GitHub stars
indranilbanerjee/digital-marketing-pro
An open-source AI based digital marketing operating system for strategy, SEO, AEO/GEO, paid media, content, CRM, and analytics - grounded in brand context, human approval, and verifiable outputs. Best for Brands, Agencies and one person campanies.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/ab-test-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/ad-creative/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/add-integration/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/aeo-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/aeo-geo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/agency-dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/agent-readiness-audit/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/analytics-insights/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/anomaly-scan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/attribution-model/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/attribution-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/audience-intelligence/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/audience-profile/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/autopilot-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/backlink-gap/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/brand-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/budget-optimizer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/budget-tracker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/c2pa-metadata/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/campaign-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/campaign-orchestrator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/campaign-plan/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/campaign-status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/case-study-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/check/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/churn-risk/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/client-onboarding/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/client-proposal/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/client-report/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/client-validation-document/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/cohort-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/competitor-alerts/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/competitor-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/competitor-monitor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/competitor-pages/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/connect/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/content-brief/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/content-calendar/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/content-decay-scan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/content-engine/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/content-repurpose/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/context-engine/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/continuous-improvement-loop/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/counter-narrative/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/cowork-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/creative-health/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/creative-testing-framework/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/credential-switch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/crisis-response/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/crm-sync/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/cro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/dark-funnel/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/data-export/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/data-import/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/digital-pr/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/email-sequence/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/emerging-channels/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/engagement-workflow/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/entity-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/eval-config/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/eval-content/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/eval-suite/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/exec-summary/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/executive-dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/focus-group/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/four-core-documents/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/funnel-architect/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/funnel-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/geo-monitor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/goal-filter/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/growth-engineering/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/growth-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/gsc-ai-performance/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/help/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/hreflang-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/image-seo-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/import-guidelines/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/import-sop/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/import-template/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/influencer-brief/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/influencer-creator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/integrations/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/intelligence-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/journey-design/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/keyword-cluster/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/keyword-research/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/landing-page-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/language-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/language-config/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/launch-ad-campaign/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/launch-campaign/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/launch-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/lead-import/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/lead-magnet-ideas/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/learn/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/live-dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/local-seo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/local-seo-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/localize-campaign/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/loop-detect/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/market-weather/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/marketing-automation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/martech-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/media-plan/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/message-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/multilingual-score/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/narrative-landscape/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/narrative-tracker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/page-seo-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/paid-advertising/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/pdf-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/performance-check/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/performance-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/pipeline-update/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/pr-pitch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/pricing-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/programmatic-seo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/prompt-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/publish-blog/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/qbr-plan/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/quality-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/rank-monitor/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/recall/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/redirect-manager/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/region-config/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/reputation-management/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/retargeting-strategy/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/review-response/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/roi-calculator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/save-knowledge/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/schedule-social/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/search-knowledge/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/segment-audience/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/send-email-campaign/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/send-notification/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/send-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/send-sms/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/seo-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/seo-drift/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/seo-implement/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/seo-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/serp-tracker/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/share-of-voice/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/signal-mine/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/simulate/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/sitemap-manager/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/social-strategy/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/sop-library/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/status/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/story-mine/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/switch-brand/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/sync-memory/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/team-assign/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/tech-seo-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/technical-seo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/translate-content/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/validate-output/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Local scripts
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/validate-profile/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/verify-claims/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/video-packaging/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/video-script/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/webinar-plan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/what-if/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
skills/yearly-planner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
aa52e986da81 → cc45ca06eaf4
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → aa52e986da81
No earlier version was observed for comparison.
Verified commit cc45ca06eaf48abde3bb60fb79d31c41229c58db
git clone --filter=blob:none --no-checkout https://github.com/indranilbanerjee/digital-marketing-pro.git .hotskills/indranilbanerjee-digital-marketing-pro && git -C .hotskills/indranilbanerjee-digital-marketing-pro checkout --detach cc45ca06eaf48abde3bb60fb79d31c41229c58db
# Copy each selected skill directory from .hotskills/indranilbanerjee-digital-marketing-pro into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/indranilbanerjee/digital-marketing-pro.git .hotskills/indranilbanerjee-digital-marketing-pro && git -C .hotskills/indranilbanerjee-digital-marketing-pro checkout --detach cc45ca06eaf48abde3bb60fb79d31c41229c58db
# Copy each selected skill directory from .hotskills/indranilbanerjee-digital-marketing-pro into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/indranilbanerjee/digital-marketing-pro.git .hotskills/indranilbanerjee-digital-marketing-pro && git -C .hotskills/indranilbanerjee-digital-marketing-pro checkout --detach cc45ca06eaf48abde3bb60fb79d31c41229c58db
# Copy each selected skill directory from .hotskills/indranilbanerjee-digital-marketing-pro into .gemini/skills/<skill-name>/Heat
6.3- Star growth, last 7 daysAhead of 84% of tracked repositories
- Star growth, last 24 hoursAhead of 92% of tracked repositories
- Rank movement, last 7 daysAhead of 16% of tracked repositories
- Commits, last 30 daysAhead of 91% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- ab-test-plan
skills/ab-test-plan - ad-creative
skills/ad-creative - add-integration
skills/add-integration - aeo-audit
skills/aeo-audit - aeo-geo
skills/aeo-geo - agency-dashboard
skills/agency-dashboard - agent-readiness-audit
skills/agent-readiness-audit - analytics-insights
skills/analytics-insights - anomaly-scan
skills/anomaly-scan - attribution-model
skills/attribution-model - attribution-report
skills/attribution-report - audience-intelligence
skills/audience-intelligence - audience-profile
skills/audience-profile - autopilot-status
skills/autopilot-status - backlink-gap
skills/backlink-gap - brand-setup
skills/brand-setup - budget-optimizer
skills/budget-optimizer - budget-tracker
skills/budget-tracker - c2pa-metadata
skills/c2pa-metadata - campaign-audit
skills/campaign-audit - campaign-orchestrator
skills/campaign-orchestrator - campaign-plan
skills/campaign-plan - campaign-status
skills/campaign-status - case-study-plan
skills/case-study-plan - check
skills/check - churn-risk
skills/churn-risk - client-onboarding
skills/client-onboarding - client-proposal
skills/client-proposal - client-report
skills/client-report - client-validation-document
skills/client-validation-document - cohort-analysis
skills/cohort-analysis - competitor-alerts
skills/competitor-alerts - competitor-analysis
skills/competitor-analysis - competitor-monitor
skills/competitor-monitor - competitor-pages
skills/competitor-pages - connect
skills/connect - content-brief
skills/content-brief - content-calendar
skills/content-calendar - content-decay-scan
skills/content-decay-scan - content-engine
skills/content-engine - content-repurpose
skills/content-repurpose - context-engine
skills/context-engine - continuous-improvement-loop
skills/continuous-improvement-loop - counter-narrative
skills/counter-narrative - cowork-setup
skills/cowork-setup - creative-health
skills/creative-health - creative-testing-framework
skills/creative-testing-framework - credential-switch
skills/credential-switch - crisis-response
skills/crisis-response - crm-sync
skills/crm-sync - cro
skills/cro - dark-funnel
skills/dark-funnel - data-export
skills/data-export - data-import
skills/data-import - digital-pr
skills/digital-pr - email-sequence
skills/email-sequence - emerging-channels
skills/emerging-channels - engagement-workflow
skills/engagement-workflow - entity-audit
skills/entity-audit - eval-config
skills/eval-config - eval-content
skills/eval-content - eval-suite
skills/eval-suite - exec-summary
skills/exec-summary - executive-dashboard
skills/executive-dashboard - focus-group
skills/focus-group - four-core-documents
skills/four-core-documents - funnel-architect
skills/funnel-architect - funnel-audit
skills/funnel-audit - geo-monitor
skills/geo-monitor - goal-filter
skills/goal-filter - growth-engineering
skills/growth-engineering - growth-plan
skills/growth-plan - gsc-ai-performance
skills/gsc-ai-performance - help
skills/help - hreflang-check
skills/hreflang-check - image-seo-audit
skills/image-seo-audit - import-guidelines
skills/import-guidelines - import-sop
skills/import-sop - import-template
skills/import-template - influencer-brief
skills/influencer-brief - influencer-creator
skills/influencer-creator - integrations
skills/integrations - intelligence-report
skills/intelligence-report - journey-design
skills/journey-design - keyword-cluster
skills/keyword-cluster - keyword-research
skills/keyword-research - landing-page-audit
skills/landing-page-audit - language-audit
skills/language-audit - language-config
skills/language-config - launch-ad-campaign
skills/launch-ad-campaign - launch-campaign
skills/launch-campaign - launch-plan
skills/launch-plan - lead-import
skills/lead-import - lead-magnet-ideas
skills/lead-magnet-ideas - learn
skills/learn - live-dashboard
skills/live-dashboard - local-seo
skills/local-seo - local-seo-audit
skills/local-seo-audit - localize-campaign
skills/localize-campaign - loop-detect
skills/loop-detect - market-weather
skills/market-weather - marketing-automation
skills/marketing-automation - martech-audit
skills/martech-audit - media-plan
skills/media-plan - message-test
skills/message-test - multilingual-score
skills/multilingual-score - narrative-landscape
skills/narrative-landscape - narrative-tracker
skills/narrative-tracker - page-seo-analysis
skills/page-seo-analysis - paid-advertising
skills/paid-advertising - pdf-report
skills/pdf-report - performance-check
skills/performance-check - performance-report
skills/performance-report - pipeline-update
skills/pipeline-update - pr-pitch
skills/pr-pitch - pricing-test
skills/pricing-test - programmatic-seo
skills/programmatic-seo - prompt-test
skills/prompt-test - publish-blog
skills/publish-blog - qbr-plan
skills/qbr-plan - quality-report
skills/quality-report - rank-monitor
skills/rank-monitor - recall
skills/recall - redirect-manager
skills/redirect-manager - region-config
skills/region-config - reputation-management
skills/reputation-management - retargeting-strategy
skills/retargeting-strategy - review-response
skills/review-response - roi-calculator
skills/roi-calculator - save-knowledge
skills/save-knowledge - schedule-social
skills/schedule-social - search-knowledge
skills/search-knowledge - segment-audience
skills/segment-audience - send-email-campaign
skills/send-email-campaign - send-notification
skills/send-notification - send-report
skills/send-report - send-sms
skills/send-sms - seo-audit
skills/seo-audit - seo-drift
skills/seo-drift - seo-implement
skills/seo-implement - seo-plan
skills/seo-plan - serp-tracker
skills/serp-tracker - share-of-voice
skills/share-of-voice - signal-mine
skills/signal-mine - simulate
skills/simulate - sitemap-manager
skills/sitemap-manager - social-strategy
skills/social-strategy - sop-library
skills/sop-library - status
skills/status - story-mine
skills/story-mine - switch-brand
skills/switch-brand - sync-memory
skills/sync-memory - team-assign
skills/team-assign - tech-seo-audit
skills/tech-seo-audit - technical-seo
skills/technical-seo - translate-content
skills/translate-content - validate-output
skills/validate-output - validate-profile
skills/validate-profile - verify-claims
skills/verify-claims - video-packaging
skills/video-packaging - video-script
skills/video-script - webinar-plan
skills/webinar-plan - what-if
skills/what-if - yearly-planner
skills/yearly-planner
How it works
ab-test-plan
When your agent uses it
Plan an A/B test by script: sample size per variant, days to run, stopping rules. "how many visitors per variant"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,717 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/sample-size-calculator.py../../scripts/significance-tester.py
Files
../../.claude-plugin/plugin.jsonasset2,375 bytes../../.claude-plugin/plugin.jsonasset2,375 bytes../../assets/icon.pngasset20,870 bytes../../hooks/hooks.jsonasset18 bytes../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/sample-size-calculator.pyruns8,867 bytes../../scripts/significance-tester.pyruns10,788 bytesSKILL.mdcore7,686 bytesSKILL.mdcore7,686 bytes
Read SKILL.md
# /digital-marketing-pro:ab-test-plan
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Dedicated A/B test planning with a structured hypothesis framework, statistical sample size calculation, variant design, and monitoring plan. Produces a complete experiment specification with statistical rigor and clear decision criteria.
## Input Required
The user must provide (or will be prompted for):
- **Element to test**: The specific page, component, or experience being tested (landing page headline, CTA button, pricing page layout, email subject line, checkout flow, form design, etc.)
- **Current conversion rate**: Baseline conversion rate for the metric being tested (or best estimate)View the complete source on GitHubad-creative
When your agent uses it
Write ad copy variants to each platform's specs, policy-checked and in brand voice. "write ad copy for Meta"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
1,487 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
../../scripts/paid_products.jsonasset10,417 bytesSKILL.mdcore6,608 bytes
Read SKILL.md
# /digital-marketing-pro:ad-creative
## Purpose
Generate high-performing ad copy variations tailored to specific platforms and formats. Each variation is scored for quality and compliance, with recommendations for testing strategy.
## Input Required
The user must provide (or will be prompted for):
- **Product/service**: What is being advertised
- **Platform(s)**: Google Ads, Meta (Facebook/Instagram), LinkedIn, TikTok, X, Pinterest
- **Ad format**: RSA, single image, carousel, video script, story, etc. For video ad scripts (6s bumper, 15s skippable, 30s spot, UGC-style), route to /digital-marketing-pro:video-script — its step 2.4 carries the per-format structural rules (the 5-second skip deadline, one-message bumpers, native-style disclosure) and its output passes the /check gate. This skill owns the copy layer around the video: headlines, descriptions, and CTAs.
- **Campaign objective**: Awareness, traffic, leads, conversions, app installsView the complete source on GitHubadd-integration
When your agent uses it
Add a custom MCP integration: scaffold the server, write .mcp.json, test it. "add a new MCP server"
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
1,410 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,138 bytes
Read SKILL.md
# /digital-marketing-pro:add-integration
## Purpose
Guide users through adding a custom MCP server integration to the Digital Marketing Pro plugin. Search for existing MCP packages that provide the desired service connection, configure the server entry in `.mcp.json` with proper command, arguments, and environment variables, test connectivity to verify the integration works, and document the available tools. Supports both pre-built MCP servers from npm and custom implementations for proprietary APIs or internal tools.
## Input Required
The user must provide (or will be prompted for):
- **Service to integrate**: The name and purpose of the service to connect — e.g., "Ahrefs for backlink analysis", "Stripe for payment data", "our internal analytics API for custom dashboards". This determines the MCP package search terms and configuration approach
- **Integration type**: The vendor's own server (preferred: a hosted HTTP endpoint, or an npm package the vendor itself publishes, pinned to an exact version) or a custom MCP server (necessary for proprietary APIs, internal tools, or services whose vendor publishes nothing). If unsure, the system looks for the vendor's own server first
- **Credentials available**: API keys, access tokens, OAuth client IDs, or other authentication credentials required by the service. The user should have these ready — the system will specify which environment variable names to use and where to store them, but will never ask the user to paste secrets into the conversation
View the complete source on GitHubaeo-audit
When your agent uses it
Run a one-time AEO audit of six AI answer engines, scored per surface. "check our AI search visibility"
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
2,744 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- How you'll know it worked
- Output
- Numbered output convention
- Quality scorecard
- AI-visibility scoring standard (canonical — reused across the plugin)
- Chain handoffs
- Tips & caveats
- Agents Used
Scripts executed separately
../../scripts/geo-tracker.py../../scripts/recommendation-tracker.py
Files
../../scripts/geo-tracker.pyruns18,563 bytes../../scripts/recommendation-tracker.pyruns6,567 bytesSKILL.mdcore11,962 bytesSKILL.mdcore11,962 bytesSKILL.mdcore11,962 bytesSKILL.mdcore11,962 bytesSKILL.mdcore11,962 bytes
Read SKILL.md
# /digital-marketing-pro:aeo-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
## Purpose
Evaluate the brand's visibility and accuracy across AI answer engines. Analyze how the brand is cited, described, and recommended by ChatGPT, Perplexity, **Google AI Mode** (the conversational search tab; see the AI Mode note in `skills/aeo-geo/SKILL.md`), Google AI Overviews, Gemini, and Microsoft Copilot. Produce optimization recommendations to improve AI visibility.
**AI Mode vs AI Overviews — why both matter:** AI Overviews are the summary block at the top of a classic Google SERP and trigger on a subset of queries. AI Mode is a separate conversational tab (AI Overviews remain the default) backed by Gemini 3.5 Flash with deeper reasoning, follow-ups, and a different citation pattern. The two surfaces often select different sources for the same query; no figure is published, so measure the overlap in your own probe set. Audit both.
**Copilot citation gaps from Bing (13 Oct 2026):** Bing Webmaster Tools → AI Performance → **Topics Portfolio (beta)** lists, per topic, approximate citations across all sites, how many sites are cited, and **Top Opportunity Queries**: grounding queries where other sites are cited and yours is not. It is the first first-party citation-gap list; use its opportunity queries to seed this audit's probe set, and label its figures approximate (Bing does). It shows no clicks, and the tab appears only when Bing has enough data for the site. Source: [Bing Webmaster blog](https://blogs.bing.com/webmaster/2026/10/introducing-topics-portfolio-beta-in-ai-performance/).
View the complete source on GitHubaeo-geo
When your agent uses it
Plan AEO/GEO strategy to get cited by AI: content, entities, schema, 90-day plan. "how do we get cited by AI"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
4,920 tokensWhen the skill is activated
Reference documents
5,707 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Tips & caveats
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesSKILL.mdcore23,477 bytesai-visibility-audit.mddoc6,726 bytescitation-optimization.mddoc5,435 bytesentity-consistency.mddoc5,777 bytesllm-content-strategy.mddoc6,229 bytes
Read SKILL.md
# AEO/GEO Intelligence
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **AI Visibility**: Questions about how a brand, product, or person appears in AI-generated answers (ChatGPT, Perplexity, **Google AI Mode**, Google AI Overviews, Copilot, Gemini, Claude)
- **Answer Engine Optimization (AEO)**: Optimizing content so it gets selected as a source for AI-generated answers
- **Generative Engine Optimization (GEO)**: Structuring content and entities so generative AI platforms accurately represent a brand
- **Citation Tracking**: Monitoring which sources AI models cite when answering queries related to a brand or industryView the complete source on GitHubagency-dashboard
When your agent uses it
Build the agency dashboard across all client brands: health, pacing, risk. "how are all our clients doing"
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
2,034 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py../../scripts/team-manager.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/team-manager.pyruns17,938 bytesSKILL.mdcore9,853 bytes
Read SKILL.md
# /digital-marketing-pro:agency-dashboard
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a portfolio-level dashboard aggregating health metrics across ALL client brands. Shows campaign activity, budget pacing, KPI attainment, content pipeline, and team utilization at a glance — giving agency leadership a single view of operational health without opening each account individually. Designed for daily standups, weekly agency reviews, or on-demand health checks.
## Input Required
The user must provide (or will be prompted for):
- **Dashboard scope**: All brands or a specific list of brand slugs to include in the portfolio view
- **Time period**: Current week, month, or quarter — determines the pacing calculations and comparison windowsView the complete source on GitHubagent-readiness-audit
When your agent uses it
Audit agent readiness by script: AI-crawler rules, product schema, no-JS HTML, feeds. "can AI agents use our site"
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
4,847 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- What the primary sources say (checked 2026-10-04)
- Inputs
- Process
- Numbered output convention
- Quality scorecard
- Output
- Caveats
- Agents used
- See also
Scripts executed separately
../../scripts/agent-readiness-audit.py../../scripts/crawler-log-report.py../../scripts/crawler-log-report.py
Files
../../scripts/agent-readiness-audit.pyruns52,751 bytes../../scripts/crawler-log-report.pyruns19,700 bytes../../scripts/crawler-log-report.pyruns19,700 bytesSKILL.mdcore19,978 bytesSKILL.mdcore19,978 bytesSKILL.mdcore19,978 bytesSKILL.mdcore19,978 bytesSKILL.mdcore19,978 bytes
Read SKILL.md
# /digital-marketing-pro:agent-readiness-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Answer one question with evidence: **can AI agents and AI crawlers use this site?** Concretely, the audit checks five things:
- AI crawlers are allowed to reach the content.
- The content is in the HTML the server sends, so it does not depend on JavaScript running.
- Structured data says what the page is.
- The product feed is complete enough for AI shopping surfaces.
- Optionally, the site exposes agent tools (WebMCP).
Every check is deterministic and runs in `scripts/agent-readiness-audit.py`. The skill adds interpretation and the brand's policy decisions on top of the script's output; it never replaces that output with judgment.View the complete source on GitHubanalytics-insights
When your agent uses it
Design the analytics layer with script-backed benchmarks: KPI trees, report templates, MMM, cookieless. "define our KPIs"
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
5,486 tokensWhen the skill is activated
Reference documents
35,335 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- GA4 "AI Assistant" channel group (added 13 May 2026)
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
- Context efficiency
Files
SKILL.mdcore26,331 bytesSKILL.mdcore26,331 bytesSKILL.mdcore26,331 bytesanomaly-diagnosis.mddoc14,029 bytesclv-analysis.mddoc16,081 bytescompetitive-intelligence.mddoc13,815 bytesdark-social-tracking.mddoc13,688 bytesdashboard-design.mddoc21,403 bytesincrementality-testing.mddoc14,555 byteskpi-frameworks.mddoc11,974 bytesmmm-framework.mddoc18,058 bytesprivacy-first-measurement.mddoc19,610 bytesreporting-templates.mddoc11,265 bytes
Read SKILL.md
# Analytics & Insights
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
## GA4 "AI Assistant" channel group (added 13 May 2026)
Google Analytics 4 added a new **default channel group called "AI Assistant"** on 13 May 2026 ([GA4 channel groups doc](https://support.google.com/analytics/answer/9164320?hl=en)). When a referrer matches a recognized AI Assistant (ChatGPT, Gemini, Claude, etc.), GA4 automatically:
- Categorizes the session under the **AI Assistant channel group**
- Sets the **Medium dimension to `ai-assistant`**
This is the **attribution-side counterpart** to the new GSC AI Performance Report (rolled out 3 June 2026 — see `/digital-marketing-pro:gsc-ai-performance`). Because the GSC AI report intentionally excludes click data, the GA4 AI Assistant channel is currently the cleanest path to attribute *actual traffic* coming from generative AI surfaces.
**Recommended GA4 setup checks** when onboarding a brand:View the complete source on GitHubanomaly-scan
When your agent uses it
Scan connected platforms for anomalies against stored baselines, with likely causes. "why did our CPA spike"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,609 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/connector_resolver.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py../../scripts/performance-monitor.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/performance-monitor.pyruns12,549 bytesSKILL.mdcore7,503 bytes
Read SKILL.md
# /digital-marketing-pro:anomaly-scan
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Scan all connected marketing platforms for anomalies — statistically significant deviations from established baselines that could indicate problems (traffic drops, CPA spikes, deliverability collapse, budget overruns) or opportunities (viral content, conversion rate improvements, unexpected channel growth). Designed to catch issues early, before they compound into costly problems, and to surface wins worth amplifying.
## Input Required
The user must provide (or will be prompted for):
- **Sensitivity level**: Strict (flags deviations >1.5 standard deviations from baseline), normal (>2 std dev),
or relaxed (>3 std dev). Defaults to normalView the complete source on GitHubattribution-model
When your agent uses it
Design an attribution model and credit rules. Real path data → attribution-report. "set up multi-touch attribution"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,785 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore9,182 bytesSKILL.mdcore9,182 bytes
Read SKILL.md
# /digital-marketing-pro:attribution-model
## Purpose
Design and recommend a multi-touch attribution model with implementation guidance, credit distribution rules, and platform-specific configuration. Produces a complete attribution strategy tailored to the business's data maturity, sales cycle, and analytics infrastructure.
## Input Required
The user must provide (or will be prompted for):
- **Sales cycle length**: Average number of days from first touchpoint to conversion (e.g., 7 days for e-commerce, 90+ days for B2B enterprise)
- **Active marketing channels**: All channels currently running — paid search, paid social, organic search, email, display, video, affiliate, direct mail, events, referral, content marketing, etc.
- **Conversion types**: The key conversion events being tracked — lead form, MQL, SQL, opportunity, customer, revenue, or e-commerce purchase
- **Data maturity level**: Current analytics sophistication — beginner (basic GA4, limited tagging), intermediate (UTM tracking, CRM integration, multi-platform), or advanced (data warehouse, CDI, unified user IDs)View the complete source on GitHubattribution-report
When your agent uses it
Run attribution on real conversion paths, comparing models. "which channels actually drive revenue"
What it loads into context
Frontmatter
25 tokensAlways available to the agent
SKILL.md
2,366 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- GA4 AI Assistant channel (added 13 May 2026)
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore12,517 bytes
Read SKILL.md
# /digital-marketing-pro:attribution-report
## GA4 AI Assistant channel (added 13 May 2026)
When generating attribution reports against a GA4 property, the **AI Assistant** default channel group is now a first-class channel. GA4 automatically categorizes sessions referred by ChatGPT, Gemini, Claude, and other recognized AI assistants under this channel (and sets `Medium=ai-assistant`). For any brand running an AEO program, include the AI Assistant channel in the channel set and compare its contribution across all attribution models (first-touch, last-touch, linear, time-decay, position-based, data-driven).
The model-comparison view is especially informative here: AI Assistant traffic often shows wildly different credit under first-touch vs last-touch because users frequently *discover* a brand via an AI assistant but convert via a later branded search or direct visit. Don't conclude "AI search doesn't drive revenue" from a last-touch number alone.
Source: [GA4 default channel groups](https://support.google.com/analytics/answer/9164320?hl=en). For the upstream impression-side data, pair with `/digital-marketing-pro:gsc-ai-performance` (GSC AI Performance Report rolled out 3 June 2026, deliberately no click data — so GA4 is your click attribution surface).
## Purpose
Generate multi-touch attribution analysis showing how different marketing channels and campaigns contribute to conversions. Compare multiple attribution models side-by-side, allocate revenue across touchpoints, and provide actionable budget reallocation recommendations based on true channel contribution. This command moves beyond simplistic last-click attribution to reveal the full customer journey — identifying which channels drive awareness, which nurture consideration, and which close conversions — so marketing budgets can be allocated based on actual contribution rather than positional bias.
View the complete source on GitHubaudience-intelligence
When your agent uses it
Research audiences: personas, JTBD maps, RFM segments. One persona doc → audience-profile. "run a JTBD analysis"
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
3,069 tokensWhen the skill is activated
Reference documents
8,934 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore14,900 bytescustomer-research-methods.mddoc16,332 bytesjtbd-framework.mddoc5,447 bytespersona-builder.mddoc6,555 bytespsychographic-profiling.mddoc5,630 bytessegmentation.mddoc5,010 bytes
Read SKILL.md
# Audience Intelligence
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Buyer Persona Creation**: Building detailed profiles of ideal customers for marketing and product decisions
- **Audience Research**: Understanding who a brand's customers or prospects are at a demographic, psychographic, and behavioral level
- **Segmentation Strategy**: Dividing an audience into meaningful groups for targeted marketing
- **Jobs-to-Be-Done (JTBD) Analysis**: Identifying the functional, social, and emotional jobs customers hire a product to do
- **Psychographic Profiling**: Understanding audience values, attitudes, interests, lifestyles, and motivations
- **Anti-Persona Definition**: Defining who is NOT the target customer to prevent wasted spendView the complete source on GitHubaudience-profile
When your agent uses it
Profile 2-4 buyer personas as narrative documents: drivers, objections, journey. "create a buyer persona"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
659 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,012 bytes
Read SKILL.md
# /digital-marketing-pro:audience-profile
## Purpose
Build a rich, actionable buyer persona that goes beyond basic demographics. Captures psychographic drivers, behavioral patterns, jobs-to-be-done, objections, and content consumption preferences to inform all marketing activities.
## Input Required
The user must provide (or will be prompted for):
- **Product/service**: What the brand offers
- **Customer type**: B2B buyer, B2C consumer, or both
- **Existing data**: Any customer research, survey data, analytics demographics, CRM data, or interview insights
- **Number of personas**: How many distinct personas to create (recommend 2-4)View the complete source on GitHubautopilot-status
When your agent uses it
Show autopilot status: health, auto-corrections, guardrails, escalations. "what did the autopilot change"
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
1,453 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-health-monitor.py
Files
../../scripts/campaign-health-monitor.pyruns34,174 bytesSKILL.mdcore7,256 bytes
Read SKILL.md
# /digital-marketing-pro:autopilot-status
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Campaign operations autopilot dashboard. Show health scores for all active campaigns, list any auto-corrections taken recently, display current guardrail configuration, flag campaigns needing human attention, and report savings from automated interventions. Provides a single-view operational picture of how the autopilot system is managing campaign health — so the user can trust what's running smoothly, focus attention on what needs it, and quantify the value of automated monitoring.
## Input Required
The user must provide (or will be prompted for):
- **Time period**: The lookback window for correction history and savings calculation — defaults to "last 24 hours". Accepts "last 1 hour", "last 12 hours", "last 24 hours", "last 7 days", "last 30 days", or a custom date range. Shorter periods for real-time operational checks, longer periods for performance reviews and reporting
- **Campaign filter (optional)**: Narrow the dashboard to specific campaigns by name, ID, channel, or status — e.g., "Q1 brand awareness campaigns only", "all Google Ads campaigns", or "campaign-id-12345". If omitted, shows all active campaigns across all channelsView the complete source on GitHubbacklink-gap
When your agent uses it
Find backlink gap domains linking to competitors, not you, scored by script. "who links to our competitors but not us"
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
2,654 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Context efficiency
- When to Use
- Brand context (auto-applied)
- Inputs
- Process (10 steps, numbered-file output)
- Output format
- Quality scorecard (the four gates)
- Priority score (0–1, displayed in 04-gap-run.json)
- After the audit
- Chain handoffs
- Tips & caveats
- Agents used
- See also
Scripts executed separately
../../scripts/backlink_gap.py
Files
../../scripts/backlink_gap.pyruns13,454 bytesSKILL.mdcore10,863 bytesSKILL.mdcore10,863 bytes
Read SKILL.md
# /digital-marketing-pro:backlink-gap
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Identify the highest-leverage backlink prospects — domains that link to multiple competitors but not to you — and rank them by an opinionated priority score that combines authority, link-overlap signal, downstream traffic, and topical relevance. Produces a numbered output bundle ready for outreach handoff.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List `${CLAUDE_PLUGIN_DATA}/<brand>/` before opening files. On re-invocation mid-session, skip files already in context.
## When to Use
View the complete source on GitHubbrand-setup
When your agent uses it
Set up or update the brand profile every skill reads: voice, audience, compliance. "set up a new brand"
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
2,048 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Setup Modes
- Process (Full Setup)
- Switching Brands
- Updating a Brand
- Profile Storage and Brand Isolation
- After Setup
- Important Notes
Scripts executed separately
../../scripts/setup.py
Files
../../scripts/requirements.txtdoc1,224 bytes../../scripts/setup.pyruns25,740 bytesSKILL.mdcore8,351 bytes
Read SKILL.md
# Brand Setup — Interactive Brand Profiling
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
- User says "set up a new brand" or "create a brand profile"
- User mentions a new client or project for marketing
- User wants to switch between brands (agency use case)
- User wants to update brand voice, audiences, or goals
- First time using any marketing skill without an active brand
## Setup Modes
View the complete source on GitHubbudget-optimizer
When your agent uses it
Optimize channel budget with diminishing-returns models. Pacing → budget-tracker. "is our channel split right"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
1,306 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/budget-optimizer.py../../scripts/budget-optimizer.py
Files
../../scripts/budget-optimizer.pyruns12,052 bytes../../scripts/budget-optimizer.pyruns12,052 bytesSKILL.mdcore6,456 bytes
Read SKILL.md
# /digital-marketing-pro:budget-optimizer
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Data-driven marketing budget optimization across channels using performance data and industry benchmarks. Analyzes current spend efficiency, models diminishing returns per channel, and produces an optimized allocation with projected ROI improvement and a phased reallocation timeline.
## Input Required
The user must provide (or will be prompted for):
- **Current budget by channel**: How spend is distributed today (e.g., paid search, paid social, SEO, email, content, display, affiliate, events, etc.)
- **Performance data by channel**: Key metrics per channel — spend, revenue or conversions, CPA, ROAS, and conversion volume over the measurement periodView the complete source on GitHubbudget-tracker
When your agent uses it
Project ad budget pacing by script from live accounts or given numbers: month-end overspend. "are we overspending this month"
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
1,645 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/ad-budget-pacer.py../../scripts/budget-optimizer.py../../scripts/budget-optimizer.py../../scripts/connector_resolver.py../../scripts/performance-monitor.py
Files
../../scripts/ad-budget-pacer.pyruns15,378 bytes../../scripts/budget-optimizer.pyruns12,052 bytes../../scripts/budget-optimizer.pyruns12,052 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/performance-monitor.pyruns12,549 bytesSKILL.mdcore7,441 bytes
Read SKILL.md
# /digital-marketing-pro:budget-tracker
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Track advertising budget in real-time across all connected ad platforms. Analyze spend pacing against targets, project end-of-period totals, flag overspend risks and underspend inefficiencies, calculate daily burn rates, and recommend budget reallocations to maximize ROI within the remaining budget window. Designed for media buyers and marketing managers who need a single view of where money is going and whether it is being spent effectively.
## Input Required
The user must provide (or will be prompted for):
- **Budget period**: This month, this quarter, or a custom date range (e.g., "Feb 1 - Mar 31").
Determines the pacing denominator and projection horizonView the complete source on GitHubc2pa-metadata
When your agent uses it
Embed C2PA provenance in AI-generated images, video or PDF by script. "add content credentials to this asset"
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
2,784 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- When to invoke
- Quick examples
- AI claim values (IPTC digital source type)
- Supported asset formats
- Signing certificate
- Python dependencies
- Output
- Integration with the engagement workflow
- Related
Scripts executed separately
../../scripts/embed-c2pa.py
Files
../../scripts/embed-c2pa.pyruns19,964 bytesSKILL.mdcore11,058 bytesSKILL.mdcore11,058 bytesSKILL.mdcore11,058 bytesSKILL.mdcore11,058 bytes
Read SKILL.md
# /digital-marketing-pro:c2pa-metadata — Embed Content Authenticity Provenance
## Purpose
Wraps `scripts/embed-c2pa.py` to add a **C2PA (Coalition for Content Provenance and Authenticity) manifest** to any AI-generated marketing asset. The manifest carries a machine-readable provenance trail (who generated it, what generator was used, what prompt produced it, when it was reviewed) plus a visible AI-generation claim in the IPTC digital-source-type vocabulary.
This is the technical mechanism brands use to comply with:
- **EU AI Act Article 50** (has applied since 2 August 2026; generative systems that existed before then have until 2 December 2026 to mark their output under Article 50(2)) — generative-AI marketing content must be marked in a machine-readable format using open, interoperable standards. C2PA is the emerging backbone. Penalty for non-compliance: up to **€15 million or 3% global annual turnover**.
- **NY synthetic-performer disclosure law** (S.8420-A, signed 2025-12-11, in force 2026-06-09: an ad that uses an AI-generated synthetic performer must disclose it conspicuously; $1,000 for a first violation and $5,000 for each later one; applies to ads reaching New York audiences ([Governor's release](https://www.governor.ny.gov/news/governor-hochul-signs-legislation-protect-consumers-and-boost-ai-transparency-film-industry), 2025-12-11; the effective date and penalties as reported by law-firm summaries)).
- **FTC rules on endorsements and reviews**: the Endorsement Guides (16 CFR Part 255, revised 2023) and the Consumer Reviews and Testimonials Rule (16 CFR Part 465, in force 2024-10-21), which bans fake reviews and testimonials, AI-generated ones included; the FTC's Q&A says an AI avatar can still be a testimonial and can deceive ([FTC Q&A](https://www.ftc.gov/business-guidance/resources/consumer-reviews-testimonials-rule-questions-answers)).
- **Australia Online Safety Act / UK Online Safety Act** — emerging deepfake disclosure requirements.
The resulting asset can be inspected by any C2PA-aware viewer (Adobe Photoshop, Lightroom, Truepic, [contentcredentials.org/verify](https://contentcredentials.org/verify)).View the complete source on GitHubcampaign-audit
When your agent uses it
Audit all campaigns running for a brand across channels, with 4-tier triage. "we just inherited this account"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
4,021 tokensWhen the skill is activated
Reference documents
12,577 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Why this skill exists
- What gets audited
- Process
- Behaviour rules
- Arguments
- Related skills + commands
Scripts executed separately
../../scripts/ai-visibility-checker.py../../scripts/connector_resolver.py../../scripts/crm-sync.py../../scripts/model_router.py../../scripts/performance-monitor.py../../scripts/recommendation-tracker.py../../scripts/recommendation-tracker.py../../scripts/resolve_model.py../../scripts/seo-executor.py../../scripts/seo-executor.py
Files
../../scripts/ai-visibility-checker.pyruns18,972 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/crm-sync.pyruns15,922 bytes../../scripts/model_router.pyruns47,101 bytes../../scripts/performance-monitor.pyruns12,549 bytes../../scripts/recommendation-tracker.pyruns6,567 bytes../../scripts/recommendation-tracker.pyruns6,567 bytes../../scripts/resolve_model.pyruns19,058 bytes../../scripts/seo-executor.pyruns17,154 bytes../../scripts/seo-executor.pyruns17,154 bytes../aeo-audit/SKILL.mddoc11,962 bytesSKILL.mdcore17,147 bytesSKILL.mdcore17,147 bytesSKILL.mdcore17,147 bytesSKILL.mdcore17,147 bytesSKILL.mdcore17,147 bytes../campaign-plan/SKILL.mddoc4,326 bytes../competitor-analysis/SKILL.mddoc3,148 bytes../launch-campaign/SKILL.mddoc14,093 bytes../performance-check/SKILL.mddoc8,183 bytes../validate-profile/SKILL.mddoc12,792 bytes
Read SKILL.md
# /digital-marketing-pro:campaign-audit — Cross-Channel Current-State Audit
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill produces a single document describing **everything currently running for a brand across every channel** — what's live, what's spending, what's performing, what's leaking budget, what's quietly broken. It's the prerequisite for any informed `/digital-marketing-pro:campaign-plan`, `/digital-marketing-pro:performance-report`, or `/digital-marketing-pro:competitor-analysis` refresh.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's data dir (`~/.claude-marketing/brands/{slug}/`, or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
Use this skill:
View the complete source on GitHubcampaign-orchestrator
When your agent uses it
Orchestrate a campaign lifecycle: briefs, budget models, UTMs, post-mortems. "set up UTM naming conventions"
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
3,061 tokensWhen the skill is activated
Reference documents
11,474 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore14,700 bytesabm-strategy.mddoc4,943 bytesbudget-allocation.mddoc4,736 bytescampaign-planning.mddoc4,477 byteschannel-strategy.mddoc4,549 bytespost-mortem.mddoc3,322 bytessales-enablement.mddoc22,296 bytesutm-tracking.mddoc4,917 bytes
Read SKILL.md
# Campaign Orchestrator
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Campaign Planning**: Designing a new marketing campaign from brief to launch plan
- **Budget Allocation**: Distributing marketing spend across channels, campaigns, or time periods
- **Channel Mix Optimization**: Selecting and balancing the right marketing channels for a goal
- **Media Planning**: Building a media plan with placements, timing, and spend
- **UTM Tracking**: Standardizing URL tracking parameters for campaign measurement
- **Cross-Channel Orchestration**: Coordinating messaging and timing across multiple channelsView the complete source on GitHubcampaign-plan
When your agent uses it
Write a multi-channel campaign plan: objectives, channel mix, budget, timeline, KPIs. "build the Q3 campaign plan"
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
925 tokensWhen the skill is activated
Reference documents
989 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Before it goes to the client
- Agents Used
Files
SKILL.mdcore4,326 bytesbrief-structure.mddoc4,825 bytesevals/evals.jsonasset2,872 bytes
Read SKILL.md
# /digital-marketing-pro:campaign-plan
## Purpose
Generate a comprehensive multi-channel campaign plan ready for execution. Covers strategic objectives, audience segmentation, channel selection, budget distribution, phased timeline, and measurable KPIs.
## Input Required
The user must provide (or will be prompted for):
- **Campaign goal**: What the campaign should achieve (awareness, leads, sales, retention, etc.)
- **Product/service**: What is being promoted
- **Target audience**: Who the campaign is for (or use existing brand personas)
- **Budget**: Total available budget or budget rangeView the complete source on GitHubcampaign-status
When your agent uses it
Show status of every tracked campaign: health, spend, executions, pending approvals. "what campaigns are running right now"
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
1,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py../../scripts/campaign-tracker.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py
Files
../../scripts/approval-manager.pyruns19,439 bytes../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytesSKILL.mdcore6,721 bytes
Read SKILL.md
# /digital-marketing-pro:campaign-status
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Provide a unified view of all active campaigns across every connected platform — ads, email, social, blog — with their current status, live performance metrics, execution history, and any pending approvals or scheduled actions. Eliminates the need to check each platform individually and surfaces issues (paused campaigns, failed executions, stale content) before they become problems.
## Input Required
The user must provide (or will be prompted for):
- **Scope**: All active campaigns, a specific campaign by name or ID, or a specific platform
(e.g., "Google Ads campaigns only", "email campaigns", "campaign named Q1-Launch")View the complete source on GitHubcase-study-plan
When your agent uses it
Plan a case study: narrative, interview questions, formats. "turn this client win into a case study"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
1,604 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore8,158 bytes
Read SKILL.md
# /digital-marketing-pro:case-study-plan
## Purpose
Generate a structured case study creation plan with interview framework, data visualization approach, format variations, and distribution strategy. Produces a complete blueprint for building compelling proof-of-results content that drives sales enablement and builds credibility.
## Input Required
The user must provide (or will be prompted for):
- **Client or project to feature**: The specific client engagement, campaign, or project that will be showcased
- **Challenge or problem addressed**: The business problem, market pressure, or growth obstacle the client was facing before the engagement
- **Solution implemented**: The services, campaigns, strategies, or tools deployed to address the challenge
- **Results achieved**: Quantitative outcomes (revenue lift, traffic growth, conversion improvement, cost reduction) and qualitative outcomes (brand perception, team capability, process improvement)View the complete source on GitHubcheck
When your agent uses it
Run the scored pre-publish gate via eval-runner.py: claims, brand voice, compliance, AI tells. "check this before we publish"
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
5,191 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Why this skill exists
- What the check evaluates
- Subcommands and modes
- Output format
- Zero-context review of a client deliverable (`--goldfish`)
- AI-tell scans (advisory section, never scored)
- EU AI Act Article 50 — C2PA provenance gate
- How the skill operates
- Scripts called
- Examples
- When to use which mode
- Behaviour rules
- Related skills + commands
- Related references
Scripts executed separately
../../scripts/ai-tell-scan.py../../scripts/brand-voice-scorer.py../../scripts/claim-verifier.py../../scripts/content-scorer.py../../scripts/embed-c2pa.py../../scripts/embed-c2pa.py../../scripts/embed-c2pa.py../../scripts/embed-c2pa.py../../scripts/embed-c2pa.py../../scripts/embed-c2pa.py../../scripts/eval-runner.py../../scripts/goldfish-review.py../../scripts/hallucination-detector.py../../scripts/output-validator.py../../scripts/readability-analyzer.py../../scripts/setup.py../../scripts/structural-tell-scan.py
Files
../../scripts/ai-tell-scan.pyruns21,289 bytes../../scripts/brand-voice-scorer.pyruns21,099 bytes../../scripts/claim-verifier.pyruns18,049 bytes../../scripts/content-scorer.pyruns30,466 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/embed-c2pa.pyruns19,964 bytes../../scripts/eval-runner.pyruns36,600 bytes../../scripts/goldfish-review.pyruns13,720 bytes../../scripts/hallucination-detector.pyruns22,506 bytes../../scripts/output-validator.pyruns24,278 bytes../../scripts/readability-analyzer.pyruns17,595 bytes../../scripts/requirements.txtdoc1,224 bytes../../scripts/setup.pyruns25,740 bytes../../scripts/structural-tell-scan.pyruns14,421 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytesSKILL.mdcore21,430 bytes
Read SKILL.md
# /digital-marketing-pro:check — Unified Pre-Publish Quality Gate
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill is the canonical pre-publish gate for marketing content. It wraps the evaluation suite (`scripts/eval-runner.py`) and produces a single pass/fail decision with actionable issues.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's workspace at `~/.claude-marketing/brands/{slug}/` (or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
Use this skill **before publishing any marketing content** — blog posts, ad copy, emails, social posts, landing pages, press releases, or any branded copy.
## Why this skill exists
View the complete source on GitHubchurn-risk
When your agent uses it
Score churn risk per segment by script, with tiered retention playbooks. "which customers are about to churn"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
1,786 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/churn-predictor.py
Files
../../scripts/churn-predictor.pyruns18,447 bytesSKILL.mdcore9,129 bytes
Read SKILL.md
# /digital-marketing-pro:churn-risk
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Assess churn risk across customer segments and generate intervention strategies. Score segments using behavioral signals — email engagement decline, purchase frequency drops, login pattern changes, support ticket escalations — to categorize each segment into risk tiers and produce actionable intervention playbooks. This command bridges the gap between knowing customers are churning and knowing what to do about it. Instead of reactive "win-back" campaigns after customers have already left, it identifies at-risk segments early enough to intervene while the relationship is still recoverable. Each intervention playbook includes specific actions, timing windows, channel recommendations, and messaging approaches calibrated to the risk tier and customer value.
## Input Required
The user must provide (or will be prompted for):
- **Customer segments to score**: The segments to evaluate — can be predefined CRM segments (e.g., "Enterprise accounts," "Monthly subscribers," "First-time buyers") or behavioral cohorts (e.g., "Users who haven't purchased in 60 days," "Users with declining email opens"). Each segment should include available behavioral signals: email engagement trends (open rate, click rate, unsubscribe rate over time), purchase frequency and recency, login or product usage patterns, support ticket volume and sentiment, and any other engagement indicators tracked in the CRM
- **CRM data source**: Which CRM system holds the customer data — Salesforce, HubSpot, or another connected CRM MCP. The command will pull behavioral data directly from the CRM if connected, or the user can provide exported dataView the complete source on GitHubclient-onboarding
When your agent uses it
Build a client onboarding pack: kickoff agenda, discovery questions, 30-60-90. "we just signed a new client"
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
1,349 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore6,798 bytes
Read SKILL.md
# /digital-marketing-pro:client-onboarding
## Purpose
Generate a comprehensive client onboarding workflow for a new marketing engagement. Covers kickoff planning, discovery, stakeholder alignment, access provisioning, milestone setting, and communication protocols to ensure a smooth transition from signed contract to active account with clear expectations on both sides.
## Input Required
The user must provide (or will be prompted for):
- **Client name and industry**: The new client's business name, vertical, and market segment
- **Services contracted**: Which marketing services are included in the engagement (SEO, PPC, social, content, email, analytics, etc.)
- **Engagement timeline**: Contract duration and key dates — start date, first deliverable, first review, contract end
- **Team structure (agency side)**: Account lead, strategist, specialists, and any shared resources assigned to the accountView the complete source on GitHubclient-proposal
When your agent uses it
Draft a client proposal or RFP response: scope, deliverables, KPIs, pricing tiers. "respond to this RFP"
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
1,346 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Before it goes to the client
- Agents Used
Files
SKILL.mdcore6,639 bytes
Read SKILL.md
# /digital-marketing-pro:client-proposal
## Purpose
Generate a professional marketing agency proposal or pitch document for a prospective client. Covers strategic analysis, service scope, deliverables, pricing, and team positioning to win new business or formalize an existing engagement with a polished, ready-to-customize document.
## Input Required
The user must provide (or will be prompted for):
- **Client business name and industry**: Who the proposal is for and their vertical/market segment
- **Services requested**: Which marketing services are in scope (SEO, PPC, social, content, email, strategy, creative, analytics, etc.)
- **Estimated budget range**: Client's stated or expected budget for marketing services (monthly or annual)
- **Timeline**: Engagement duration — 3-month pilot, 6-month contract, 12-month retainer, or project-based with defined milestonesView the complete source on GitHubclient-report
When your agent uses it
Write a white-labeled report for one client from tracked data. All clients → agency-dashboard. "prepare the monthly client report"
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
2,139 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Before it goes to the client
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py../../scripts/report-generator.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/report-generator.pyruns15,098 bytesSKILL.mdcore10,272 bytes
Read SKILL.md
# /digital-marketing-pro:client-report
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a professional, white-labeled client report for a specific brand. Uses agency voice (not brand voice), includes KPI performance, channel breakdowns, strategic recommendations, and next steps. Designed for external client delivery via Slack, email, Google Sheets, or markdown — with approval gating before any external send to prevent accidental disclosure or premature delivery of draft findings.
## Input Required
The user must provide (or will be prompted for):
- **Brand slug**: The brand this report covers — must match a configured brand in `~/.claude-marketing/brands/`
- **Report type**: One of:View the complete source on GitHubclient-validation-document
When your agent uses it
Produce the Part 5 client validation document: evidence-cited findings for client decisions. "prepare v1 findings for client review"
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
3,216 tokensWhen the skill is activated
Reference documents
7,122 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- What this document is
- What this document is NOT
- Pre-conditions
- Document Structure
- Finding Block Format
- Materiality Classification
- Response Categorisation for the Decision Matrix
- Production Steps
- Recording Client Responses
- Quality Discipline
- Examples
- Related skills
- Related references
Scripts executed separately
../../scripts/engagement-state.py
Files
../../scripts/engagement-state.pyruns38,195 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytesSKILL.mdcore13,572 bytes../context-engine/decision-matrix-rerun.mddoc5,008 bytes../context-engine/engagement-flow-methodology.mddoc11,632 bytes../context-engine/stone-vs-opinion.mddoc7,875 bytes../context-engine/two-views-model.mddoc5,657 bytes
Read SKILL.md
# /digital-marketing-pro:client-validation-document — Part 5: The One True Stop
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill produces the Part 5 deliverable: the Client Validation Document. It is the only point in the engagement where unbiased v1 findings are formally presented to the client for accept/reject/edit decisions.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List `${CLAUDE_PLUGIN_DATA}/<brand>/` before opening files. On re-invocation mid-session, skip files already in context.
This is the **one true stop** in the 12-Part flow. Nothing in Parts 6+ proceeds until this is signed off.
## What this document is
View the complete source on GitHubcohort-analysis
When your agent uses it
Run cohort analysis: retention matrix and LTV by cohort. Churn scoring → churn-risk. "build a retention matrix"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
2,104 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore10,830 bytesSKILL.mdcore10,830 bytesSKILL.mdcore10,830 bytesSKILL.mdcore10,830 bytesSKILL.mdcore10,830 bytesSKILL.mdcore10,830 bytes
Read SKILL.md
# /digital-marketing-pro:cohort-analysis
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Perform customer cohort analysis to understand lifecycle patterns, retention, and value over time. Segment customers into cohorts by acquisition date, channel, behavior, or value tier, then track retention curves, compare cohort performance, and identify which acquisition sources produce the highest-value customers. This analysis reveals whether the business is acquiring better or worse customers over time, which channels drive long-term value versus one-time transactions, and where lifecycle interventions (onboarding improvements, re-engagement campaigns, loyalty programs) would have the greatest impact on retention and revenue.
## Input Required
The user must provide (or will be prompted for):
- **Cohort type**: `time-based` (customers grouped by acquisition week, month, or quarter — the standard cohort analysis showing retention evolution over time), `channel-based` (customers grouped by acquisition source — paid search, organic, social, email, referral — revealing which channels produce the most durable customers), `behavioral` (customers grouped by first action taken — e.g., product category purchased, feature used, content consumed — identifying which entry points lead to highest retention), or `revenue-tier` (customers grouped by initial purchase value — low, medium, high, enterprise — showing how starting value correlates with lifetime retention and expansion)
- **Time period and granularity**: The analysis window and cohort size — weekly cohorts for the past 3 months (high resolution, best for fast-cycle businesses), monthly cohorts for the past 12 months (standard for most businesses), or quarterly cohorts for multi-year analysis (best for long-cycle B2B or subscription businesses). Granularity determines both how cohorts are defined and the retention interval measuredView the complete source on GitHubcompetitor-alerts
When your agent uses it
Configure competitor alerts: change thresholds per competitor, urgency routing, digests. "set up competitor alerts"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
3,055 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore17,409 bytes
Read SKILL.md
# /digital-marketing-pro:competitor-alerts
## Purpose
Configure an intelligent competitor alert system that surfaces competitive changes worth knowing about while actively managing alert fatigue. Define what types of competitive changes should trigger notifications, at what significance thresholds, for which competitors, through which channels, and at what urgency tier. Competitive monitoring generates a high volume of raw change signals — most are noise that does not warrant human attention. This command transforms raw change detection into actionable competitive intelligence by applying tiered urgency rules, smart thresholds calibrated to each dimension's natural volatility, and digest batching that groups lower-priority changes into periodic summaries rather than individual pings. The result is a competitor alert pipeline that reliably surfaces high-impact competitive moves in real-time while packaging routine competitive activity into digestible periodic briefings that maintain awareness without disruption. Supports per-competitor and per-dimension alert customization so the user can watch a primary rival more closely with tighter thresholds while applying lighter monitoring to secondary and emerging competitors.
## Input Required
The user must provide (or will be prompted for):
- **Competitors to monitor**: Which tracked competitors should have alerts enabled — can be all currently monitored competitors from competitor-monitor or a specific subset. Each competitor can have fully independent alert configurations, allowing tighter trigger thresholds and higher default urgency for primary rivals versus secondary competitors. Competitors must have existing baselines from competitor-monitor to enable meaningful change detection; if any requested competitors lack baselines, the user is prompted to run competitor-monitor first to establish the reference state
- **Alert types to enable**: Which competitive change categories to monitor — `content` (new pages published, significant edits to key pages, messaging or value proposition changes), `pricing` (any pricing page change, plan restructuring, new discount offers or promotions, free trial modifications), `ads` (new campaign launches in Google Ads or Meta, major creative rotations, new advertising platform presence), `social` (mention volume spikes, sentiment shifts, viral content, significant follower growth), `ranking` (organic position changes on tracked keywords beyond the configured threshold), `serp` (featured snippet ownership changes, People Also Ask presence shifts, knowledge panel updates, AI overview citation changes), `positioning` (correlated changes across multiple dimensions suggesting a deliberate strategic shift). Select all for comprehensive alerting or choose specific types per competitor based on competitive priorities
- **Urgency tiers per alert type**: Assignment of each enabled alert type to an urgency tier — `critical` (immediate real-time notification for high-impact competitive moves demanding fast response), `warning` (batched into daily digest for notable but non-urgent changes requiring awareness), or `info` (collected into weekly digest for background intelligence and pattern recognition). If not specified by the user, defaults are applied based on typical competitive impact patterns and dimension sensitivity
- **Notification channel**: Where to deliver alerts — Slack channel name (e.g., #competitor-alerts, #marketing-intel, #urgent-competitive) or email address. Supports specifying different channels per urgency tier for intelligent routing — e.g., critical alerts to #urgent-alerts with @channel mention for immediate visibility, warning alerts to #competitor-daily for morning review, and info alerts bundled into the #competitor-weekly digest. For Slack delivery, requires the Slack MCP server to be connected with posting permissions on the target channelsView the complete source on GitHubcompetitor-analysis
When your agent uses it
Analyze 2-5 competitors once: positioning, content, SEO, ads, pricing. Ongoing → competitor-monitor. "how do we stack up against X"
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
652 tokensWhen the skill is activated
Reference documents
1,152 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,148 bytesdimension-checklists.mddoc5,593 bytes
Read SKILL.md
# /digital-marketing-pro:competitor-analysis
## Purpose
Deliver a comprehensive competitive intelligence report across all major marketing dimensions. Identify competitor strengths, weaknesses, strategies, and gaps the brand can exploit.
## Input Required
The user must provide (or will be prompted for):
- **Competitors**: 2-5 competitor names and/or URLs
- **Analysis scope**: Full analysis or specific dimensions (SEO, content, ads, social, pricing)
- **Key battleground keywords**: Terms where the brand competes head-to-head
- **Industry/category**: For contextual benchmarkingView the complete source on GitHubcompetitor-monitor
When your agent uses it
Monitor competitors over time: baseline sites, pricing and ads by script, flag changes. "track our competitors over time"
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
2,224 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/competitor-tracker.py../../scripts/competitor-tracker.py
Files
../../scripts/competitor-tracker.pyruns19,385 bytes../../scripts/competitor-tracker.pyruns19,385 bytesSKILL.mdcore12,374 bytesSKILL.mdcore12,374 bytes
Read SKILL.md
# /digital-marketing-pro:competitor-monitor
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Set up and manage ongoing competitor monitoring. Define which competitors to track, what to monitor (content changes, pricing updates, ad activity, social mentions, SEO rankings, SERP feature ownership), how often to scan each dimension, and what alerts to trigger when significant changes are detected. This command establishes competitive intelligence baselines by capturing the current state of each competitor across all monitored dimensions, then configures recurring scans to detect and surface changes over time. Baselines serve as the reference point for all future change detection — without them, alerts have no context for what constitutes a meaningful shift versus normal fluctuation. Supports per-dimension scan frequencies so high-velocity dimensions like pricing and ads can be checked daily while slower-moving dimensions like content strategy and SEO authority are reviewed weekly or monthly. The monitoring configuration persists across sessions and powers both the competitor-alerts notification system and the share-of-voice trend tracking.
## Input Required
The user must provide (or will be prompted for):
- **Competitors to track**: A list of competitor names with their primary website URLs — e.g., "Acme Corp (acme.com), Beta Inc (beta.io), Gamma Labs (gammalabs.com)". Each competitor becomes a monitored entity with its own baseline profile and independent scan schedule. Minimum one competitor required, no upper limit but recommend 3-8 for manageable monitoring volume and meaningful competitive context without signal overload
- **Monitoring dimensions**: Which competitive aspects to track for each competitor — `content` (new pages, blog posts, significant page edits, messaging changes on key pages), `pricing` (pricing page changes, plan restructuring, discount offers, free trial modifications), `ads` (new Google Ads campaigns, Meta Ad Library activity, ad copy and creative changes, new platform presence), `social` (mention volume, sentiment shifts, follower growth, posting frequency and engagement rates), `seo` (organic keyword rankings on tracked terms, domain authority changes, backlink profile shifts, new content indexation), `serp` (featured snippet ownership, People Also Ask presence, knowledge panel changes, AI overview citations). Select all for comprehensive coverage or choose a subset per competitor based on competitive relevanceView the complete source on GitHubcompetitor-pages
When your agent uses it
Build competitor comparison pages: X-vs-Y, alternatives and roundups, with schema. "create a vs page"
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
1,872 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Page Types
- Process
- Comparison Table Template
- Schema Markup Templates
- Keyword Targeting
- Conversion-Optimized Layouts
- Fairness Guidelines
- Output
- Agents Used
- Scripts Used
Files
SKILL.mdcore7,987 bytesSKILL.mdcore7,987 bytesSKILL.mdcore7,987 bytesSKILL.mdcore7,987 bytes
Read SKILL.md
# /digital-marketing-pro:competitor-pages
## Purpose
Create high-converting competitor comparison and alternatives pages that target competitive intent keywords with accurate, structured content and appropriate schema markup.
## Input Required
The user must provide (or will be prompted for):
- **Page type**: "X vs Y", "alternatives to X", "best tools roundup", or "comparison table"
- **Your product/service**: The product being positioned
- **Competitors**: 1-5 competitor products to compare against
- **Comparison criteria**: Features, pricing, use cases to compare (or auto-detected)View the complete source on GitHubconnect
When your agent uses it
Connect a known MCP integration: check the registry and status, return exact setup steps. "connect Google Ads"
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
2,105 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/connector-status.py../../scripts/connector-status.py
Files
../../scripts/connector-status.pyruns17,623 bytes../../scripts/connector-status.pyruns17,623 bytesSKILL.mdcore9,185 bytes
Read SKILL.md
# /digital-marketing-pro:connect
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Guide users through connecting a specific MCP integration to the Digital Marketing Pro plugin. Provides platform-specific setup instructions, credential requirements, configuration steps, and verification. This is the user-friendly entry point for adding integrations — it handles the common cases (known connectors with established setup paths) while `/digital-marketing-pro:add-integration` handles custom or unknown MCP servers.
## Input Required
The user must provide (or will be prompted for):
- **Connector name**: The service to connect — e.g., "google-ads", "salesforce", "mailchimp", "twilio", "deepl". If the user provides a partial or informal name (e.g., "google analytics", "fb ads", "linkedin"), match it to the closest connector in the registry
- **Environment** (optional): Whether they're using Claude Code (supports HTTP + npx) or Cowork (HTTP only). Defaults to auto-detect based on available context. If the requested connector is npx-only and the user is on Cowork, explain the limitation and suggest HTTP alternatives in the same categoryView the complete source on GitHubcontent-brief
When your agent uses it
Write an executable content brief: keyword map, outline, intent, SEO checklist. "write a brief for this topic"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
965 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore4,359 bytes
Read SKILL.md
# /digital-marketing-pro:content-brief
## Purpose
Create a production-ready content brief that a writer can execute without additional context. Includes keyword strategy, content outline, structural requirements, brand voice guidelines, and on-page SEO specifications.
## Input Required
The user must provide (or will be prompted for):
- **Topic or working title**: What the content is about
- **Content type**: Blog post, landing page, pillar page, guide, whitepaper, etc.
- **Target keyword(s)**: Primary keyword or topic cluster (or ask for research)
- **Target audience**: Who this content is forView the complete source on GitHubcontent-calendar
When your agent uses it
Build a content calendar: topics by platform and date, pillar and funnel tags. "plan next month's content"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
651 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore2,975 bytes
Read SKILL.md
# /digital-marketing-pro:content-calendar
## Purpose
Generate a structured content calendar that maps topics to platforms, aligns with content pillars, and includes a repurposing workflow to maximize output from each core piece.
## Input Required
The user must provide (or will be prompted for):
- **Time period**: Month, quarter, or custom date range
- **Platforms**: Which channels to plan for (blog, social, email, video, podcast)
- **Content pillars**: Core themes or topics (or let the system recommend based on brand profile)
- **Publishing cadence**: How often per platform (e.g., 3 blogs/month, daily social)View the complete source on GitHubcontent-decay-scan
When your agent uses it
Scan content for decay by script and rank refreshes by recoverable traffic. "which content is losing traffic"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
2,382 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Tips & caveats
- Agents Used
Scripts executed separately
../../scripts/creative-fatigue-predictor.py
Files
../../scripts/creative-fatigue-predictor.pyruns23,338 bytesSKILL.mdcore11,842 bytesSKILL.mdcore11,842 bytes
Read SKILL.md
# /digital-marketing-pro:content-decay-scan
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Scan the entire content library for decay signals and prioritize refreshes by business impact. Content decay is invisible revenue loss — pages that once ranked well and drove conversions silently lose traffic as competitors publish fresher content, search algorithms evolve, statistics become outdated, and AI systems stop citing stale sources. This command detects declining organic traffic, falling keyword positions, outdated content (stale dates, broken links, deprecated information), lost AI citations, and conversion rate drops. It then ranks every piece of content by business impact — traffic multiplied by conversion rate multiplied by revenue per conversion — so you refresh the content that recovers the most revenue first, not just the content that lost the most traffic.
## Input Required
The user must provide (or will be prompted for):
- **Content library data**: URLs of the content to scan — can be a full sitemap, a specific content directory (e.g., /blog/*, /resources/*), or a curated list of high-value pages. For each URL, the system will pull or needs: current monthly traffic, traffic 3 and 6 months ago for trend analysis, primary keyword rankings (current and historical positions), publish date and last updated date, conversion rate if tracked (form fills, signups, purchases), and revenue attribution if available
- **Analytics source**: Where to pull performance data — Google Analytics and Google Search Console via connected MCPs, or exported CSV data. If MCPs are connected, data is pulled automatically. If not, the user provides exported analytics covering at least the past 6 monthsView the complete source on GitHubcontent-engine
When your agent uses it
Draft content in brand voice through a gated pipeline: blogs, ads, emails. Brief only → content-brief. "write a blog post about X"
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
7,799 tokensWhen the skill is activated
Reference documents
28,845 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Numbered output convention
- Quality scorecard
- AI-assistance disclosure (all runs, not just EU)
- Humanize step (`05-humanize.md`) — what a flag actually is
- Bring your own words (`--source-draft`)
- Structural-tell pass (advisory, never a gate)
- Chain handoffs
- Tips & caveats
- Related Skills
- Context efficiency
Scripts executed separately
../../scripts/ai-tell-scan.py../../scripts/ai-tell-scan.py../../scripts/authorship.py../../scripts/campaign-tracker.py../../scripts/detect_surface.py../../scripts/readability-analyzer.py../../scripts/run-audit.py../../scripts/structural-tell-scan.py
Files
../../scripts/ai-tell-scan.pyruns21,289 bytes../../scripts/ai-tell-scan.pyruns21,289 bytes../../scripts/authorship.pyruns12,726 bytes../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/detect_surface.pyruns3,414 bytes../../scripts/readability-analyzer.pyruns17,595 bytes../../scripts/run-audit.pyruns10,687 bytes../../scripts/structural-tell-scan.pyruns14,421 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesSKILL.mdcore35,618 bytesaccessibility.mddoc3,619 bytesad-copy.mddoc4,631 bytesai-content-quality.mddoc5,035 bytesbrand-voice.mddoc4,617 bytescase-studies.mddoc17,301 bytescontent-calendar.mddoc4,561 bytescontent-decay.mddoc4,582 bytesdraft-deliverables.mddoc5,226 bytesemail-automation.mddoc4,419 bytesemail-infrastructure.mddoc5,655 bytesemail-sequences.mddoc5,582 bytesevals/evals.jsonasset2,673 byteslanding-pages.mddoc4,612 bytesmultilingual.mddoc4,855 bytespersonalization.mddoc20,526 bytesseo-content.mddoc5,651 bytessocial-content.mddoc5,151 bytesvideo-scripting.mddoc16,885 bytes
Read SKILL.md
# Content Engine
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **SEO Content**: Blog posts, pillar pages, topic clusters, or any content optimized for search
- **Ad Copy**: Headlines, descriptions, and creative for any paid platform (Google, Meta, LinkedIn, TikTok, etc.)
- **Email Marketing**: Email sequences, drip campaigns, newsletters, transactional emails, or cold outreach
- **Social Media Content**: Organic posts, captions, hashtag strategy, or content calendars for social platforms
- **Landing Pages**: Conversion-focused page copy, hero sections, CTAs, and page structure
- **Content Calendars**: Editorial planning, content scheduling, and theme mappingView the complete source on GitHubcontent-repurpose
When your agent uses it
Repurpose one content piece into 10+ channel formats with drafts and a calendar. "repurpose this blog post"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,462 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore7,301 bytesSKILL.mdcore7,301 bytesSKILL.mdcore7,301 bytesSKILL.mdcore7,301 bytes
Read SKILL.md
# /digital-marketing-pro:content-repurpose
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Take one piece of existing content and generate a comprehensive repurposing plan across multiple channels and formats. Produces derivative content pieces, a posting schedule, and platform-specific adaptations to maximize the ROI of every content investment.
## Input Required
The user must provide (or will be prompted for):
- **Original content**: The source material -- a URL, pasted text, uploaded document, or description of the content (blog post, webinar recording, podcast episode, whitepaper, case study, presentation, video, etc.)
- **Target channels**: Which platforms and formats to repurpose into (LinkedIn, Twitter/X, Instagram, email newsletter, blog, YouTube, TikTok, podcast, infographic, etc.) or ask for recommendationsView the complete source on GitHubcontext-engine
When your agent uses it
Load shared marketing context: brand profile, benchmarks, compliance rules, specs. "load my brand context"
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
2,902 tokensWhen the skill is activated
Reference documents
207,470 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Required Context
- Brand Profile Management
- How Other Modules Use This Skill
- Business Model Types
- Brand Voice Scoring
- Data Persistence
- MCP Integrations
- Reference Files
Scripts executed separately
../../scripts/setup.py
Files
../../scripts/requirements.txtdoc1,224 bytes../../scripts/setup.pyruns25,740 bytes30-60-90-framework.mddoc8,372 bytesSKILL.mdcore12,847 bytesSKILL.mdcore12,847 bytesSKILL.mdcore12,847 bytesactionable-persona-format.mddoc7,127 bytesadvanced-reporting-guide.mddoc21,618 bytesagency-operations-guide.mddoc16,020 bytesai-visibility-metrics.mddoc2,988 bytesapproval-framework.mddoc13,262 bytesb2b-decision-making-unit.mddoc9,295 byteschannel-families.mddoc7,927 bytescompetitive-monitoring-guide.mddoc17,237 bytescompetitor-3-question-output.mddoc8,178 bytescompliance-rules.mddoc89,278 bytescompound-intelligence-guide.mddoc15,901 bytescreative-intelligence-guide.mddoc14,221 bytescrm-integration-guide.mddoc34,862 bytescustom-mcp-guide.mddoc17,396 bytesdecision-framework.mddoc7,528 bytesdecision-matrix-rerun.mddoc5,008 bytesengagement-flow-methodology.mddoc11,632 byteseu-code-of-practice.mddoc15,946 byteseval-framework-guide.mddoc27,850 byteseval-rubrics.mddoc17,201 bytesexecution-workflows.mddoc23,837 bytesfive-digital-markets.mddoc7,687 bytesfixed-vs-variable-budget.mddoc6,940 bytesfour-core-documents-spec.mddoc14,490 bytesgeo-execution-guide.mddoc20,709 bytesgoogle-seo-reference.mddoc7,443 bytesgrowth-plan-template.mddoc9,769 bytesguidelines-framework.mddoc14,378 bytesin-market-out-market.mddoc6,264 bytesindia-market-context.mddoc14,403 bytesindustry-profiles.mddoc66,573 bytesintelligence-layer.mddoc3,753 bytesjourney-growth-guide.mddoc20,286 bytesliving-instruction-file-spec.mddoc7,407 bytesmarket-intelligence-guide.mddoc14,028 bytesmarketing-science-guide.mddoc14,317 bytesmemory-architecture.mddoc12,630 bytesmonthly-report-template.mddoc7,150 bytesmultilingual-execution-guide.mddoc32,447 bytesnarrative-warfare-guide.mddoc18,380 bytesplatform-publishing-specs.mddoc20,013 bytesplatform-specs.mddoc35,505 bytesreporting-cadence.mddoc8,746 bytesschema-templates.jsonasset8,955 bytesscoring-rubrics.mddoc11,169 bytesself-healing-ops-guide.mddoc18,756 bytesseo-execution-guide.mddoc15,161 bytesstone-vs-opinion.mddoc7,875 bytessynthetic-audience-guide.mddoc20,853 bytesteam-roles-framework.mddoc12,676 bytesthree-scenario-forecasting.mddoc7,600 bytestranscreation-framework.mddoc24,801 bytestwo-views-model.mddoc5,657 bytesunit-economics-framework.mddoc7,652 bytesupdate-back-rule.mddoc7,204 bytesyearly-planner-template.mddoc6,275 bytes
Read SKILL.md
# Context Engine — Shared Marketing Intelligence
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
- User is setting up a new brand or project for marketing
- User switches between brands/clients (agency use case)
- Any other marketing skill needs brand context, industry data, compliance rules, or platform specs
- User asks about industry benchmarks, platform requirements, or regulatory compliance
## Required Context
This skill loads and manages:View the complete source on GitHubcontinuous-improvement-loop
When your agent uses it
Run the Part 12 continuous improvement loop into a quarterly brief for leadership. "produce the quarterly improvement brief"
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
3,228 tokensWhen the skill is activated
Reference documents
8,132 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Why this exists
- The 4 Signal Sources
- Cadence
- The Quarterly Part 12 Deliverable
- The Ad-hoc Part 12 Brief
- Production Process
- Signal Capture Mechanism
- Quality Discipline
- Examples
- Related skills & agents
- Related references
Scripts executed separately
../../scripts/recommendation-tracker.py../../scripts/recommendation-tracker.py
Files
../../scripts/recommendation-tracker.pyruns6,567 bytes../../scripts/recommendation-tracker.pyruns6,567 bytes../context-engine/engagement-flow-methodology.mddoc11,632 bytes../context-engine/living-instruction-file-spec.mddoc7,407 bytes../context-engine/reporting-cadence.mddoc8,746 bytes../context-engine/update-back-rule.mddoc7,204 bytesSKILL.mdcore14,497 bytesSKILL.mdcore14,497 bytes
Read SKILL.md
# /digital-marketing-pro:continuous-improvement-loop — Part 12 Continuous Loop
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
Part 12 is the continuous improvement loop that runs alongside live operations from go-live onwards. It aggregates market signals and operating signals into recommendations that feed back into the brand's product, offering, and service decisions.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's workspace at `~/.claude-marketing/brands/{slug}/` (or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
This is **not a one-time activity**. It runs perpetually once Part 11 is complete, with formal output at each Quarterly Business Review (QBR) and ad-hoc output when significant signals warrant.
## Why this exists
View the complete source on GitHubcounter-narrative
When your agent uses it
Build a counter-narrative playbook for a competitor's rebrand, category claim or attack. "respond to their attack campaign"
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
1,843 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/narrative-mapper.py
Files
../../scripts/narrative-mapper.pyruns24,191 bytesSKILL.mdcore9,334 bytes
Read SKILL.md
# /digital-marketing-pro:counter-narrative
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a counter-narrative playbook in response to a competitor's strategic positioning move. When a competitor rebrands, launches a new feature with bold claims, creates a new category, runs an aggressive campaign, changes pricing, or announces a major partnership, the brand needs a structured response — not reactive panic. This command analyzes the competitor's move, assesses impact on the brand's positioning, selects the optimal counter-narrative approach, and produces a multi-channel response plan with specific content angles, ad concepts, PR angles, social messaging, and a timeline calibrated to urgency.
## Input Required
The user must provide (or will be prompted for):
- **Competitor name**: Which competitor made the move — used to pull existing competitive intelligence, historical positioning data, and known messaging patterns for context
- **What they did**: The specific strategic move — rebrand (new name, visual identity, or messaging overhaul), feature launch (new capability with positioning implications), category creation (defining a new market category they claim to lead), price change (aggressive discounting or premium repositioning), aggressive campaign (direct or indirect comparative advertising), partnership announcement (strategic alliance that changes their market position), or other positioning shift. Describe what changed and what they are now claimingView the complete source on GitHubcowork-setup
When your agent uses it
Set up DMP for team use in Cowork: sandbox check, Drive folders, saved routing. "set up DMP for my team in Cowork"
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
2,591 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this skill exists
- Behavior
- How the Cowork-aware skills use this config
- What this skill does NOT do
- See also
Scripts executed separately
../../scripts/drive-sync-state.py../../scripts/plugin-metadata.py
Files
../../scripts/drive-sync-state.pyruns15,026 bytes../../scripts/plugin-metadata.pyruns11,149 bytesSKILL.mdcore10,814 bytesSKILL.mdcore10,814 bytesSKILL.mdcore10,814 bytesSKILL.mdcore10,814 bytesSKILL.mdcore10,814 bytes
Read SKILL.md
# /digital-marketing-pro:cowork-setup
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
The one-time setup that makes Digital Marketing Pro persistent in Cowork by a team. Wires up the Cowork → Drive routing so brand profiles, campaign plans, audit reports, and run records survive past the end of the current Cowork session.
Run it the first time a team installs DMP in Cowork, when brand profiles stop persisting across Cowork sessions, or when switching to a different team's Drive root folder. Examples: `/digital-marketing-pro:cowork-setup`, `... --brand acme`, `... --drive-root "ACME DigitalMarketingPro"`.
## Why this skill exists
Cowork is the friendliest Anthropic surface for marketers — agency teams, in-house marketers, growth ops — who don't live in a terminal. The natural team workflow is "everyone uses Cowork; brand state and outputs live in our shared Drive". But DMP's filesystem layer was designed for local Claude Code (writes to `~/.claude-marketing/` on the host machine). In Cowork that path is the per-session Linux sandbox — vanishes at session end, invisible to the team.
**`${CLAUDE_PLUGIN_DATA}` does not help here either.** Anthropic's plugin docs describe it as the persistent per-plugin storage path. In Cowork it resolves to a session-scoped VM mount that disappears the same way (open: [claude-code#51398](https://github.com/anthropics/claude-code/issues/51398)). Every OAuth-backed MCP plugin hits the same wall.
View the complete source on GitHubcreative-health
When your agent uses it
Score ad creative fatigue against baseline, predict days left, brief refreshes. "are our ads fatiguing"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
2,011 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/creative-fatigue-predictor.py
Files
../../scripts/creative-fatigue-predictor.pyruns23,338 bytesSKILL.mdcore9,823 bytes
Read SKILL.md
# /digital-marketing-pro:creative-health
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Monitor creative health across all active advertising. Score each creative for fatigue risk, predict when fatigue will impact performance, generate refresh recommendations with specific change suggestions, and create A/B test plans for fatiguing creatives. Creative fatigue is one of the fastest ways to waste ad spend — a high-performing ad that ran too long silently bleeds money as CTR drops, CPM rises, and engagement fades. This command catches fatigue before it costs you, tells you exactly what to change, and gives you a structured test plan to validate the refresh. It covers the full creative lifecycle from launch through maturity to decline, so you always know which creatives are earning their spend and which need attention.
## Input Required
The user must provide (or will be prompted for):
- **Active creatives with performance data**: A list of currently running creatives, each with: creative ID or name, channel (paid social, display, search, email, video), current performance metrics (impressions served, frequency or average times shown per user, current CTR, current CPM or CPC, current engagement rate), baseline metrics from the creative's first 7-14 days (baseline CTR, baseline CPM, baseline engagement rate), days running since launch, audience size the creative is serving, and current daily or weekly spend. Can be provided as exported data or pulled from connected ad platform MCPs
- **Channel context**: Which advertising channels the creatives run on — Meta Ads, Google Ads, TikTok Ads, LinkedIn Ads, display networks, programmatic, or email. Each channel has different fatigue dynamics (social fatigues faster than search, video fatigues differently than static)View the complete source on GitHubcreative-testing-framework
When your agent uses it
Plan a creative testing roadmap with script-computed sample sizes. Fatigue → creative-health. "build a creative testing roadmap"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
2,223 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/sample-size-calculator.py../../scripts/significance-tester.py
Files
../../scripts/sample-size-calculator.pyruns8,867 bytes../../scripts/significance-tester.pyruns10,788 bytesSKILL.mdcore10,761 bytes
Read SKILL.md
# /digital-marketing-pro:creative-testing-framework
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Design a systematic creative testing framework that maximizes learning velocity while maintaining statistical rigor across advertising platforms. Produces a complete testing playbook with variable prioritization, sample size requirements, iteration cadence, and documentation standards for continuous creative optimization.
## Input Required
The user must provide (or will be prompted for):
- **Ad platform(s)**: Where ads are running — Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, programmatic DSPs, Pinterest, X/Twitter, or multi-platform
- **Creative types available**: What formats can be produced — static image, video (short-form/long-form), carousel, text-only, responsive display, HTML5, playable, or collection adsView the complete source on GitHubcredential-switch
When your agent uses it
Switch the active credential profile to another client, validating keys first, approval-gated. "activate Acme's API keys"
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
2,015 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py
Files
../../scripts/approval-manager.pyruns19,439 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytesSKILL.mdcore9,656 bytes
Read SKILL.md
# /digital-marketing-pro:credential-switch
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Switch the active credential profile to a different brand for multi-client agency management. Validates all platform connections and reports which services are available for the target brand. Ensures the correct API keys, tokens, and environment variables are active before executing any platform operations — preventing cross-client data leakage, misrouted ad spend, or accidental operations on the wrong account.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the validation summary — target brand, per-platform credential status, and any warnings — as an **Execution Summary**.
2. If validation is clean **and only one** client credential profile is configured, the switch may proceed automatically. If **more than one** client profile exists, or any warning / missing / expiring credential is present, the user must type `yes` (or an equivalent explicit approval) — ANY other input cancels.
3. Never proceed on ambiguous input. Never auto-retry a failed switch.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"credential-switch","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubcrisis-response
When your agent uses it
Respond to a breaking PR crisis: severity, holding statement, stakeholder messages, timeline. "draft a holding statement fast"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
679 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,195 bytes
Read SKILL.md
# /digital-marketing-pro:crisis-response
## Purpose
Provide rapid crisis assessment and a structured response plan. Classifies severity, identifies stakeholders, drafts messaging for each audience, and builds a communication timeline to contain damage and rebuild trust.
## Input Required
The user must provide (or will be prompted for):
- **What happened**: Description of the crisis or incident
- **When it started**: Timeline of events so far
- **Current exposure**: How widely known is it (internal only, social media, press coverage)
- **Stakeholders affected**: Customers, employees, investors, partners, publicView the complete source on GitHubcrm-sync
When your agent uses it
Sync contacts and deals with a connected CRM, deduped, approval-gated. "sync deals to Salesforce"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
2,769 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py../../scripts/crm-sync.py
Files
../../scripts/approval-manager.pyruns19,439 bytes../../scripts/crm-sync.pyruns15,922 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytesSKILL.mdcore13,355 bytes
Read SKILL.md
# /digital-marketing-pro:crm-sync
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Sync marketing data to and from the brand's connected CRM platform. Handles contact creation, deal updates, and campaign linking with automatic field mapping, deduplication, and compliance checks. Supports Salesforce, HubSpot, Zoho, and Pipedrive with bi-directional sync capabilities, ensuring marketing and sales teams operate from a single source of truth without manual data entry or import/export cycles. Designed for both one-time bulk syncs and recurring automated transfers, with full audit trails and rollback capabilities for enterprise-grade data governance.
Use this command instead of manual CSV imports when you need deduplication, compliance validation, or audit logging. For lead-specific imports with scoring, use `/digital-marketing-pro:lead-import` instead.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.View the complete source on GitHubcro
When your agent uses it
Plan CRO for pages, forms and checkout with ICE-ranked fixes. One page → landing-page-audit. "reduce cart abandonment"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
3,322 tokensWhen the skill is activated
Reference documents
19,718 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/sample-size-calculator.py../../scripts/significance-tester.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/sample-size-calculator.pyruns8,867 bytes../../scripts/significance-tester.pyruns10,788 bytesSKILL.mdcore15,895 bytesSKILL.mdcore15,895 bytesab-testing.mddoc13,468 bytescheckout-optimization.mddoc16,730 bytesform-optimization.mddoc13,873 byteslanding-page-audit.mddoc11,458 bytespersonalization-testing.mddoc14,757 bytespricing-psychology.mddoc14,030 bytes
Read SKILL.md
# CRO (Conversion Rate Optimization)
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this skill when the user's request involves any of the following:
- Auditing a landing page for conversion performance
- Designing or improving a landing page layout, copy, or user flow
- Setting up, analyzing, or interpreting A/B tests or multivariate tests
- Optimizing web forms (lead gen, signup, contact, application)
- Designing or auditing pricing pages and pricing presentation
- Reducing cart abandonment or improving checkout completion ratesView the complete source on GitHubdark-funnel
When your agent uses it
Map the dark funnel attribution misses: communities, AI citations, podcasts, word of mouth. "map our dark funnel"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,344 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,093 bytesSKILL.mdcore7,093 bytes
Read SKILL.md
# /digital-marketing-pro:dark-funnel
## Purpose
Map and illuminate the dark funnel — buyer journey activities invisible to traditional attribution. Identify where prospects are encountering the brand outside of trackable channels (Reddit discussions, AI chatbot queries, podcast mentions, community forums, word-of-mouth, dark social sharing) and surface intent signals that reveal the true scope of brand awareness and consideration happening beyond what analytics platforms can measure.
## Input Required
The user must provide (or will be prompted for):
- **Brand name and product names**: The brand and specific products or services to track across dark funnel channels — used to define search terms, mention patterns, and signal queries
- **Known community presence**: Subreddits, Slack communities, Discord servers, industry forums, or niche platforms where the brand has an official or organic presence — these are primary dark funnel listening posts
- **Podcast appearances**: Episodes, shows, or sponsorships the brand has participated in — used to correlate vanity URL visits, promo code redemptions, and branded search spikes with specific air dates
- **AI visibility data (optional)**: Output from `/digital-marketing-pro:geo-monitor` showing how AI chatbots (ChatGPT, Perplexity, Gemini) reference or recommend the brand — a growing dark funnel channelView the complete source on GitHubdata-export
When your agent uses it
Export marketing data to a warehouse or Sheets, PII-redacted, approval-gated. "export contacts to a sheet"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
3,177 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore15,583 bytesSKILL.mdcore15,583 bytesSKILL.mdcore15,583 bytesSKILL.mdcore15,583 bytesSKILL.mdcore15,583 bytesSKILL.mdcore15,583 bytes
Read SKILL.md
# /digital-marketing-pro:data-export
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Export marketing data — metrics, contacts, campaign results, and performance snapshots — to an external data store for analysis, reporting, or integration with other tools. Supports BigQuery for data warehousing and advanced analytics, Google Sheets for sharing and collaboration with stakeholders, and Supabase for custom database use and application integration. Transforms raw marketing data into clean, structured, tabular formats ready for downstream consumption with full schema documentation. Handles PII redaction when exporting contact data to shared destinations, ensuring compliance with privacy regulations.
Use this command to move data out of the marketing system for external analysis, client reporting, or data warehouse integration. For exporting audience segments specifically, use `/digital-marketing-pro:segment-audience` to create the segment first, then this command to export the member data.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.View the complete source on GitHubdata-import
When your agent uses it
Import CSV or Sheets data into a CRM or ESP with mapping and dedup, approval-gated. "dry-run this import first"
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,027 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytesSKILL.mdcore10,000 bytes
Read SKILL.md
# /digital-marketing-pro:data-import
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Universal data import tool for bringing structured data into any connected platform. Import from CSV, JSON, or Google Sheets into CRM systems, email subscriber lists, audience segments, competitor trackers, campaign managers, or custom data stores. Handles the full import pipeline — field mapping with auto-suggestion, data validation, deduplication against existing records, consent and compliance verification for contact data, batched execution through platform MCPs, and detailed result reporting with rollback guidance if needed.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"data-import","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubdigital-pr
When your agent uses it
Plan digital PR: media lists, thought leadership, E-E-A-T authority. One pitch → pr-pitch. "how do we build E-E-A-T authority"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
3,620 tokensWhen the skill is activated
Reference documents
7,558 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore17,614 bytesSKILL.mdcore17,614 bytesSKILL.mdcore17,614 bytesSKILL.mdcore17,614 byteseeat-authority.mddoc4,523 byteslink-building-tactics.mddoc15,185 bytesmedia-outreach.mddoc3,797 bytesnewsjacking.mddoc3,411 bytespress-releases.mddoc3,346 bytesthought-leadership.mddoc4,037 bytes
Read SKILL.md
# Digital PR & Authority
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Earned Media Strategy**: Planning how to get press coverage, media mentions, or editorial features
- **Press Releases**: Writing or optimizing press releases for distribution and pickup
- **Journalist Outreach**: Crafting pitch emails, building media lists, or developing journalist relationships
- **Journalist-request pitching**: Responding to journalist source requests on platforms like Qwoted, Featured, and Source of Sources (older legacy source-request services have wound down — verify which platforms are active before recommending one)
- **Thought Leadership**: Positioning an executive or brand as an industry authority through content and speaking
- **Newsjacking**: Rapid-response commentary on breaking news to earn media coverageView the complete source on GitHubemail-sequence
When your agent uses it
Design an ESP-ready email sequence: subjects, copy, timing, branching, deliverability. "build a welcome sequence"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
1,069 tokensWhen the skill is activated
Reference documents
984 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore4,765 bytessequence-blueprint.mddoc4,392 bytes
Read SKILL.md
# /digital-marketing-pro:email-sequence
## Purpose
Design a full email sequence ready for implementation in any ESP. Includes subject lines, preview text, body copy, send timing, segmentation rules, and deliverability best practices.
## Input Required
The user must provide (or will be prompted for):
- **Sequence type**: Welcome, nurture, onboarding, re-engagement, cart abandonment, post-purchase, event, promotional
- **Goal**: What the sequence should achieve (activate, convert, retain, upsell, educate)
- **Audience segment**: Who receives this sequence and entry trigger
- **Number of emails**: Desired count or let the system recommendView the complete source on GitHubemerging-channels
When your agent uses it
Evaluate emerging channels such as voice or social commerce with pilot plans. "should we open a TikTok Shop"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
4,401 tokensWhen the skill is activated
Reference documents
27,956 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
- Agents Used
Scripts executed separately
../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/benchmark_book.py../../scripts/campaign-tracker.py
Files
../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/benchmark_book.pyruns10,895 bytes../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore22,717 bytesai-marketing-tools.mddoc19,501 bytescommunity-building.mddoc13,711 bytesconversational-commerce.mddoc14,923 bytespodcast-marketing.mddoc14,676 bytessocial-commerce.mddoc12,839 bytesvideo-marketing.mddoc14,872 bytesvisual-search.mddoc12,837 bytesvoice-search.mddoc12,059 bytesweb3-decentralized.mddoc10,082 bytes
Read SKILL.md
# Emerging Channels
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
> **Benchmark provenance (as of 2026-08):** Dollar figures in this document are planning priors, not quotes — market and auction rates drift continuously. Before any figure enters a media plan, budget, or client deliverable, refresh it live (platform dashboards and current published reports beat memory) and record it with `python "${CLAUDE_PLUGIN_ROOT}/scripts/benchmark_book.py" --action record ... --source <url>`; quote from the book thereafter (`--action quote`). Never present an unstamped figure as current market fact.
## When to Use This Skill
Activate this skill when the user's request involves any of the following:
- Optimizing content for voice search (Alexa, Google Assistant, Siri, smart speakers)
- Preparing for or leveraging visual search (Google Lens, Pinterest Lens, Amazon visual search)
- Building conversational commerce flows (WhatsApp Business, Facebook Messenger, chatbot funnels, SMS marketing)
- Setting up or optimizing social commerce (Instagram Shopping, TikTok Shop, Pinterest Shopping, YouTube Shopping)View the complete source on GitHubengagement-workflow
When your agent uses it
Run the 12-Part engagement workflow from intake to growth plan, checkpointed. "start a new engagement"
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
6,274 tokensWhen the skill is activated
Reference documents
13,868 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Operating Mode
- Checkpointing & Resume (single source of truth)
- State validation & rework caps
- Subcommands
- Per-Part Production Targets
- Parallel Dispatch
- Running an engagement in a single conversation
- Quality Discipline
- Examples
- Related skills
- Related references
Scripts executed separately
../../scripts/checkpoint-manager.py../../scripts/engagement-state.py../../scripts/engagement-state.py../../scripts/engagement-state.py../../scripts/engagement-state.py../../scripts/engagement-state.py../../scripts/output-publisher.py
Files
../../scripts/checkpoint-manager.pyruns16,960 bytes../../scripts/engagement-state.pyruns38,195 bytes../../scripts/engagement-state.pyruns38,195 bytes../../scripts/engagement-state.pyruns38,195 bytes../../scripts/engagement-state.pyruns38,195 bytes../../scripts/engagement-state.pyruns38,195 bytes../../scripts/output-publisher.pyruns10,596 bytes../context-engine/decision-matrix-rerun.mddoc5,008 bytes../context-engine/engagement-flow-methodology.mddoc11,632 bytes../context-engine/four-core-documents-spec.mddoc14,490 bytes../context-engine/living-instruction-file-spec.mddoc7,407 bytes../context-engine/stone-vs-opinion.mddoc7,875 bytes../context-engine/two-views-model.mddoc5,657 bytes../context-engine/update-back-rule.mddoc7,204 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytesSKILL.mdcore25,687 bytes
Read SKILL.md
# /digital-marketing-pro:engagement-workflow — 12-Part Engagement Orchestrator
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill orchestrates the full marketing engagement using the 12-Part sequential methodology. Every brand engagement runs through the same 12 parts in sequence, producing a canonical set of files at each stage.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's workspace at `~/.claude-marketing/brands/{slug}/` (or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
Read these references before producing output:
- [engagement-flow-methodology.md](../context-engine/engagement-flow-methodology.md) — the full 12-Part flow
- [two-views-model.md](../context-engine/two-views-model.md) — v1 / v2 architecture
- [stone-vs-opinion.md](../context-engine/stone-vs-opinion.md) — confidence taggingView the complete source on GitHubentity-audit
When your agent uses it
Audit brand entity facts AI engines trust: Wikidata, Knowledge Panel. "is our Knowledge Panel accurate"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,812 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/geo-tracker.py
Files
../../scripts/geo-tracker.pyruns18,563 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytesSKILL.mdcore9,138 bytes
Read SKILL.md
# /digital-marketing-pro:entity-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Audit brand entity data consistency across the platforms that AI engines use as knowledge sources. Check Wikidata entries, Google Knowledge Panel accuracy, Wikipedia presence and notability, and industry directory listings for consistency. Inconsistent entity data degrades AI engine trust and visibility — when knowledge sources disagree about basic facts like the official website, founding date, headquarters location, or industry classification, AI engines either omit the brand entirely or present conflicting information. This command provides a systematic, platform-by-platform audit with specific discrepancies flagged and a prioritized fix plan ordered by impact on AI visibility.
## Input Required
The user must provide (or will be prompted for):
- **Brand/entity name**: The exact name of the brand, organization, person, or product to audit — must match the entity as it should appear in knowledge sources. If the brand has known aliases or former names, include those for cross-referencing
- **Entity type**: `Organization`, `Person`, `Product`, or `Brand` — determines which properties are checked and which directory types are relevant. Organizations check founding date, headquarters, industry; Products check manufacturer, launch date, category; Persons check role, affiliation, notable worksView the complete source on GitHubeval-config
When your agent uses it
Tune eval thresholds: dimension minimums, weights, auto-reject floors. "raise the hallucination threshold"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
2,262 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/eval-config-manager.py
Files
../../scripts/eval-config-manager.pyruns15,904 bytesSKILL.mdcore10,832 bytes
Read SKILL.md
# /digital-marketing-pro:eval-config
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Configure the evaluation system for a brand. Set minimum quality thresholds per dimension, adjust scoring weights based on industry priorities and content strategy, configure auto-reject thresholds that prevent substandard content from passing evaluation, and define content-type-specific quality standards that apply different bars to different formats.
The eval config determines how strictly content is scored and what the quality bar looks like for the brand. A healthcare company may weight hallucination risk and claim verification heavily while relaxing readability thresholds for technical audiences. A consumer brand may prioritize brand voice and readability while accepting lighter claim verification for awareness content. An agency managing multiple brands can set different configs per brand. This command makes those trade-offs explicit and adjustable rather than buried in defaults.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubeval-content
When your agent uses it
Score one piece via eval-runner on six dimensions with a fix list. Many pieces → eval-suite. "score this draft before it ships"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,825 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/eval-config-manager.py../../scripts/eval-runner.py../../scripts/quality-tracker.py
Files
../../scripts/eval-config-manager.pyruns15,904 bytes../../scripts/eval-runner.pyruns36,600 bytes../../scripts/quality-tracker.pyruns18,178 bytesSKILL.mdcore8,847 bytesSKILL.mdcore8,847 bytes
Read SKILL.md
# /digital-marketing-pro:eval-content
## Purpose
Comprehensive content evaluation using the full eval pipeline. Runs content through six scoring dimensions — content quality, brand voice, hallucination risk, claim verification, output structure, and readability — to produce a composite score with letter grade, flag specific issues with fix suggestions, and compare against brand quality baselines. This is the go-to command before any content goes to publication, client review, or campaign launch.
Every evaluation is logged to the quality tracker so regression detection, trend analysis, and brand-level quality reporting work continuously. If the brand has custom thresholds or dimension weights configured via /digital-marketing-pro:eval-config, those are applied automatically — otherwise industry-standard defaults are used.
## Input Required
The user must provide (or will be prompted for):
- **Content to evaluate**: The text to score — provided inline, as a pasted block, or as a file path. Supports any marketing content format: blog post, email, ad copy, social post, landing page, press release, content brief, campaign plan, or custom
- **Content type** (optional): One of `blog_post`, `email`, `ad_copy`, `social_post`, `landing_page`, `press_release`, `content_brief`, `campaign_plan`, or `custom`. If omitted, the eval runner auto-detects based on content structure and length. Content type determines which built-in schema is used for structure validation and which readability benchmarks applyView the complete source on GitHubeval-suite
When your agent uses it
Evaluate a batch of content in one run: ranked quality report, systemic issues. "score our whole content library"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
1,885 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/eval-runner.py../../scripts/quality-tracker.py
Files
../../scripts/eval-runner.pyruns36,600 bytes../../scripts/quality-tracker.pyruns18,178 bytesSKILL.mdcore8,860 bytes
Read SKILL.md
# /digital-marketing-pro:eval-suite
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Batch evaluation across multiple content pieces to produce a portfolio-level quality assessment. Evaluate an entire content library, all assets in a campaign, or a set of deliverables in one run. Instead of evaluating content one piece at a time, this command processes everything together and delivers a holistic view of content quality.
The output includes content rankings, per-dimension analysis, overall quality distribution, common issues across the set, and a prioritized revision list. This is the command to use before a campaign launch (to catch weak assets before they go live), during a content audit (to assess library health), or after a production sprint (to quality-check all deliverables at once). Every evaluation is logged to the quality tracker for longitudinal trend analysis.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubexec-summary
When your agent uses it
Write an executive summary from tracked marketing results for CEO, CFO or board. "summarize this quarter for the CEO"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
2,922 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Before it goes to the client
- Agents Used
Scripts executed separately
../../scripts/budget-optimizer.py../../scripts/budget-optimizer.py../../scripts/clv-calculator.py../../scripts/revenue-forecaster.py../../scripts/roi-calculator.py
Files
../../scripts/budget-optimizer.pyruns12,052 bytes../../scripts/budget-optimizer.pyruns12,052 bytes../../scripts/clv-calculator.pyruns14,450 bytes../../scripts/revenue-forecaster.pyruns16,682 bytes../../scripts/roi-calculator.pyruns12,447 bytesSKILL.mdcore14,679 bytesSKILL.mdcore14,679 bytesSKILL.mdcore14,679 bytes
Read SKILL.md
# /digital-marketing-pro:exec-summary
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a concise, C-suite-ready executive summary of marketing performance. Focuses on business-level metrics — ROI, CAC, LTV, market share — rather than operational detail. Synthesizes strategic wins and risks, competitive positioning, and high-level recommendations into a format designed for executive decision-making. Supports single-brand summaries or portfolio-wide aggregation across all managed brands, and adapts depth and terminology to the target audience (CEO, CMO, board).
Designed to be the single artifact an executive needs to understand marketing's business impact, make resource allocation decisions, and assess strategic direction — without requiring follow-up questions or supplementary reports.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubexecutive-dashboard
When your agent uses it
Design an executive dashboard spec: north-star metrics, charts, alert thresholds. "design a CMO dashboard"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,385 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,086 bytesSKILL.mdcore7,086 bytesSKILL.mdcore7,086 bytesSKILL.mdcore7,086 bytes
Read SKILL.md
# /digital-marketing-pro:executive-dashboard
## Purpose
Design a C-suite marketing dashboard that translates marketing metrics into business outcomes for executive decision-making. Bridges the gap between marketing activity data and business impact, giving senior leaders the clarity to make faster, better-informed strategic decisions without drowning in operational detail.
## Input Required
The user must provide (or will be prompted for):
- **Executive role**: Primary audience — CEO, CMO, CFO, VP Marketing, or board — each requires different metric emphasis and abstraction level
- **Business model and revenue drivers**: How the company makes money — SaaS, e-commerce, lead gen, marketplace, subscription — and the key revenue levers marketing influences
- **Strategic priorities this quarter**: The 2-4 business priorities the executive team is focused on that marketing should ladder up to
- **Reporting frequency**: How often the dashboard will be reviewed — weekly executive standup, monthly leadership meeting, quarterly board reviewView the complete source on GitHubfocus-group
When your agent uses it
Run a simulated focus group of CRM-grounded personas reacting to messaging or pricing. "run a focus group on this message"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,582 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/audience-simulator.py
Files
../../scripts/audience-simulator.pyruns31,742 bytesSKILL.mdcore8,223 bytes
Read SKILL.md
# /digital-marketing-pro:focus-group
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Run a simulated focus group using synthetic audience panels built from real CRM data. Present stimuli (messaging, pricing, creative concepts, positioning statements) to AI-simulated personas representing actual customer segments and get structured response predictions with sentiment analysis. This command bridges the gap between gut-feel decisions and expensive real-world research by generating directional feedback grounded in behavioral profiles derived from your actual customer base. Synthetic focus groups are fast, repeatable, and free to run — making them ideal for narrowing options before committing budget to real qualitative research or live campaigns. Every output includes explicit confidence limitations so results are treated as informed hypotheses, not validated data.
## Input Required
The user must provide (or will be prompted for):
- **Stimulus to test**: The messaging variant, pricing proposal, creative concept, or positioning statement to present to the panel. Can be a single stimulus for reaction analysis or multiple stimuli for comparative evaluation. Plain text, structured copy blocks, or a brief describing the concept. If testing multiple stimuli, label each clearly (Variant A, Variant B, etc.)
- **Audience panel**: An existing panel ID from a previous `/digital-marketing-pro:focus-group` or `/digital-marketing-pro:message-test` session, or new segment definitions to build a panel from CRM data. New panels require segment criteria — demographic, behavioral, psychographic, or value-based attributes. Specify 2-6 segments for meaningful cross-segment comparisonView the complete source on GitHubfour-core-documents
When your agent uses it
Produce the Part 3 Four Core Documents: business, segmentation, positioning, DMFlow. "produce the four core documents"
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
4,103 tokensWhen the skill is activated
Reference documents
17,811 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Pre-conditions
- Subcommands
- Production Order
- Per-Document Production
- Quality Discipline (Apply to All Four Documents)
- Single-File Discipline
- After Production
- v2 Re-runs
- Examples
- Related skills
- Related references
Files
../context-engine/actionable-persona-format.mddoc7,127 bytes../context-engine/b2b-decision-making-unit.mddoc9,295 bytes../context-engine/channel-families.mddoc7,927 bytes../context-engine/decision-framework.mddoc7,528 bytes../context-engine/engagement-flow-methodology.mddoc11,632 bytes../context-engine/five-digital-markets.mddoc7,687 bytes../context-engine/four-core-documents-spec.mddoc14,490 bytes../context-engine/in-market-out-market.mddoc6,264 bytes../context-engine/unit-economics-framework.mddoc7,652 bytesSKILL.mdcore15,775 bytesSKILL.mdcore15,775 bytesSKILL.mdcore15,775 bytesSKILL.mdcore15,775 bytesSKILL.mdcore15,775 bytes
Read SKILL.md
# /digital-marketing-pro:four-core-documents — The Strategic Spine (61 Steps)
This skill produces Part 3 of the engagement methodology: the four documents that together define the brand at strategic depth. Every channel strategy, every creative brief, every piece of copy reads back to these.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's workspace at `~/.claude-marketing/brands/{slug}/` (or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
**Specification:** [four-core-documents-spec.md](../context-engine/four-core-documents-spec.md) — the exact 61 steps across the four documents.
**Engagement context:** [engagement-flow-methodology.md](../context-engine/engagement-flow-methodology.md) — where Part 3 fits in the 12-Part flow.
## Pre-conditions
View the complete source on GitHubfunnel-architect
When your agent uses it
Design a funnel for the business model: stages, KPIs, journey. Existing data → funnel-audit. "design a funnel for our SaaS"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
3,258 tokensWhen the skill is activated
Reference documents
9,551 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore15,607 bytesattribution-models.mddoc6,170 bytesfunnel-templates.mddoc5,783 bytesgap-analysis.mddoc5,193 bytesjourney-mapping.mddoc5,500 bytessales-marketing-alignment.mddoc17,849 bytes
Read SKILL.md
# Funnel Architect
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Funnel Design**: Building or restructuring a marketing/sales funnel for a specific business model
- **Customer Journey Mapping**: Visualizing the end-to-end path from first awareness to post-purchase advocacy
- **Attribution Modeling**: Determining how credit for conversions should be assigned across touchpoints
- **Funnel Analysis**: Diagnosing where prospects drop off and why
- **Conversion Path Optimization**: Improving the sequence of interactions that lead to conversion
- **Gap Analysis**: Identifying missing stages, touchpoints, or content in an existing funnelView the complete source on GitHubfunnel-audit
When your agent uses it
Find funnel drop-offs from stage numbers you give or connected data, benchmarked, ranked by revenue. "where are we losing people"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
923 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/sample-size-calculator.py../../scripts/significance-tester.py
Files
../../scripts/sample-size-calculator.pyruns8,867 bytes../../scripts/significance-tester.pyruns10,788 bytesSKILL.mdcore4,105 bytes
Read SKILL.md
# /digital-marketing-pro:funnel-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Analyze the complete customer acquisition and conversion funnel to identify where prospects drop off, why they disengage, and what changes will have the highest impact on overall conversion rate.
## Input Required
The user must provide (or will be prompted for):
- **Funnel stages**: The stages to analyze (or use standard: Awareness > Interest > Consideration > Intent > Purchase > Retention)
- **Funnel data**: Metrics per stage (traffic, leads, MQLs, SQLs, opportunities, customers) or qualitative descriptionView the complete source on GitHubgeo-monitor
When your agent uses it
Monitor GEO visibility over time across six AI answer engines, with a 0-100 trend. "is ChatGPT mentioning us"
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
2,815 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Probes vs first-party data (checked 2026-10-04)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/geo-tracker.py
Files
../../scripts/geo-tracker.pyruns18,563 bytesSKILL.mdcore13,314 bytesSKILL.mdcore13,314 bytesSKILL.mdcore13,314 bytesSKILL.mdcore13,314 bytes
Read SKILL.md
# /digital-marketing-pro:geo-monitor
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Monitor and track brand visibility across generative AI engines. Systematically test how AI platforms respond to queries relevant to the brand, score visibility using a structured rubric, track changes over time, and identify opportunities to improve AI presence. This command provides a repeatable, quantitative framework for understanding where and how the brand appears (or fails to appear) in AI-generated responses — giving marketers the data they need to optimize for the emerging generative engine optimization (GEO) channel. Supports baselining, trend tracking, competitive benchmarking, and narrative alignment checks across all major AI platforms.
**This skill is the RECURRING mode of the canonical AI-visibility scoring standard defined in `/digital-marketing-pro:aeo-audit`.** It does not introduce a second scoring model: it applies the same per-platform 1-10 rubric + gates on a schedule and tracks it over time. The 0-100 GEO health score + A-F letter grade produced below is the **trend view** of that same data — a longitudinal roll-up for spotting momentum, not a competing scorecard. The 6 canonical surfaces (Google AI Mode, Google AI Overviews, ChatGPT, Perplexity, Gemini, Copilot) are defined once as the `PLATFORMS` constant in `scripts/geo-tracker.py`.
## Probes vs first-party data (checked 2026-10-04)
View the complete source on GitHubgoal-filter
When your agent uses it
Lock one primary goal per brand and judge ideas or drafts against it. "does this fit our goal"
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
834 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- State
- Judging an item
- Critical rules
Files
SKILL.mdcore3,361 bytesSKILL.mdcore3,361 bytes
Read SKILL.md
# /digital-marketing-pro:goal-filter
The strategic filter. One goal is locked per brand; everything gets measured
against it before time or budget is committed. Marketing fails quietly by doing
good work toward nothing in particular — every piece defensible, the quarter's
number missed anyway.
## State
The locked goal lives in the brand workspace, so every session reads the same
one:
```
~/.claude-marketing/brands/{brand-slug}/goal-lock.jsonView the complete source on GitHubgrowth-engineering
When your agent uses it
Engineer growth systems: PLG motions, referrals, viral and retention loops. "design a referral program"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
3,363 tokensWhen the skill is activated
Reference documents
21,203 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore16,636 bytesaffiliate-marketing.mddoc15,319 bytesexperimentation-frameworks.mddoc21,057 byteslaunch-strategy.mddoc12,252 bytesproduct-led-growth.mddoc8,573 bytesreferral-systems.mddoc10,737 bytesretention-loops.mddoc13,547 bytesviral-loops.mddoc11,150 bytes
Read SKILL.md
# Growth Engineering
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this skill when the user's request involves any of the following:
- Designing or improving a product-led growth (PLG) motion
- Building or optimizing referral programs (customer referral, partner referral, ambassador programs)
- Creating viral loops or increasing organic sharing mechanics
- Planning a product or company launch (Product Hunt, beta launches, waitlists)
- Improving user retention, reducing churn, or designing re-engagement campaigns
- Running growth experiments and building an experimentation cultureView the complete source on GitHubgrowth-plan
When your agent uses it
Produce the Part 8 Growth Plan: one strategy with scenario forecasts and a 30/60/90. "write the strategy document for the client"
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
2,661 tokensWhen the skill is activated
Reference documents
13,852 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- Pre-conditions
- The 11 Sections
- Production process
- Section-by-section guidance
- Quality discipline
- After production
- Examples
- Related skills
- Related references
Files
../context-engine/30-60-90-framework.mddoc8,372 bytes../context-engine/channel-families.mddoc7,927 bytes../context-engine/fixed-vs-variable-budget.mddoc6,940 bytes../context-engine/growth-plan-template.mddoc9,769 bytes../context-engine/in-market-out-market.mddoc6,264 bytes../context-engine/reporting-cadence.mddoc8,746 bytes../context-engine/three-scenario-forecasting.mddoc7,600 bytes../context-engine/unit-economics-framework.mddoc7,652 bytesSKILL.mdcore10,687 bytesSKILL.mdcore10,687 bytesSKILL.mdcore10,687 bytesSKILL.mdcore10,687 bytes
Read SKILL.md
# /digital-marketing-pro:growth-plan — Part 8 Flagship Deliverable
The Growth Plan is the flagship client-facing deliverable. It synthesises every internal document produced in Parts 1–7 into a single 11-section narrative answering: *"How will we grow this business digitally, and what will it cost?"*
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's data dir (`~/.claude-marketing/brands/{slug}/`, or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
**Specification:** [growth-plan-template.md](../context-engine/growth-plan-template.md) — the canonical 11-section structure.
## Pre-conditions
Before producing the Growth Plan, verify:
View the complete source on GitHubgsc-ai-performance
When your agent uses it
Read the GSC AI Performance report by script: AI Overviews and AI Mode impressions. "read the new GSC AI report"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
3,758 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- What is genuinely new (3 June 2026)
- Honest measurement map — what exists and what does not (checked 2026-10-04)
- When to use this skill
- Brand context (auto-applied)
- Numbered output convention
- Quality scorecard
- Chain handoffs
- Process
- Output
- Caveats and known limitations (June 2026)
- Agents used
- See also
Scripts executed separately
../../scripts/gsc-ai-performance.py
Files
../../scripts/gsc-ai-performance.pyruns9,281 bytesSKILL.mdcore16,287 bytesSKILL.mdcore16,287 bytes
Read SKILL.md
# /digital-marketing-pro:gsc-ai-performance
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Google rolled out a new **GSC AI Performance Report** on **3 June 2026** ([Search Engine Land announcement](https://searchengineland.com/google-search-console-ai-performance-reports-and-controls-to-block-your-content-in-ai-responses-479298)) covering both AI Overviews and AI Mode in a single combined surface. This skill helps you (a) baseline a brand's visibility in the new report, (b) understand the metric trade-offs, and (c) decide whether to use the new in-SC opt-out toggle.
## What is genuinely new (3 June 2026)
| Metric / surface | Status |
|---|---|
| Combined AI Overviews + AI Mode impressions | NEW — one report for both surfaces |
| Pages cited (per query group) | NEW |View the complete source on GitHubhelp
When your agent uses it
Show help with live plugin counts: getting started, which skill fits a goal, fixes. "what can this plugin do"
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
2,580 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- CRITICAL: never hardcode version, counts, or connector numbers
- Behavior
- Output formatting rules
- What this skill explicitly avoids
Scripts executed separately
../../scripts/build_skills_index.py../../scripts/plugin-metadata.py../../scripts/setup.py
Files
../../scripts/build_skills_index.pyruns7,547 bytes../../scripts/plugin-metadata.pyruns11,149 bytes../../scripts/requirements.txtdoc1,224 bytes../../scripts/setup.pyruns25,740 bytes../../skills-index.jsonasset76,913 bytesSKILL.mdcore10,883 bytesSKILL.mdcore10,883 bytes
Read SKILL.md
# /digital-marketing-pro:help
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
Show the Digital Marketing Pro user guide with **live plugin state** (version, agent/skill/command/script counts, connector counts, runtime environment) pulled from disk — not hardcoded — plus getting-started steps, usage examples, and troubleshooting.
## CRITICAL: never hardcode version, counts, or connector numbers
Versions and counts in this plugin used to be baked into this skill body as literal version and count strings — a hardcoded version number, a fixed slash-command count, a fixed integrations count. Those drifted out of sync with the actual install every release and misreported the plugin to users.
**Always read live values from `scripts/plugin-metadata.py`. Never quote a version number, skill count, agent count, command count, or connector count from memory or from this skill body.**
## Behavior
View the complete source on GitHubhreflang-check
When your agent uses it
Validate hreflang, alternate-language link tags and x-default from pasted HTML or sitemaps, with fixes. "check our hreflang tags"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
2,598 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore12,585 bytesSKILL.mdcore12,585 bytesSKILL.mdcore12,585 bytesSKILL.mdcore12,585 bytesSKILL.mdcore12,585 bytes
Read SKILL.md
# /digital-marketing-pro:hreflang-check
## Purpose
Audit hreflang tag implementation for multilingual and multi-regional SEO. Hreflang annotations tell search engines which language and regional version of a page to serve to which audience — when implemented incorrectly, the wrong language version appears in search results, pages compete against each other for the same queries, and international organic traffic is lost to mis-served content. This command performs a thorough technical audit of hreflang implementation, checking that all language versions are properly cross-referenced with correct annotations, that every page references itself, that references are bidirectional (if page A points to page B, page B points back to page A), that language-region codes are valid, that x-default fallback is configured, and that no orphaned references point to non-existent pages.
Critical for any brand operating multilingual or multi-regional websites. Hreflang errors are among the most common international SEO issues — they are invisible to users, rarely caught in manual QA, and silently degrade search performance across every affected market. Even a single missing bidirectional reference can prevent search engines from correctly associating language versions, causing the wrong page to rank or duplicate content signals to suppress both versions. This command surfaces every implementation error with specific fix instructions and corrected code snippets.
## Input Required
The user must provide (or will be prompted for):
- **Website URL or sitemap URL**: The starting point for the audit. Can be a single page URL (audits hreflang on that page and its referenced alternates), a sitemap URL (audits all pages listed in the sitemap), or a list of specific page URLs to check. Note: the plugin does not crawl websites directly — if a URL is provided, the user will be guided to provide the HTML source or hreflang data for analysis. Alternatively, the user can paste HTML source, hreflang tag sets, or exported hreflang data directly
- **Specific page URLs to check** (optional): A subset of pages to focus the audit on — useful for auditing a specific section (e.g., all product pages, all blog posts) rather than the entire site. If omitted, all pages with hreflang annotations in the provided data are auditedView the complete source on GitHubimage-seo-audit
When your agent uses it
Audit image SEO on a page: alt text, weight, formats, srcset, lazy loading, CLS. "audit our image SEO"
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
1,010 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Recommended Picture Element Pattern
- Hero/LCP Image Pattern
- Output
- Agents Used
- Scripts Used
Files
SKILL.mdcore3,946 bytesSKILL.mdcore3,946 bytesSKILL.mdcore3,946 bytes
Read SKILL.md
# /digital-marketing-pro:image-seo-audit
## Purpose
Perform a dedicated image optimization audit that evaluates all images on a page or site for SEO, performance, and accessibility. Produces a prioritized optimization list sorted by file size impact.
## Input Required
- **URL**: Page or site to audit
- **Scope**: Single page or site-wide crawl (default: single page)
## Process
1. **Load brand context**: Read active brand profile for industry context.View the complete source on GitHubimport-guidelines
When your agent uses it
Import brand guidelines into enforceable rules: voice, banned words, styles. "here's our brand voice guide"
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
1,471 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Guideline Categories Reference
- Examples
- Reference Files
Scripts executed separately
../../scripts/guidelines-manager.py
Files
../../scripts/guidelines-manager.pyruns25,336 bytesSKILL.mdcore6,624 bytes
Read SKILL.md
# /digital-marketing-pro:import-guidelines
## Purpose
Import and structure brand guidelines into the persistent brand knowledge layer. Converts unstructured guideline documents, style guides, restriction lists, and messaging playbooks into structured, enforceable markdown files that are automatically applied across all modules and commands.
## Input Required
The user provides one or more of:
- **Pasted guideline content**: Text from an existing brand guide, style guide, or restriction list
- **Verbal description**: Spoken/typed rules ("we never use exclamation marks", "always lead with data")
- **Category to update**: Which guideline category to add to (voice-and-tone, messaging, restrictions, channel-styles, visual-identity, or custom)
- **Source document reference**: Description of where these guidelines come fromView the complete source on GitHubimport-sop
When your agent uses it
Import agency procedures as role-assigned SOP steps with approval gates. "import our launch checklist"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
1,453 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Examples
- Reference Files
Scripts executed separately
../../scripts/guidelines-manager.py
Files
../../scripts/guidelines-manager.pyruns25,336 bytesSKILL.mdcore6,278 bytes
Read SKILL.md
# /digital-marketing-pro:import-sop
## Purpose
Import and structure agency Standard Operating Procedures (SOPs) that apply across all clients. SOPs define **how work gets done** — approval workflows, content review steps, campaign launch checklists, escalation procedures, and quality gates.
SOPs are stored at the agency level (`~/.claude-marketing/sops/`), not per-brand, so they apply consistently across all clients.
## Input Required
The user provides:
- **SOP content**: Pasted workflow steps, checklist items, or process descriptions
- **SOP name**: What this SOP covers (e.g., "content-approval", "campaign-launch", "crisis-escalation")View the complete source on GitHubimport-template
When your agent uses it
Import a deliverable template as a reusable placeholder template per brand. "use this proposal structure"
What it loads into context
Frontmatter
27 tokensAlways available to the agent
SKILL.md
1,435 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Examples
- Reference Files
Scripts executed separately
../../scripts/guidelines-manager.py
Files
../../scripts/guidelines-manager.pyruns25,336 bytesSKILL.mdcore6,541 bytes
Read SKILL.md
# /digital-marketing-pro:import-template
## Purpose
Import deliverable templates that define the output format for plugin commands. Templates specify section structure, content requirements, and formatting rules for proposals, reports, briefs, presentations, and other marketing deliverables.
When a command like `/digital-marketing-pro:performance-report` runs, it checks for a custom template first. If one exists, the output follows the template format instead of the default.
## Input Required
The user provides:
- **Template content**: Pasted template structure, section headings, or format specifications
- **Template name**: What this template is for (e.g., "proposal", "performance-report", "content-brief", "campaign-plan")View the complete source on GitHubinfluencer-brief
When your agent uses it
Write an influencer campaign brief: creator criteria, pay, approvals, disclosure. "write a brief for our influencer campaign"
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
1,126 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore5,096 bytes
Read SKILL.md
# /digital-marketing-pro:influencer-brief
## Purpose
Create a complete influencer campaign brief that covers creator discovery criteria, content guidelines, compliance requirements, compensation framework, and performance measurement.
## Input Required
The user must provide (or will be prompted for):
- **Campaign objective**: Awareness, engagement, conversions, content generation, or event promotion
- **Product/service**: What the influencer will promote
- **Target audience**: Who the campaign should reach
- **Platform(s)**: Instagram, TikTok, YouTube, X, LinkedIn, podcastsView the complete source on GitHubinfluencer-creator
When your agent uses it
Plan influencer marketing: creator vetting, disclosure audits, contracts, UGC. "find influencers for our launch"
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
3,724 tokensWhen the skill is activated
Reference documents
21,658 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore19,053 bytescontract-frameworks.mddoc15,403 bytescreator-briefs.mddoc11,124 bytesftc-compliance.mddoc11,671 bytesinfluencer-discovery.mddoc9,704 bytesmicro-influencer-strategy.mddoc18,771 bytesperformance-tracking.mddoc12,434 bytesugc-strategy.mddoc14,582 bytes
Read SKILL.md
# Influencer & Creator Marketing
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this skill when the user's request involves any of the following:
- Finding or vetting influencers and creators for brand partnerships
- Building creator briefs or campaign briefs for influencer collaborations
- Understanding FTC disclosure requirements for sponsored content
- Structuring influencer contracts including usage rights, exclusivity, and payment terms
- Measuring influencer campaign performance (EMV, ROAS, brand lift, engagement)
- Planning UGC (user-generated content) campaigns or strategiesView the complete source on GitHubintegrations
When your agent uses it
Show integrations status: connected and available connectors, what each unlocks. "which connectors do I have"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
940 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/connector-status.py../../scripts/connector-status.py
Files
../../scripts/connector-status.pyruns17,623 bytes../../scripts/connector-status.pyruns17,623 bytesSKILL.mdcore4,320 bytes
Read SKILL.md
# /digital-marketing-pro:integrations
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Show a complete integration status dashboard — which MCP connectors are currently connected, which are available but not yet configured, and which skills each connector unlocks. This is the first thing users should check after installing the plugin to understand what capabilities are active and what additional connections they can set up.
## Input Required
The user may optionally provide:
- **Filter** (optional): A specific category to focus on — e.g., "crm", "seo", "advertising", "email-marketing", "social-media". If omitted, shows all categories
- **Show** (optional): `connected` (only active connectors), `available` (only not-yet-connected), or `all` (default)View the complete source on GitHubintelligence-report
When your agent uses it
Report on the brand intelligence base: confident learnings, patterns, playbooks, gaps. "what have we learned across campaigns"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
1,465 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/intelligence-graph.py
Files
../../scripts/intelligence-graph.pyruns19,914 bytesSKILL.mdcore7,469 bytesSKILL.mdcore7,469 bytes
Read SKILL.md
# /digital-marketing-pro:intelligence-report
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a comprehensive intelligence briefing from the brand's compound intelligence system. This command surfaces the accumulated knowledge that agents have built over time — total learnings captured, confidence distribution across insights, top patterns identified across agents and channels, actionable playbooks generated from proven strategies, and intelligence base health metrics showing where the knowledge is strong and where gaps exist. The intelligence report turns raw accumulated data into strategic advantage by synthesizing cross-agent patterns that no single agent would surface alone. Use it for quarterly planning, strategy reviews, onboarding new team members to a brand's marketing intelligence, or identifying which areas need more experimentation and data collection to strengthen decision-making confidence.
## Input Required
The user must provide (or will be prompted for):
- **Focus area (optional)**: A specific channel (email, paid search, social), audience segment, campaign objective (awareness, conversion, retention), or strategic theme to deep-dive. If provided, the report prioritizes patterns, playbooks, and recommendations for that focus area while still including the full intelligence base overview. If omitted, the report covers all dimensions equally
- **Playbook request (optional)**: A specific scenario to generate an actionable playbook for — e.g., "Q2 product launch on paid social", "re-engagement campaign for churned subscribers", or "brand awareness push in new market". The intelligence system synthesizes relevant learnings into a step-by-step playbook grounded in proven patterns from this brand's dataView the complete source on GitHubjourney-design
When your agent uses it
Design cross-channel journeys as state machines, simulation-tested before build. "map the onboarding journey"
What it loads into context
Frontmatter
27 tokensAlways available to the agent
SKILL.md
2,010 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/journey-engine.py
Files
../../scripts/journey-engine.pyruns19,373 bytesSKILL.mdcore10,502 bytes
Read SKILL.md
# /digital-marketing-pro:journey-design
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Design comprehensive cross-channel customer journeys as state machines. Define journey states (awareness through advocacy), transitions triggered by engagement signals, touchpoints with channel-specific content, branching logic for personalization, and simulate expected outcomes before launch. Turns abstract customer lifecycle stages into concrete, executable journey maps with specific content, timing, and channels at every step — then validates the design with Monte Carlo simulation before committing resources to implementation.
## Input Required
The user must provide (or will be prompted for):
- **Journey objective**: The primary goal this journey serves — acquisition (convert prospects to customers), onboarding (activate new customers to first value), retention (keep existing customers engaged and renewing), win-back (re-engage churned or lapsed customers), upsell (move customers to higher tiers or additional products), advocacy (turn satisfied customers into referrers and promoters), or a custom lifecycle stage
- **Target audience segments**: The specific audience segments entering this journey — defined by demographics, behavior, lifecycle stage, or prior engagement. Multiple segments supported with branching paths based on segment-specific behavior. E.g., "trial users who signed up from blog content", "enterprise accounts with 30+ seats approaching renewal", or "lapsed customers who churned in the last 90 days"View the complete source on GitHubkeyword-cluster
When your agent uses it
Cluster keywords or queries into topic hubs and spoke pages by SERP overlap. "cluster these keywords"
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
2,541 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Context efficiency
- When to Use
- Brand context (auto-applied)
- Inputs
- Process (10 steps, numbered-file output)
- Output format
- Quality scorecard (the four gates)
- After the cluster
- Chain handoffs
- Tips & caveats
- Agents used
- See also
Scripts executed separately
../../scripts/keyword_cluster.py
Files
../../scripts/keyword_cluster.pyruns19,764 bytesSKILL.mdcore10,272 bytesSKILL.mdcore10,272 bytes
Read SKILL.md
# /digital-marketing-pro:keyword-cluster
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Take a set of seed keywords and produce a publication-ready cluster plan: pillar pages with their spokes, intent-grouped, prioritised by an opinionated scoring formula, with an internal-link map and a four-gate quality scorecard. Output is structured for direct hand-off to `/digital-marketing-pro:content-brief` or `/digital-marketing-pro:content-engine`.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List `${CLAUDE_PLUGIN_DATA}/<brand>/` before opening files. On re-invocation mid-session, skip files already in context.
## When to Use
View the complete source on GitHubkeyword-research
When your agent uses it
Research keywords via the connected data source: intent, gaps. Grouping → keyword-cluster. "what keywords should we target"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,545 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Tips & caveats
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore7,461 bytes
Read SKILL.md
# /digital-marketing-pro:keyword-research
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Standalone keyword *research* tool — expansion, search-intent classification, and competitor gap analysis. Produces a prioritized, intent-classified keyword list with content recommendations. Volume and keyword-difficulty figures come from the brand's connected keyword MCP (Ahrefs / Semrush / SE Ranking / GSC) — this skill surfaces and interprets them, it does not fabricate them. **Clustering into a pillar+spokes plan is delegated to `/digital-marketing-pro:keyword-cluster`** (the `keyword_cluster.py` engine); this skill produces the seeds that skill consumes.
## Input Required
The user must provide (or will be prompted for):
- **Seed keywords or topic**: Starting keywords, a topic area, or a URL to extract keyword themes from
- **Target audience**: Who the content is intended to reach (demographics, expertise level, pain points)View the complete source on GitHublanding-page-audit
When your agent uses it
Audit one landing page on six conversion dimensions, incl. ad message match. "why isn't this page converting"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
985 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- How you'll know it worked
- Output
- Agents Used
Scripts executed separately
../../scripts/recommendation-tracker.py
Files
../../scripts/recommendation-tracker.pyruns6,567 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytes
Read SKILL.md
# /digital-marketing-pro:landing-page-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Evaluate a landing page across six key conversion dimensions and deliver a scored assessment with specific, actionable recommendations to improve conversion rate.
## Input Required
The user must provide (or will be prompted for):
- **Landing page URL**: The page to audit
- **Traffic source**: Where visitors come from (paid search, social ads, email, organic)View the complete source on GitHublanguage-audit
When your agent uses it
Audit all language versions of a site for parity and quality. Tags only → hreflang-check. "is the German site missing pages"
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
2,058 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore10,556 bytesSKILL.mdcore10,556 bytesSKILL.mdcore10,556 bytes
Read SKILL.md
# /digital-marketing-pro:language-audit
## Purpose
Comprehensive multilingual consistency audit across all language versions of a brand's content. Checks that all language versions are properly linked with correct hreflang annotations, that content parity exists across languages (no missing translations, no outdated versions, no significant structural deviations), that regional compliance requirements are met per target market, and that translation quality meets brand standards. Covers the full spectrum of multilingual integrity: technical SEO implementation, content completeness, linguistic quality, legal compliance, and locale-specific formatting.
Essential for brands operating across multiple markets where multilingual website and campaign integrity directly impacts search visibility, user experience, and regulatory standing. Surfaces issues that silently erode international performance — orphaned hreflang tags sending search engines conflicting signals, outdated translations creating brand inconsistency, missing compliance elements exposing the brand to legal risk, and incomplete localization undermining trust with local audiences.
## Input Required
The user must provide (or will be prompted for):
- **Website URL or content set**: The URL to audit (homepage, specific section, or full site) or a set of content assets (email campaigns, landing pages, ad copy) with their language versions. For websites, the user may provide a sitemap URL, a list of page URLs, or HTML source containing hreflang annotations. For content sets, provide all language versions of each asset
- **Languages to check**: Specific language-region codes to audit (e.g., en-US, de-DE, fr-FR, hi-IN) or "all configured" to audit every language in the brand's language configuration. If omitted, defaults to all languages configured in the brand profileView the complete source on GitHublanguage-config
When your agent uses it
Configure brand languages: secondary languages, do-not-translate terms, locale formats. "never translate our product name"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
2,000 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore9,902 bytesSKILL.mdcore9,902 bytesSKILL.mdcore9,902 bytesSKILL.mdcore9,902 bytes
Read SKILL.md
# /digital-marketing-pro:language-config
## Purpose
Configure and manage multilingual settings for the active brand. This command controls the language infrastructure that powers all translation, localization, and multilingual audit commands in the plugin. It sets the primary content language (the source language for all translations), secondary and target languages (which markets and languages the brand operates in), do-not-translate terms (brand names, product names, trademarked phrases, and technical terms that must appear identically in every language), preferred translation service per language (routing to the optimal MCP for each language pair), and locale-specific formatting rules (date, number, currency, measurement formats per market).
This configuration persists in the brand profile and is referenced by every multilingual command — translate, transcreate, multilingual-score, language-audit, hreflang-check, and any content creation targeting non-primary languages. Getting this configuration right upfront prevents repeated corrections downstream and ensures consistent multilingual output across all workflows.
## Input Required
The user must provide (or will be prompted for):
- **Configuration action**: What to do — `view` (display all current language settings), `set-primary` (change the primary/source language), `add-language` (add a secondary/target language), `remove-language` (remove a secondary language), `add-dnt` (add a do-not-translate term), `remove-dnt` (remove a do-not-translate term), `set-translation-pref` (set preferred translation service for a language), `set-locale-format` (set locale-specific formatting for a language-region), or `reset` (restore language config to defaults)
- **Language code** (for language actions): ISO 639-1 language code with optional ISO 3166-1 region (e.g., `en`, `en-US`, `de-DE`, `hi-IN`, `ja-JP`, `pt-BR`). Required for set-primary, add-language, remove-language, set-translation-pref, and set-locale-format actionsView the complete source on GitHublaunch-ad-campaign
When your agent uses it
Launch a paid ad campaign on a connected ad platform, approval-gated. "launch the Google Ads campaign"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
3,335 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Executing through the official ad-platform MCP servers (checked 2026-10-04)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore16,269 bytesSKILL.mdcore16,269 bytesSKILL.mdcore16,269 bytes
Read SKILL.md
# /digital-marketing-pro:launch-ad-campaign
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Create and launch a paid advertising campaign on the specified ad platform with proper campaign structure, audience targeting, bid strategy, budget controls, and compliance checks. Includes mandatory budget safeguards that require explicit re-confirmation when spend exceeds brand thresholds, and sets up post-launch monitoring to catch early performance issues before budget is wasted on underperforming configurations.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"launch-ad","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHublaunch-campaign
When your agent uses it
Launch an approved multi-channel campaign: blocker checks, then ordered activation. "go live with the campaign"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
3,356 tokensWhen the skill is activated
Reference documents
18,734 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this skill exists
- What this skill does NOT do
- Process
- Behaviour rules
- Arguments
- Related skills + commands
Scripts executed separately
../../scripts/connector-status.py../../scripts/connector-status.py../../scripts/connector_resolver.py../../scripts/crm-sync.py../../scripts/execution-tracker.py../../scripts/execution-tracker.py../../scripts/performance-monitor.py
Files
../../scripts/connector-status.pyruns17,623 bytes../../scripts/connector-status.pyruns17,623 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/crm-sync.pyruns15,922 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/performance-monitor.pyruns12,549 bytes../c2pa-metadata/SKILL.mddoc11,058 bytes../campaign-audit/SKILL.mddoc17,147 bytes../campaign-plan/SKILL.mddoc4,326 bytes../crm-sync/SKILL.mddoc13,355 bytes../launch-ad-campaign/SKILL.mddoc16,269 bytesSKILL.mdcore14,093 bytesSKILL.mdcore14,093 bytesSKILL.mdcore14,093 bytesSKILL.mdcore14,093 bytes../performance-check/SKILL.mddoc8,183 bytes../validate-profile/SKILL.mddoc12,792 bytes
Read SKILL.md
# /digital-marketing-pro:launch-campaign — Multi-Channel Campaign Launch Orchestrator
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill takes an **approved** campaign plan (from `/digital-marketing-pro:campaign-plan`) and walks it through every step required to go live: pre-launch gates, channel-by-channel activation, CRM record creation, kickoff comms to the team, and day-1 monitoring setup. It complements — and is broader than — `/digital-marketing-pro:launch-ad-campaign`, which handles only paid-ads activation on Google / Meta / LinkedIn / TikTok.
Use this skill **once** per campaign, after the campaign plan is approved and all creative + landing pages + email sequences are signed off. Not for paid-ads alone — for the full multi-channel launch (paid + organic + email + content + CRM + PR).
## Why this skill exists
A campaign plan is a document. A campaign launch is twenty separate platform actions in the correct order with the correct dependencies. Without an orchestrator, agencies miss steps — landing page goes live without the analytics tag wired, email automation gets enabled before the source list is GDPR-clean, paid ads get activated before the LP is indexed, the team finds out the campaign launched by seeing the first conversion notification in Slack.
This skill is the difference between "we launched" and "we launched cleanly." It checks every prerequisite before it touches a live system, executes the activation steps in dependency order, and records the launch as a CRM Campaign object so attribution can downstream-correctly from day one.
View the complete source on GitHublaunch-plan
When your agent uses it
Plan a product launch: pre-launch, hour-by-hour launch day, follow-up, owners, risks. "plan our product launch"
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
857 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,791 bytes
Read SKILL.md
# /digital-marketing-pro:launch-plan
## Purpose
Build a comprehensive launch playbook that coordinates all marketing activities across three phases — pre-launch, launch, and post-launch — to maximize impact and sustain momentum.
## Execution gate (MANDATORY — cannot be skipped)
This skill produces a launch **playbook** — it performs no external action itself, so it runs freely. The gate governs the *handoff*: before ANY step of this playbook is executed by a downstream execution skill (`/digital-marketing-pro:launch-campaign`, `/digital-marketing-pro:launch-ad-campaign`, `/digital-marketing-pro:send-email-campaign`, etc.), that skill presents its own Execution Summary and the user must type `yes`. Never proceed on ambiguous input, never auto-execute a playbook step, and never auto-retry a failed one.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHublead-import
When your agent uses it
Import leads into a CRM with dedup, scoring and consent checks, approval-gated. "dedupe and score this lead list"
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,835 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytesSKILL.mdcore13,919 bytes
Read SKILL.md
# /digital-marketing-pro:lead-import
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Import leads into the brand's CRM with data validation, deduplication, lead scoring, and proper consent tracking. Supports CSV files, JSON arrays, and manual entry with automatic source attribution. Ensures every imported lead is clean, scored, deduplicated, and compliant before it reaches the sales team — eliminating the manual data hygiene work that slows down lead-to-opportunity conversion. Integrates with the marketing-automation lead scoring framework to classify leads on import, so high-value prospects are routed to sales immediately while lower-scoring leads enter nurture sequences automatically.
Use this command for leads specifically — it applies scoring, lifecycle staging, and nurture enrollment. For general CRM data syncing (contacts, deals, campaigns) without lead scoring, use `/digital-marketing-pro:crm-sync` instead.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.View the complete source on GitHublead-magnet-ideas
When your agent uses it
Generate 3-5 lead magnet ideas from the brand's assets, graded by effort and power. "what should we give away"
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
855 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inputs
- The grading matrix
- Output structure
- Critical rules
Files
SKILL.mdcore3,537 bytes
Read SKILL.md
# /digital-marketing-pro:lead-magnet-ideas
The bridge between content that earns attention and a funnel that captures it.
A good lead magnet is not "an ebook" — it is the specific artifact this
audience would trade an email for, on this topic, from this brand, buildable
with what the brand already has.
## Inputs
- **The topic** — a subject, a campaign, or an existing piece the magnet
should extend.
- **The brand profile** — audience, expertise, existing assets, funnel stage
from `~/.claude-marketing/brands/{slug}/`. The best magnets are cut from IP
the brand already owns: the internal checklist, the template they use onView the complete source on GitHublearn
When your agent uses it
Log a marketing learning to the brand intelligence graph with confidence, deduplicated. "save this insight"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
1,324 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/intelligence-graph.py
Files
../../scripts/intelligence-graph.pyruns19,914 bytesSKILL.mdcore6,384 bytesSKILL.mdcore6,384 bytesSKILL.mdcore6,384 bytes
Read SKILL.md
# /digital-marketing-pro:learn
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Save a structured marketing learning to the brand's intelligence graph. Captures what was learned, under what conditions it applies, confidence level, and source agent. Builds compound intelligence that makes every future campaign smarter — turning one-off observations into a persistent knowledge base that compounds across campaigns, channels, and team members over time.
## Input Required
The user must provide (or will be prompted for):
- **Insight or learning**: What was observed or discovered — a concrete marketing observation such as "Subject lines with numbers get 23% higher open rates for our developer audience", a pattern like "Retargeting ads convert best within 48 hours of site visit", or a strategic finding like "Bottom-of-funnel content outperforms top-of-funnel for enterprise accounts in Q4"
- **Context conditions**: The specific circumstances under which this learning applies — channel (email, social, paid search, SEO, etc.), audience segment (developers, marketers, executives, SMB owners, etc.), objective (awareness, conversion, retention, upsell, etc.), campaign type (product launch, seasonal, evergreen, nurture, etc.), and any other qualifying conditions that scope when this insight is relevantView the complete source on GitHublive-dashboard
When your agent uses it
Design a live Looker Studio dashboard spec with fields, filters and setup guide. "build a Looker Studio dashboard"
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
2,169 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytesSKILL.mdcore10,705 bytes
Read SKILL.md
# /digital-marketing-pro:live-dashboard
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Create and configure a live Google Looker Studio dashboard connected to the brand's marketing data sources. Auto-selects appropriate metrics, dimensions, and chart types based on the business model (SaaS, eCommerce, B2B, agency). Provides always-current visibility into marketing performance without manual data pulls. Eliminates the need for recurring report generation by giving stakeholders a self-service, real-time view of the metrics that matter most to their business model, with drill-down capability and date range controls built in.
## Execution gate (MANDATORY — cannot be skipped)
By default this skill produces a dashboard **specification** for review. It must NOT create, publish, share, or connect a live data source to any external dashboard without passing this gate first:
1. Present the full spec — data sources, connected accounts, sharing scope, refresh cadence — as an **Execution Summary**.
2. The user must type `yes` (or an equivalent explicit approval) before any external dashboard is created or shared. ANY other input — ambiguous, implied, partial, or absent approval — cancels; the spec is saved but nothing is created externally.View the complete source on GitHublocal-seo
When your agent uses it
Build local SEO strategy: Business Profile, NAP, map pack, location pages, reviews. "rank for near me searches"
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
4,358 tokensWhen the skill is activated
Reference documents
16,787 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Context efficiency
- 2026 priority — Google Agentic Booking expansion
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Tips & caveats
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore21,470 bytesSKILL.mdcore21,470 bytesSKILL.mdcore21,470 bytescitation-management.mddoc16,682 bytesgbp-optimization.mddoc20,980 byteslocal-content.mddoc18,887 bytesmulti-location.mddoc23,995 bytes
Read SKILL.md
# Local SEO
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Google Business Profile Optimization**: Setting up, optimizing, or auditing a Google Business Profile (categories, attributes, photos, posts, Q&A, products, services)
- **Local Citations**: Building, auditing, or cleaning up business listings across directories and data aggregators
- **NAP Consistency**: Auditing Name, Address, Phone number consistency across the web
- **Local Pack / Map Pack Rankings**: Strategies to appear in the Google 3-pack and Google Maps results
- **Location Pages**: Creating or optimizing landing pages for individual business locations or service areas
- **Multi-Location SEO**: Managing local SEO at scale for businesses with multiple physical locations or franchise operationsView the complete source on GitHublocal-seo-audit
When your agent uses it
Audit local SEO health by script: profile, NAP, citations, reviews, scored 0-100. "audit our local SEO"
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
1,107 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/local-seo-checker.py../../scripts/local-seo-checker.py
Files
../../scripts/local-seo-checker.pyruns25,101 bytes../../scripts/local-seo-checker.pyruns25,101 bytesSKILL.mdcore5,020 bytes
Read SKILL.md
# /digital-marketing-pro:local-seo-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Run a comprehensive local SEO audit that evaluates all factors affecting local search visibility: Google Business Profile completeness, NAP consistency, citation presence, local content, reviews, and local schema. Produces a prioritized action plan to improve local pack rankings and drive foot traffic or service inquiries.
## Input Required
The user must provide (or will be prompted for):
- **Business name and address** (required): Full NAP (Name, Address, Phone)
- **Google Business Profile URL** (helpful): Direct link to GBP listingView the complete source on GitHublocalize-campaign
When your agent uses it
Localize a whole campaign for several markets with transcreation. One text → translate-content. "take the Q3 campaign multilingual"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
2,866 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/brand-voice-scorer.py../../scripts/eval-runner.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py
Files
../../scripts/brand-voice-scorer.pyruns21,099 bytes../../scripts/eval-runner.pyruns36,600 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytesSKILL.mdcore14,471 bytesSKILL.mdcore14,471 bytes
Read SKILL.md
# /digital-marketing-pro:localize-campaign
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Full campaign localization across multiple target markets. This command takes all campaign assets — emails, ads, social posts, landing pages, video scripts, push notifications — and adapts them for each target market. It goes far beyond translation: cultural references are adjusted, compliance elements are modified per region, SEO is localized, creative recommendations are adapted, and assets are prepared for multilingual publishing.
This is the comprehensive localization workflow for market expansion. Where `/digital-marketing-pro:translate-content` handles a single piece of content, `/digital-marketing-pro:localize-campaign` orchestrates the localization of an entire campaign across multiple markets simultaneously. It coordinates translation service routing per language, transcreation for emotional content, market-specific compliance additions, cultural adaptation based on Hofstede cultural dimensions, localized SEO, RTL formatting for applicable languages, and produces a deployment-ready package per market with quality scores and publishing checklists.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubloop-detect
When your agent uses it
Detect growth loops in the business and model each loop's amplification by script. "what growth loops do we have"
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
1,852 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/growth-loop-modeler.py
Files
../../scripts/growth-loop-modeler.pyruns21,952 bytesSKILL.mdcore9,362 bytes
Read SKILL.md
# /digital-marketing-pro:loop-detect
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Detect, model, and optimize growth loops in the business. Identify existing compounding loops — viral (users invite users), content (content attracts users who create content), data (more users improve the product which attracts more users), paid (revenue funds ads that generate more revenue), ecosystem (integrations attract users who build integrations), and community (members attract members who contribute value). Model each loop's effectiveness with amplification factors and cycle times, find bottlenecks that limit compounding, and propose new loops based on the business model and current strengths.
## Input Required
The user must provide (or will be prompted for):
- **Business metrics**: Key growth and engagement data — user acquisition numbers (signups, activations, sources), content production volume (blog posts, UGC, social mentions), revenue figures (MRR, ARPU, LTV), referral data (invites sent, referral conversions, viral coefficient), engagement metrics (DAU/MAU, session frequency, feature adoption), and retention rates (weekly, monthly, annual). Historical data across at least 3 months preferred for trend detection
- **Business model**: The company's primary business model — SaaS (subscription software), eCommerce (product sales), marketplace (connecting buyers and sellers), media (content and advertising), B2B services (consulting, agency), developer tools (API/platform), community/social (network effects), or hybrid. This determines which loop archetypes are most relevant and what amplification factors to expectView the complete source on GitHubmarket-weather
When your agent uses it
Rate market weather by script: economy, competition, platform and regulatory shifts, scored. "is now a good time to launch"
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
1,315 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/macro-signal-tracker.py../../scripts/macro-signal-tracker.py
Files
../../scripts/macro-signal-tracker.pyruns14,548 bytes../../scripts/macro-signal-tracker.pyruns14,548 bytesSKILL.mdcore6,774 bytes
Read SKILL.md
# /digital-marketing-pro:market-weather
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a Marketing Weather Report — a single-page assessment combining all external signals that affect marketing effectiveness right now. Score current conditions for marketing action (green, yellow, or red) across five dimensions: economic climate, cultural moments, industry and competitive activity, platform changes, and regulatory updates. This command gives marketers a quick go/no-go signal before launching campaigns, adjusting budgets, or making timing decisions. Instead of checking multiple dashboards and news sources, get one consolidated view of whether conditions favor aggressive marketing action, cautious optimization, or defensive positioning. Reports are time-horizon-aware — this week's weather may differ from this quarter's forecast.
## Input Required
The user must provide (or will be prompted for):
- **Industry context (optional)**: Specific industry or vertical to focus the assessment on. If omitted, uses the active brand profile's industry classification. Industry context determines which economic indicators, regulatory developments, and competitive signals are most relevant
- **Time horizon**: The planning window for the assessment — `this-week` (tactical, what to act on now), `this-month` (operational, what to prepare for), or `this-quarter` (strategic, what to plan around). Each horizon adjusts the signal weighting and recommendation specificity. If omitted, defaults to `this-month`View the complete source on GitHubmarketing-automation
When your agent uses it
Design marketing automation: workflows, lead scoring, nurture triggers. "build a lead scoring model"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
3,755 tokensWhen the skill is activated
Reference documents
18,833 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Agents Used
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore18,389 bytesautomation-workflows.mddoc19,394 byteslead-scoring.mddoc16,975 bytesmarketing-ops.mddoc22,768 bytesnurture-sequences.mddoc20,480 bytes
Read SKILL.md
# Marketing Automation
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Workflow Design**: Building, mapping, or optimizing automated marketing workflows and sequences
- **Lead Scoring**: Creating or refining lead scoring models, defining MQL/SQL thresholds, or troubleshooting scoring accuracy
- **Nurture Sequences**: Designing email nurture campaigns, drip sequences, or lifecycle-stage-based communication flows
- **Drip Campaigns**: Time-based or behavior-based automated email series for onboarding, education, or conversion
- **Behavioral Triggers**: Setting up event-based automation triggers (page visits, form fills, email engagement, product usage)
- **Lifecycle Marketing**: Mapping and automating communication across subscriber, lead, MQL, SQL, customer, and advocate stagesView the complete source on GitHubmartech-audit
When your agent uses it
Audit the martech stack for gaps, overlaps and wasted spend, with a consolidation plan. "audit our martech stack"
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
1,229 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore6,000 bytes
Read SKILL.md
# /digital-marketing-pro:martech-audit
## Purpose
Evaluate the current marketing technology stack for gaps, overlaps, integration issues, and optimization opportunities. Produces a comprehensive stack assessment with actionable consolidation and upgrade recommendations tied to ROI projections and implementation feasibility.
## Input Required
The user must provide (or will be prompted for):
- **Current tools/platforms**: List of marketing tools in use, organized by category if possible (e.g., CRM: Salesforce, Email: Mailchimp)
- **Budget for martech**: Current annual martech spend and available budget for changes or additions
- **Team size and technical skill level**: How many people use the stack, their roles, and technical proficiency (beginner, intermediate, advanced)
- **Primary marketing goals**: What the stack needs to support (lead gen, e-commerce, content marketing, ABM, retention, etc.)View the complete source on GitHubmedia-plan
When your agent uses it
Build a paid media plan: channel split, weekly flighting, audiences, reach and frequency. "plan our Q4 ad budget"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
1,840 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Ads inside AI answers (checked 2026-10-04)
- Output
- Before it goes to the client
- Agents Used
Files
SKILL.mdcore9,096 bytes
Read SKILL.md
# /digital-marketing-pro:media-plan
## Purpose
Generate a holistic paid media plan that coordinates budget, channels, audiences, creative, and timing across all advertising platforms. Balances reach and efficiency objectives with practical execution constraints to produce a ready-to-implement plan with clear pacing targets and contingency protocols.
## Input Required
The user must provide (or will be prompted for):
- **Campaign dates**: Start date, end date, and any blackout periods or mandatory flight windows
- **Total paid media budget**: Aggregate budget for the campaign period with any channel-specific floors or caps
- **Channels available**: Platforms in consideration — Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, ChatGPT Ads, programmatic display, connected TV, native, audio, out-of-home, etc.
- **Campaign objectives**: Primary and secondary objectives — awareness (reach/impressions), consideration (traffic/engagement), conversion (leads/sales/ROAS)View the complete source on GitHubmessage-test
When your agent uses it
Pretest 2-6 message variants on CRM-grounded synthetic panels. "which of these headlines will win"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
1,505 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/audience-simulator.py
Files
../../scripts/audience-simulator.pyruns31,742 bytesSKILL.mdcore7,920 bytes
Read SKILL.md
# /digital-marketing-pro:message-test
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Test message variants against synthetic audience panels before real-world deployment. Predict which variant will perform best overall and per segment, identify potential objections, and narrow down variants for real A/B testing. This command eliminates wasted ad spend and testing cycles by pre-screening message variants through AI-simulated audience segments grounded in real CRM behavioral data. Instead of testing six variants live and burning budget on underperformers, run them through synthetic panels first to identify the top two or three candidates worth real investment. Each variant is scored on five evaluation criteria — resonance, clarity, credibility, urgency, and differentiation — with per-segment breakdowns that reveal personalization opportunities where different segments prefer different messages.
## Input Required
The user must provide (or will be prompted for):
- **Message variants**: 2-6 variants to test, each containing a headline, body copy, and call-to-action. Variants can be full ad creatives, email subject lines with preview text, landing page hero sections, social media posts, or any message format. Label each variant clearly (Variant A, B, C, etc.). Variants should test meaningfully different approaches — different value propositions, emotional appeals, proof points, or framing — rather than minor word swaps that synthetic testing cannot reliably distinguish
- **Target audience panel**: An existing panel ID from a previous `/digital-marketing-pro:focus-group` or `/digital-marketing-pro:message-test` session, or new segment definitions to build from CRM data. New panels require segment criteria — demographic, behavioral, psychographic, or value-based attributes. Panels with 3-5 segments give the best balance of cross-segment insight and output manageabilityView the complete source on GitHubmultilingual-score
When your agent uses it
Score translated content for publication: quality, brand voice, market compliance. "is this German translation ready to publish"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
2,302 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore11,940 bytesSKILL.mdcore11,940 bytesSKILL.mdcore11,940 bytesSKILL.mdcore11,940 bytesSKILL.mdcore11,940 bytes
Read SKILL.md
# /digital-marketing-pro:multilingual-score
## Purpose
Score translated or localized content across multiple quality dimensions to determine whether it is ready for publishing, needs native speaker review, or requires re-translation. Combines technical translation scoring (length ratios, formatting preservation, placeholder integrity, key term consistency) with content quality evaluation, brand voice consistency checking, and market-specific compliance verification into a single composite multilingual quality score.
Use this command after any translation or localization workflow to validate quality before content goes live. It replaces subjective "looks good" assessments with a structured, repeatable scoring methodology that catches issues automated translation often introduces — brand voice drift, formatting damage, missing do-not-translate terms, compliance gaps in the target market, and length distortion that signals missing or added content. The composite score provides a clear publish/review/re-translate classification so the team knows exactly what action to take.
## Input Required
The user must provide (or will be prompted for):
- **Original content**: The source text that was translated — provided as inline text, a file path, or a URL to the source content. This serves as the reference for translation accuracy scoring. Required for technical translation scoring; if omitted, only content quality, brand voice, and compliance dimensions are scored
- **Translated content**: The translated or localized text to score — provided as inline text, a file path, or a URL. This is the primary content being evaluated. RequiredView the complete source on GitHubnarrative-landscape
When your agent uses it
Map the competitive narrative landscape and score unclaimed positioning gaps. "find us a differentiated position"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
1,481 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/narrative-mapper.py
Files
../../scripts/narrative-mapper.pyruns24,191 bytesSKILL.mdcore7,877 bytes
Read SKILL.md
# /digital-marketing-pro:narrative-landscape
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Map the competitive narrative landscape to identify positioning opportunities the brand can own. Analyze how each competitor positions itself across key market dimensions — price-value, innovation-reliability, specialist-generalist, premium-accessible, or custom dimensions relevant to the industry. Find crowded territories where multiple competitors cluster, unoccupied gaps where no brand has staked a claim, and recommend the highest-value positioning territory for the brand to claim based on customer desirability and brand credibility.
## Input Required
The user must provide (or will be prompted for):
- **Competitors to map**: List of competitor names to include in the landscape analysis — typically 4-8 direct competitors plus any adjacent or aspirational competitors. Each will be analyzed for positioning on every defined dimension
- **Narrative dimensions to analyze**: The positioning axes to map competitors against — common dimensions include price-value (premium vs budget), innovation-reliability (cutting-edge vs proven), specialist-generalist (niche expert vs broad platform), premium-accessible (luxury vs mass market), or custom dimensions specific to the industry (e.g., self-serve vs white-glove, enterprise vs SMB, AI-native vs traditional). Recommend 3-5 dimensions for a comprehensive but readable landscapeView the complete source on GitHubnarrative-tracker
When your agent uses it
Track the brand narrative in AI engines against desired positioning, flag misstatements. "is AI misrepresenting our brand"
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
1,699 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/geo-tracker.py../../scripts/geo-tracker.py
Files
../../scripts/geo-tracker.pyruns18,563 bytes../../scripts/geo-tracker.pyruns18,563 bytesSKILL.mdcore9,012 bytes
Read SKILL.md
# /digital-marketing-pro:narrative-tracker
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Track and analyze the narrative that AI engines construct about the brand. Monitor what ChatGPT, Perplexity, Gemini, and others say when asked about the brand, compare to desired positioning, detect drift or misrepresentation, and identify when competitors are gaining narrative territory in AI responses. Unlike visibility monitoring (which measures whether the brand appears), narrative tracking measures what is said — the qualitative story AI engines tell about the brand, whether it aligns with intended positioning, and how it changes over time. This gives marketers the insight to proactively shape AI perception through targeted content strategy rather than reacting after damage is done.
## Input Required
The user must provide (or will be prompted for):
- **Desired brand positioning statement(s)**: The core positioning the brand wants AI engines to reflect — value proposition, market position, key differentiators, and target audience. If not provided explicitly, these are extracted from the brand profile's positioning and messaging sections
- **Key brand attributes to verify in AI responses**: Specific attributes, claims, or themes that should appear when AI engines describe the brand — e.g., "enterprise-grade security", "founded in 2015", "serving 10,000+ customers", "leader in [category]". These become the checklist for narrative alignment scoringView the complete source on GitHubpage-seo-analysis
When your agent uses it
Analyze the SEO of one URL, scored /80 with paste-ready fixes. "analyze the SEO of this page"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
910 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Schema Deprecation Tracking
- Output
- Agents Used
- Scripts Used
Files
SKILL.mdcore3,985 bytes
Read SKILL.md
# /digital-marketing-pro:page-seo-analysis
## Purpose
Deep single-page SEO analysis — examines everything about one URL across all ranking dimensions. More granular than a site-wide audit. Use for landing page optimization, content refresh prioritization, or pre-publish quality checks.
## Input Required
- **URL**: The specific page to analyze
- **Target keyword**: Primary keyword this page should rank for (optional — can be inferred)
- **Competitors**: 1-3 competitor pages targeting the same keyword (optional)
## Process
View the complete source on GitHubpaid-advertising
When your agent uses it
Plan or audit paid ads with current platform rules and benchmarks: Google PMax/AI Max, Meta, retail. "should we use Performance Max"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
5,549 tokensWhen the skill is activated
Reference documents
46,313 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Since August 2026 (verified 2026-10-04)
- Products on the watch list (`scripts/paid_products.json`)
- Recent platform API changes (checked 2026-10-27)
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/connector_resolver.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/paid_products.jsonasset10,417 bytesSKILL.mdcore24,966 bytesSKILL.mdcore24,966 bytesSKILL.mdcore24,966 bytesads-in-ai-answers.mddoc12,179 bytesaudio-programmatic.mddoc15,848 bytesbid-strategy.mddoc14,846 bytesgoogle-ads.mddoc17,586 byteslinkedin-ads.mddoc11,634 bytesmedia-planning.mddoc15,217 bytesmeta-ads.mddoc12,972 bytesmicrosoft-ads.mddoc14,368 bytesnative-advertising.mddoc15,124 bytesprogrammatic.mddoc13,765 bytesretail-media-networks.mddoc17,109 bytesretargeting-audiences.mddoc18,590 bytestiktok-ads.mddoc14,497 bytes
Read SKILL.md
# Paid Advertising
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Since August 2026 (verified 2026-10-04)
- **Google AI Max auto-upgrade:** Search campaigns using automatically created assets or campaign-level broad match **auto-upgrade to AI Max starting September 2026**; the Dynamic Search Ads (DSA) sunset and its auto-upgrade moved to **February 2027**. Audit every account for campaigns already flipped, and run the `ADOPT_AI_MAX` experiment on the rest before Google does it for you. Source: [blog.google](https://blog.google/products/ads-commerce/dsa-upgrade-to-ai-max-2026/).
- **Google Ads Limited Ad Serving** now covers every surface (Search, YouTube, Gmail, Play, Discover), rolling out gradually through 2028 — new advertisers can see throttled delivery while trust builds. Source: [Ads policy](https://support.google.com/adspolicy/answer/17344822) (posted 5 Aug 2026).
- **LinkedIn Marketing API:** `202608` made the Matched Audiences API generally available (cap: 1,000 DMP segments per account), added account-level dynamic UTMs and MQL/SQL conversion types, and **sunset legacy geo on 31 Aug 2026**; `202609` added hashed first/last names in the Conversions API and a 180-day attribution window. `202510` sunset on 15 Oct 2026 and `202511` sunsets on 16 Nov 2026. DMP's templates send the LinkedIn version in `scripts/connector_resolver.py` API_VERSIONS (currently 202610, which adds a Boost API and nothing breaking). From `202611`, publisher lists need a `surface` field (`LAN` or `CTV`); after 15 Dec 2026, campaigns can use only publisher lists whose placement matches, on every version. Campaigns live at `/rest/adAccounts/{id}/adCampaigns`; `/rest/adCampaignsV2` is not in the versioned docs, so DMP's templates moved (checked against the docs, not a live call). Source: [recent changes](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes).
- **TikTok Upgraded Smart+ (checked 2026-10-27):** from **1 Jan 2027** the Marketing API stops creating non-Search **Legacy Manual Flow** campaigns (Sales, App Promotion, Lead Generation) through `/campaign/create/` and the matching ad group, ad and copy endpoints. Build new campaigns with the Upgraded Smart+ APIs (`/smart_plus/campaign/create/` and siblings), which still offer a fully manual option. Detail and sources: [`tiktok-ads.md`](tiktok-ads.md).
- **Amazon Ads (unBoxed, 30 Sep 2026):** an "Amazon Ads Agent" unifying DSP and the Ads Console, Full-Funnel Campaigns, Sponsored Services, and an **Amazon Ads MCP Server (Lite)** — a connector candidate for retail-media workflows. Source: [Amazon Ads news](https://advertising.amazon.com/library/news/unboxed-2026-news-announcements).
- **ChatGPT Ads — the developer surface is primary-documented (checked 2026-10-04):** [developers.openai.com/ads](https://developers.openai.com/ads) documents:
- an Advertiser API and a Bulk API
- a **Measurement Pixel** and a server-side **Conversions API**, deduplicated on pixel `event_id` = API `id`View the complete source on GitHubpdf-report
When your agent uses it
Generate a branded PDF report: executive summary, campaign or channel review. "export this as a branded PDF"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,374 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,017 bytesSKILL.mdcore7,017 bytesSKILL.mdcore7,017 bytes
Read SKILL.md
# /digital-marketing-pro:pdf-report
## Purpose
Generate professionally branded marketing reports as structured, downloadable documents. Supports executive summaries, campaign performance reports, channel reports, competitor reports, and monthly/quarterly reviews. Reports include brand theming (colors, logos, fonts) and are structured for the intended audience (C-suite, marketing team, or client). Designed to eliminate manual report assembly by pulling live data from connected sources, applying brand-consistent formatting, and producing audience-appropriate deliverables that are ready to share without further editing.
## Input Required
The user must provide (or will be prompted for):
- **Report type**: `executive-summary` (1-page strategic overview with 3-5 headline KPIs), `campaign-report` (full campaign performance with channel breakdowns and A/B results), `channel-report` (deep-dive into a single channel — paid, organic, email, social), `competitor-report` (competitive landscape with share-of-voice and positioning), or `monthly-review` / `quarterly-review` (period-over-period performance with trend analysis and forward plan)
- **Data sources and metrics to include**: Which campaigns, channels, or metric categories to pull into the report — e.g., "all paid media campaigns from Q4", "email + social metrics", "top 5 competitors". Specific KPIs can be requested (ROAS, CAC, LTV, conversion rate, pipeline) or left to auto-select based on report type and business model
- **Time period**: The reporting window — specific dates, relative periods (last 30 days, Q4 2024, YTD), or comparison periods (this month vs. last month, Q4 vs. Q3). For reviews, the primary period and comparison period are both required
- **Intended audience**: `c-suite` (executive summary focus — strategic insights, trend arrows, recommendations), `team` (full operational detail — granular metrics, test results, action items), or `client` (branded presentation format — objectives recap, performance against goals, competitive context, next steps)View the complete source on GitHubperformance-check
When your agent uses it
Check live performance KPIs from connected analytics: RAG status, trends, actions. "quick performance snapshot"
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
1,794 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/connector_resolver.py../../scripts/performance-monitor.py../../scripts/significance-tester.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/connector_resolver.pyruns61,630 bytes../../scripts/performance-monitor.pyruns12,549 bytes../../scripts/significance-tester.pyruns10,788 bytesSKILL.mdcore8,183 bytes
Read SKILL.md
# /digital-marketing-pro:performance-check
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Pull live metrics from all connected analytics MCPs and produce a comprehensive performance snapshot. Compares current performance to KPI targets defined in the brand profile, previous-period benchmarks, and industry averages. Designed for quick health checks — run it daily, weekly, or on-demand to stay on top of marketing performance without switching between platforms.
**Scope (vs `/digital-marketing-pro:performance-report`):** this skill is the **live-pull + snapshot-persistence** layer — it fetches current metrics from the platforms and saves a snapshot for trend history. When you need a formatted, narrative deliverable for stakeholders (executive summary, channel commentary, prioritized recommendations, branded formatting), run `/digital-marketing-pro:performance-report`, which consumes the snapshots this skill persists rather than re-pulling. Use `performance-check` to *see the numbers now*; use `performance-report` to *tell the story*.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubperformance-report
When your agent uses it
Write a stakeholder performance report from data. Sudden spikes → anomaly-scan. "write the monthly performance report"
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
813 tokensWhen the skill is activated
Reference documents
751 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,794 bytesdeliverable-layout.mddoc3,541 bytes
Read SKILL.md
# /digital-marketing-pro:performance-report
## Purpose
Generate a structured marketing performance report that transforms raw data into insights. Covers KPI tracking, trend analysis, anomaly detection, and prioritized recommendations for optimization.
**Scope (vs `/digital-marketing-pro:performance-check`):** this skill is the **narrative formatting layer** — it turns metrics into a stakeholder-ready deliverable (executive summary, channel commentary, trend narrative, prioritized recommendations, audience-appropriate formatting). It consumes the live pulls and persisted snapshots that `/digital-marketing-pro:performance-check` produces rather than re-pulling from the platforms itself. Use `performance-check` to *see the numbers now*; use `performance-report` to *tell the story*. For deeper anomaly diagnosis, hand off to `/digital-marketing-pro:anomaly-scan`.
## Input Required
The user must provide (or will be prompted for):
- **Reporting period**: Date range for the report
- **Channels to cover**: Which marketing channels to include (all, or specific ones)View the complete source on GitHubpipeline-update
When your agent uses it
Update CRM pipeline deals with forecast impact, behind a typed approval gate. "move this deal to negotiation"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
2,761 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore13,536 bytesSKILL.mdcore13,536 bytes
Read SKILL.md
# /digital-marketing-pro:pipeline-update
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Update deal and opportunity records in the CRM pipeline — move deals between stages, update values, add notes, and track pipeline velocity. Provides a clear before-and-after view of every change and calculates the downstream impact on pipeline metrics, giving both marketing and sales teams visibility into deal progression, forecast accuracy, and revenue pacing against targets. Designed for both individual deal updates and batch stage transitions, with built-in validation to prevent invalid stage skips and mandatory field gaps.
Use this command for pipeline changes that affect deal stage, value, or forecast. For creating new deals from leads, use `/digital-marketing-pro:lead-import` to bring leads into the CRM first, then use this command to manage their pipeline progression.
For bulk pipeline reporting without individual updates, use `/digital-marketing-pro:executive-dashboard` instead.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.View the complete source on GitHubpr-pitch
When your agent uses it
Build a PR pitch package: core pitch, outlet variations, media list, release. "pitch this story to journalists"
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
681 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,117 bytesSKILL.mdcore3,117 bytes
Read SKILL.md
# /digital-marketing-pro:pr-pitch
## Purpose
Create compelling media pitch packages designed to earn coverage. Includes pitch templates customized by outlet type, target media identification, outreach sequencing, and journalist-ready materials.
## Input Required
The user must provide (or will be prompted for):
- **Story angle**: What is newsworthy (launch, data, trend, expert commentary, milestone)
- **Pitch type**: Proactive pitch, reactive (newsjacking), journalist-request-platform response (e.g., Qwoted, Featured, Source of Sources), or thought leadership placement
- **Target outlets**: Desired publications or tier level (Tier 1 national, trade, local, podcasts)
- **Spokesperson**: Who speaks for the brand, their credentials and availabilityView the complete source on GitHubpricing-test
When your agent uses it
Test 3-8 price points on CRM-grounded synthetic panels by script, find the optimum. "test these price points"
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
1,609 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/audience-simulator.py
Files
../../scripts/audience-simulator.pyruns31,742 bytesSKILL.mdcore8,542 bytes
Read SKILL.md
# /digital-marketing-pro:pricing-test
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Test pricing scenarios against synthetic audience panels grounded in real CRM data. Estimate willingness-to-pay by segment, find optimal price points, acceptable price ranges, and the spread between revenue-maximizing and volume-maximizing prices. This command brings Van Westendorp and Gabor-Granger style pricing analysis to AI-simulated panels — giving directional pricing intelligence without the cost and lead time of formal pricing research. Use it before launching a new product, adjusting existing pricing, introducing tiers, or evaluating competitive price positioning. Every output includes confidence limitations so results are treated as informed estimates requiring real-world validation for high-stakes pricing decisions.
## Input Required
The user must provide (or will be prompted for):
- **Product or service description**: What is being priced — features, value proposition, target use case, and any relevant context about how customers perceive the offering. The more specific the description, the more grounded the synthetic panel's price sensitivity responses will be
- **Price points to test**: 3-8 specific price points to evaluate across the audience panel. Price points should span a meaningful range — from a low-anchor price the user suspects is too cheap to a high-anchor price they suspect is too expensive. Evenly spaced intervals work best for identifying sensitivity curvesView the complete source on GitHubprogrammatic-seo
When your agent uses it
Plan or audit programmatic SEO pages at scale, gated against thin content. "audit our location pages"
What it loads into context
Frontmatter
47 tokensAlways available to the agent
SKILL.md
1,709 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Quality Gates
- URL Pattern Library
- Output
- Agents Used
- Scripts Used
Files
SKILL.mdcore7,647 bytesSKILL.mdcore7,647 bytesSKILL.mdcore7,647 bytesSKILL.mdcore7,647 bytes
Read SKILL.md
# /digital-marketing-pro:programmatic-seo
## Purpose
Plan and audit SEO pages generated at scale from structured data sources (databases, APIs, CSV/JSON files). Enforces quality gates to prevent thin content penalties, index bloat, and Google's Scaled Content Abuse policy.
## Input Required
The user must provide (or will be prompted for):
- **URL or data source**: Existing programmatic pages to audit, or data source details for planning
- **Page type**: What kind of pages are being generated (location, product, integration, glossary, template, tool)
- **Data source**: CSV/JSON files, API endpoints, database queries — or existing pages to analyze
- **Target scale**: How many pages will be generatedView the complete source on GitHubprompt-test
When your agent uses it
A/B test content variants by eval score and declare a winner with confidence. "compare two versions of this copy"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
1,727 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/eval-runner.py../../scripts/prompt-ab-tester.py
Files
../../scripts/eval-runner.pyruns36,600 bytes../../scripts/prompt-ab-tester.pyruns16,004 bytesSKILL.mdcore7,903 bytes
Read SKILL.md
# /digital-marketing-pro:prompt-test
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
A/B test content output variations by comparing quality scores across different prompt approaches, headline styles, CTA phrasing, or complete content strategy variations. Create named tests, log variants with their evaluation scores, and determine which approach produces the best quality results.
This command brings experimental rigor to content creation. Instead of guessing which headline style, subject line approach, or content structure works best, you run a structured test: define the experiment, log each variant with its quality scores, and get a statistically grounded recommendation on which approach to adopt. Useful for testing subject line styles (curiosity vs. benefit-driven), headline approaches (question vs. statement vs. how-to), CTA phrasing (urgency vs. value vs. social proof), tone variations (formal vs. conversational), or complete content strategy A/B comparisons.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubpublish-blog
When your agent uses it
Publish a blog post to WordPress or Webflow with SEO metadata, approval-gated. "publish this post to WordPress"
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
2,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore11,839 bytes
Read SKILL.md
# /digital-marketing-pro:publish-blog
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Publish a fully optimized blog post to the brand's CMS (WordPress or Webflow) with SEO metadata, categories and tags, featured image, and optional scheduling. Includes pre-publish quality checks for content scoring and brand voice alignment, plus post-publish verification to confirm the live URL is accessible and rendering correctly. Designed to be the final step in a content workflow — taking a draft from ready to live with all optimization gates enforced.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"publish-blog","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubqbr-plan
When your agent uses it
Prepare a QBR package: goals vs actuals, wins, root causes, ROI, next-quarter plan. "prepare the QBR"
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
1,508 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Before it goes to the client
- Agents Used
Files
SKILL.mdcore7,567 bytes
Read SKILL.md
# /digital-marketing-pro:qbr-plan
## Purpose
Prepare a comprehensive Quarterly Business Review presentation with performance retrospective, strategic insights, and forward-looking roadmap. Translates raw campaign data into a compelling narrative that demonstrates value, addresses challenges transparently, and builds confidence in the next quarter's strategy.
## Input Required
The user must provide (or will be prompted for):
- **Quarter being reviewed**: Specific quarter and year (e.g., Q4 2025) and the exact date range covered
- **Active campaigns and channels**: All campaigns that ran during the quarter with channels, objectives, and status (active, paused, completed)
- **Goals vs actual results**: Original quarterly targets and actual performance for each KPI — traffic, leads, conversions, revenue, ROAS, etc.
- **Budget vs actual spend**: Planned budget allocation by channel and actual spend with variance explanationsView the complete source on GitHubquality-report
When your agent uses it
Report content quality trends from logged evals, with regression alerts. "is our content quality improving"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
1,854 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/quality-tracker.py
Files
../../scripts/quality-tracker.pyruns18,178 bytesSKILL.mdcore9,484 bytes
Read SKILL.md
# /digital-marketing-pro:quality-report
## Purpose
Quality intelligence reporting over time. Shows eval score trends across days and weeks, identifies which content types are improving or declining, detects regression alerts where quality has dropped below established baselines, surfaces the brand's best and worst performing content, and provides actionable recommendations for improving content quality across the organization.
This command turns the evaluation data logged by /digital-marketing-pro:eval-content into strategic insight. Instead of evaluating a single piece of content, it analyzes the pattern across all evaluations to answer: Is our content quality improving or declining? Which content types are strongest? Which dimensions need the most work? Are there regressions we need to address? What specific changes will have the biggest impact on overall quality?
## Input Required
The user must provide (or will be prompted for):
- **Time period** (optional): The reporting window — `7d`, `14d`, `30d`, `60d`, `90d`, or a custom date range (`YYYY-MM-DD to YYYY-MM-DD`). Defaults to 30 days. Longer periods provide better trend visibility but may include outdated data from before process changes
- **Content type filter** (optional): Focus the report on a specific content type — `blog_post`, `email`, `ad_copy`, `social_post`, `landing_page`, `press_release`, `content_brief`, `campaign_plan`, or `all`. Defaults to all types. Useful for drilling into a specific content stream's quality trajectoryView the complete source on GitHubrank-monitor
When your agent uses it
Monitor keyword rankings with drop alerts and SERP features. Two-snapshot compare → seo-drift. "track our keyword rankings"
What it loads into context
Frontmatter
57 tokensAlways available to the agent
SKILL.md
2,691 tokensWhen the skill is activated
Reference documents
897 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- SERP-feature tracking (`--features` mode)
- Output
- Tips & caveats
- Agents Used
- See also
Scripts executed separately
../../scripts/serp-snapshot.py
Files
../../scripts/serp-snapshot.pyruns8,727 bytesSKILL.mdcore12,205 bytesSKILL.mdcore12,205 bytesSKILL.mdcore12,205 bytesserp-snapshot-format.mddoc3,493 bytes
Read SKILL.md
# /digital-marketing-pro:rank-monitor
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Set up and manage keyword ranking monitoring — and, with `--features`, SERP-feature tracking in the same run. Track target keyword positions across Google, establish baselines, detect drops greater than 5 positions, and generate alerts when rankings change significantly. In `--features` mode, also track which SERP features appear for each query (AI Overviews, Featured Snippets, People Also Ask, Knowledge Panels, Local Pack, Image Pack, Video Carousel, Shopping) and whether the brand owns them. This gives ongoing visibility into organic performance — catching ranking declines early, spotting upward trends, and tracking the increasingly feature-rich results page.
> **Merged skill (was `rank-monitor` + `serp-tracker`).** SERP-feature tracking is now the `--features` mode of this one skill. The old `/digital-marketing-pro:serp-tracker` is a deprecation pointer to here.
### Data sources (read this before configuring)
- **Google Search Console MCP** is the authoritative position + impressions source for verified properties. GSC returns per-query/per-page positions, impressions, clicks, and CTR — it does **not** return the full per-query SERP-feature layout or AI Overview citation lists. Do not claim otherwise.
- **Rank-tracker MCPs** (Ahrefs / Semrush / SE Ranking, if connected) fill in positions for keywords/competitors GSC can't see and provide their own SERP-feature flags.View the complete source on GitHubrecall
When your agent uses it
Recall past learnings for a channel or audience as a confidence-ranked playbook. "what worked last time"
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
1,276 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/intelligence-graph.py
Files
../../scripts/intelligence-graph.pyruns19,914 bytesSKILL.mdcore6,271 bytes
Read SKILL.md
# /digital-marketing-pro:recall
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Retrieve relevant learnings from the brand's compound intelligence graph. Given a context — channel, audience, objective, or situation — return the most relevant validated insights ranked by confidence and recency. Turns accumulated marketing knowledge into an actionable playbook for any scenario, so past learnings directly inform current decisions without relying on memory or searching through old reports.
## Input Required
The user must provide (or will be prompted for):
- **Query context**: The situation to recall learnings for — specified as one or more of the following dimensions: channel (email, social, paid search, SEO, content, SMS, etc.), audience segment (developers, marketers, executives, SMB owners, enterprise buyers, etc.), objective (awareness, conversion, retention, upsell, win-back, etc.), campaign type (product launch, seasonal, evergreen, nurture, event, etc.), or a freeform situation description that captures the scenario in natural language (e.g., "planning a Black Friday email campaign targeting lapsed customers" or "launching a new product to a developer audience via content marketing")
- **Confidence threshold (optional)**: Minimum confidence score to include — defaults to 0.3 (includes hypotheses and above). Set to 0.7+ for only validated insights, or 0.0 to see everything including early-stage observationsView the complete source on GitHubredirect-manager
When your agent uses it
Create, audit and fix URL redirects on a connected CMS, approval-gated. "set up a 301 redirect"
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
2,150 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytesSKILL.mdcore10,204 bytes
Read SKILL.md
# /digital-marketing-pro:redirect-manager
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Manage URL redirects across the website. Create new 301/302 redirects, audit existing redirects for chains and loops, fix broken redirect paths, and deploy changes via connected CMS MCP. Covers site migrations, URL restructuring, and ongoing redirect maintenance. Redirect mismanagement is one of the most common causes of SEO traffic loss — chains dilute link equity, loops create crawl errors, and broken redirects return 404s for previously indexed URLs. This command provides systematic redirect lifecycle management from creation through auditing and repair.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — every redirect to be created/updated/removed with current-vs-proposed state and site-wide blast radius — as an **Execution Summary** before touching any live rule.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"redirect-manager","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubregion-config
When your agent uses it
Configure a brand region: timezone, currency, compliance regimes, holidays. "set up the Japan market"
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
2,581 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore13,341 bytesSKILL.mdcore13,341 bytes
Read SKILL.md
# /digital-marketing-pro:region-config
## Purpose
Configure regional and market-specific settings for a brand. Sets the timezone for scheduled content delivery, primary language for content generation, applicable compliance and privacy regulations, preferred local platforms, currency for budget and performance reporting, and business hours for communication scheduling. These settings propagate to all downstream commands so that campaigns, content, and reporting automatically respect regional requirements without manual adjustment each time.
This is a setup/configuration command. It writes persistent configuration files that other commands consume. Once a region is configured, commands like `/digital-marketing-pro:content-calendar`, `/digital-marketing-pro:email-sequence`, `/digital-marketing-pro:paid-advertising`, and `/digital-marketing-pro:performance-report` automatically inherit the region's timezone, language, compliance rules, and platform preferences.
Supports both single-market configurations (e.g., "Japan") and broad regional groupings (e.g., "APAC") depending on how granular the brand's market segmentation needs to be.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubreputation-management
When your agent uses it
Run reputation programs: reviews, sentiment, brand safety. Crisis → crisis-response; one review → review-response. "get more Google reviews"
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
3,952 tokensWhen the skill is activated
Reference documents
15,688 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore20,308 bytesbrand-safety.mddoc10,638 bytescrisis-communication.mddoc9,999 bytesrecovery-playbooks.mddoc11,915 bytesreview-management-platforms.mddoc18,951 bytesreview-strategy.mddoc8,506 bytessentiment-monitoring.mddoc11,694 bytes
Read SKILL.md
# Reputation Management
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this skill when the user's request involves any of the following:
- Generating more customer reviews or managing existing reviews across platforms
- Responding to negative reviews (Google, Yelp, G2, Capterra, Trustpilot, Amazon, BBB, industry-specific sites)
- Preparing for or responding to a brand crisis (product recall, executive scandal, data breach, viral complaint, lawsuit)
- Assessing and mitigating brand safety risks in advertising and partnerships
- Monitoring brand sentiment across social media, review platforms, and press
- Building a reputation recovery plan after a negative eventView the complete source on GitHubretargeting-strategy
When your agent uses it
Design a retargeting strategy: audience windows, sequencing, frequency caps. "plan our remarketing campaigns"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,458 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore7,137 bytes
Read SKILL.md
# /digital-marketing-pro:retargeting-strategy
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Design a cross-platform retargeting strategy with audience segmentation by funnel stage and behavior, creative sequencing, frequency management, and budget allocation. Produces a complete retargeting playbook ready for implementation across advertising platforms.
## Input Required
The user must provide (or will be prompted for):
- **Website traffic volume**: Monthly unique visitors and page views (approximate is fine)
- **Conversion funnel stages**: The key stages in the user journey (visit, product view, add to cart, checkout, purchase -- or equivalent for lead gen funnels)View the complete source on GitHubreview-response
When your agent uses it
Draft a reply to one customer review, voice-scored, with escalation flags. "reply to this 1-star review"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,271 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore6,434 bytes
Read SKILL.md
# /digital-marketing-pro:review-response
## Purpose
Generate professional, brand-aligned review responses for positive, neutral, and negative reviews across any platform. Ensures every response maintains brand voice, addresses the reviewer's specific points, and follows best practices for reputation management and customer recovery.
## Input Required
The user must provide (or will be prompted for):
- **Review text**: The full text of the review to respond to
- **Rating**: Star rating (1-5 stars)
- **Platform**: Where the review was posted (Google, Yelp, G2, Capterra, Trustpilot, Amazon, TripAdvisor, App Store, etc.)
- **Reviewer name**: Display name of the reviewer (optional — for personalization)View the complete source on GitHubroi-calculator
When your agent uses it
Calculate campaign ROI by script: ROAS, CPA, attribution views, LTV payback. "what's the ROI on this campaign"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
1,234 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/campaign-tracker.py../../scripts/roi-calculator.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytes../../scripts/roi-calculator.pyruns12,447 bytesSKILL.mdcore5,884 bytes
Read SKILL.md
# /digital-marketing-pro:roi-calculator
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Campaign ROI calculator with multi-touch attribution models. Produces a comprehensive ROI analysis across channels for budget justification, optimization recommendations, and executive reporting.
## Input Required
The user must provide (or will be prompted for):
- **Campaign spend by channel**: Dollar amounts invested per channel (paid search, paid social, email, SEO, content, events, etc.)
- **Conversions and revenue by channel**: Number of conversions and total revenue attributed to each channelView the complete source on GitHubsave-knowledge
When your agent uses it
Save one piece of brand knowledge to persistent memory with dedup and tags. "store this competitor intel"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,783 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/memory-manager.py../../scripts/memory-manager.py
Files
../../scripts/memory-manager.pyruns15,629 bytes../../scripts/memory-manager.pyruns15,629 bytesSKILL.mdcore8,539 bytesSKILL.mdcore8,539 bytes
Read SKILL.md
# /digital-marketing-pro:save-knowledge
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Save brand knowledge to the persistent memory layer (a vector database you've connected — for example Pinecone via `@pinecone-database/mcp`) for semantic retrieval in future sessions. Stores campaign learnings, competitive intelligence, brand guidelines, and performance insights with proper metadata tagging so that valuable knowledge is never lost between sessions. Every stored item is content-hashed for deduplication, tagged with brand context, and indexed for natural language search — turning ad-hoc learnings into durable institutional memory that every agent can draw from. Designed for targeted, intentional knowledge capture — for bulk session syncing, use `/digital-marketing-pro:sync-memory` instead.
## Input Required
The user must provide (or will be prompted for):
- **Content to store**: The knowledge to save — can be plain text typed directly, a reference to content in the current conversation (e.g., "save that email analysis we just did"), structured data from a campaign report or audit, or a URL to external research. Content is stored as-is with optional summarization for the index entry
- **Content type**: One of: `guideline` (brand rules, voice standards, style restrictions), `campaign-learning` (what worked or failed in a campaign with supporting evidence), `competitive-intel` (competitor findings, positioning, pricing, strategy moves), `performance-insight` (metrics, benchmarks, trends, statistical patterns), or `brand-asset` (approved copy, templates, creative references, messaging frameworks)View the complete source on GitHubschedule-social
When your agent uses it
Schedule social posts to connected platforms at best times, approval-gated. "schedule this post for Monday"
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
2,911 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py../../scripts/posting-time-analyzer.py
Files
../../scripts/approval-manager.pyruns19,439 bytes../../scripts/platform_specs.jsonasset13,180 bytes../../scripts/posting-time-analyzer.pyruns26,118 bytesSKILL.mdcore14,242 bytes
Read SKILL.md
# /digital-marketing-pro:schedule-social
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Schedule social media posts to one or more platforms with platform-specific formatting, optimized posting times, hashtag strategy, and engagement monitoring setup. Handles multi-platform distribution from a single content brief by generating tailored variations that respect each platform's character limits, media specs, and audience conventions while preserving the core message across all channels.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"schedule-social","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubsearch-knowledge
When your agent uses it
Search the brand's stored knowledge and memory, ranked with provenance. "what are our brand voice guidelines"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,761 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/memory-manager.py../../scripts/memory-manager.py
Files
../../scripts/memory-manager.pyruns15,629 bytes../../scripts/memory-manager.pyruns15,629 bytesSKILL.mdcore8,531 bytesSKILL.mdcore8,531 bytes
Read SKILL.md
# /digital-marketing-pro:search-knowledge
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Semantic search across all stored brand knowledge in the vector database and knowledge graph. Answers questions like "What worked for email in Q4?", "What are our brand voice guidelines?", "Show me learnings about audience X", or "What did we learn about competitor Y's pricing?" Returns relevant entries ranked by similarity with full provenance context, so agents and users can make decisions informed by everything the brand has ever learned — not just what they remember from the current session. Searches all connected memory layers simultaneously: vector DB for semantic similarity, knowledge graph for entity relationships, and local index for un-synced recent entries.
## Input Required
The user must provide (or will be prompted for):
- **Search query**: Natural language question or topic — e.g., "What email subject line patterns drove the highest open rates?", "What are our compliance restrictions for the EU market?", "Show me everything we know about competitor X", or "What campaign strategies worked for audience millennials in Q4?" The query is embedded and matched semantically, so exact wording does not need to match stored content
- **Content type filter (optional)**: Narrow results to a specific type — `guideline`, `campaign-learning`, `competitive-intel`, `performance-insight`, or `brand-asset`. Omit to search all types. Multiple types can be specified as a comma-separated listView the complete source on GitHubsegment-audience
When your agent uses it
Build audience segments in CRM, email or ad platforms with consent checks, approval-gated. "create a segment of lapsed customers"
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
2,901 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore14,507 bytesSKILL.mdcore14,507 bytesSKILL.mdcore14,507 bytes
Read SKILL.md
# /digital-marketing-pro:segment-audience
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Create or update audience segments in the brand's CRM or email platform based on behavioral, demographic, or engagement criteria. Segments can be used for ad targeting, email campaigns, retargeting, or personalization. Ensures segments are well-defined, properly sized, actionable across platforms, and documented with clear criteria for reproducibility — so the team can understand exactly who is in a segment and why. Supports RFM (recency, frequency, monetary) modeling, lifecycle-based segmentation, and predictive scoring criteria for advanced audience strategies.
Use this command to build targeting audiences before campaign launches. For importing new contacts into the CRM first, use `/digital-marketing-pro:lead-import`.
For exporting segment member data to external tools, use `/digital-marketing-pro:data-export` after segment creation.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.View the complete source on GitHubsend-email-campaign
When your agent uses it
Send an email campaign via a connected ESP with spam and compliance checks, approval-gated. "send this newsletter to the active list"
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,715 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py../../scripts/send-time-optimizer.py
Files
../../scripts/approval-manager.pyruns19,439 bytes../../scripts/send-time-optimizer.pyruns31,962 bytesSKILL.mdcore12,776 bytes
Read SKILL.md
# /digital-marketing-pro:send-email-campaign
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Create and send a targeted email campaign through the brand's connected email platform with personalization, A/B subject lines, compliance checks, and deliverability monitoring. Handles the full lifecycle from content validation through send execution to post-send monitoring, with tiered risk controls based on recipient list size. Ensures every send passes spam, compliance, and brand voice gates before reaching any inbox.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"send-email","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubsend-notification
When your agent uses it
Send a team notification to Slack or Intercom by urgency tier, approval-gated. "ping the team that the campaign launched"
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
2,388 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore12,009 bytesSKILL.mdcore12,009 bytes
Read SKILL.md
# /digital-marketing-pro:send-notification
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Send internal team notifications via Slack or Intercom for campaign status updates, performance alerts, approval requests, or general team communication. This command is strictly for internal team messaging — not customer-facing outreach. It provides structured, urgency-aware notifications that keep marketing teams, stakeholders, and collaborators informed about campaign progress, metric thresholds, and pending approvals without requiring them to check dashboards or wait for scheduled reports. Supports tiered urgency with appropriate formatting and mention behavior to balance keeping teams informed without causing alert fatigue.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"send-notification","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubsend-report
When your agent uses it
Send a performance report to Slack, email or Sheets from connected analytics, approval-gated. "send the weekly report to Slack"
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
2,782 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore14,008 bytes
Read SKILL.md
# /digital-marketing-pro:send-report
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Generate a formatted performance report from connected analytics sources and deliver it via Slack, email, or Google Sheets. Supports weekly pulse, monthly review, QBR, and custom report types. Pulls live metrics from connected platforms, calculates KPIs against targets and previous periods, adds trend analysis with anomaly detection, generates actionable recommendations, then formats and delivers through the user's preferred channel with appropriate approval gates.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"send-report","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubsend-sms
When your agent uses it
Send SMS or WhatsApp marketing with consent and quiet-hours checks, approval-gated. "send an SMS blast"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
2,690 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore13,034 bytes
Read SKILL.md
# /digital-marketing-pro:send-sms
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Send an SMS or WhatsApp marketing message via Twilio or Brevo with mandatory compliance checks, consent verification, quiet hours enforcement, and delivery tracking. SMS and WhatsApp are high-impact, high-risk channels — messages reach personal devices instantly with near-100% open rates, which means compliance failures carry significant legal and reputational consequences. This command enforces every required safeguard before any message leaves the system: TCPA consent for US recipients, GDPR consent for EU, CASL for Canada, opt-out mechanism presence, quiet hours respect, and message length compliance. No message is sent without passing all gates and receiving explicit user approval.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"send-sms","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubseo-audit
When your agent uses it
Run a site-wide SEO audit into a ranked PLAN.md: technical, content, links, local. A single page → page-seo-analysis. "why did our traffic drop"
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
2,441 tokensWhen the skill is activated
Reference documents
1,872 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- How you'll know it worked
- Output
- Numbered output convention
- Quality scorecard
- Chain handoffs
- Tips & caveats
- Agents Used
Scripts executed separately
../../scripts/link-profile-analyzer.py../../scripts/recommendation-tracker.py
Files
../../scripts/link-profile-analyzer.pyruns18,273 bytes../../scripts/recommendation-tracker.pyruns6,567 bytesSKILL.mdcore10,611 bytesSKILL.mdcore10,611 bytesSKILL.mdcore10,611 bytesSKILL.mdcore10,611 bytesdimension-checklists.mddoc8,584 bytesevals/evals.jsonasset2,013 bytes
Read SKILL.md
# /digital-marketing-pro:seo-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Perform a comprehensive SEO audit that evaluates a website across all major ranking dimensions. Produces a prioritized action plan with estimated impact and effort for each recommendation.
### Algorithm-update context (read before triaging volatility)
**Status as of 2026-10-04 (time-boxed — re-check after ~2026-12):** per the [Google Search Status Dashboard](https://status.search.google.com/summary), the most recent **core** update began **21 May 2026** (completed after ~12 days). Since then Google has run only **spam** updates: the **August 2026 spam update** (18–21 Aug) and the **September 2026 spam update** (started 24 Sep; not yet marked complete on 2026-10-04). **There was no September 2026 core update** — several SEO blogs reported one; the dashboard lists none. Attribute only to updates the dashboard lists. Separately, Google's **site reputation abuse** policy has split at the EEA border since 30 Aug 2026: outside the EEA a manual action demotes the affected section; inside the EEA the section is separated and ranks on its own instead ([Search Central](https://developers.google.com/search/blog/2026/08/update-site-reputation-policy)) — word audit findings on third-party/"parasite" sections per region.
When an audit runs inside a listed update's rollout window (or the 4 weeks after) and the brand shows ranking volatility:
View the complete source on GitHubseo-drift
When your agent uses it
Compare two SEO exports (Search Console, two dates): gainers, losers, drift classes. "what moved after the core update"
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
2,735 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Context efficiency
- When to Use
- Brand context (auto-applied)
- Inputs
- Process (10 steps, numbered-file output)
- Output format
- Quality scorecard (the four gates)
- Classification rules
- Chain handoffs
- Tips & caveats
- Agents used
- See also
Scripts executed separately
../../scripts/seo_drift.py
Files
../../scripts/seo_drift.pyruns14,596 bytesSKILL.mdcore10,989 bytesSKILL.mdcore10,989 bytesSKILL.mdcore10,989 bytesSKILL.mdcore10,989 bytes
Read SKILL.md
# /digital-marketing-pro:seo-drift
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Take two snapshots of SEO performance data — separated by weeks, a Core Update, a content refresh, or an algorithm change — and produce a structured drift report: top gainers, top losers, classifications (growth / decline / reshuffle / stable / new / lost), and diagnostic patterns. Works with classic GSC, the new GSC AI Performance Report, rank-tracker exports, and `aeo-audit` probe results.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List `${CLAUDE_PLUGIN_DATA}/<brand>/` before opening files. On re-invocation mid-session, skip files already in context.
## When to Use
View the complete source on GitHubseo-implement
When your agent uses it
Implement approved SEO fixes on a connected CMS, approval-gated. "push the audit fixes live"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
1,793 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Execution gate (MANDATORY — cannot be skipped)
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/approval-manager.py
Files
../../scripts/approval-manager.pyruns19,439 bytesSKILL.mdcore8,442 bytesSKILL.mdcore8,442 bytes
Read SKILL.md
# /digital-marketing-pro:seo-implement
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Execute SEO implementation changes on connected CMS platforms. Goes beyond analysis to actually update meta tags, deploy JSON-LD schema markup, manage canonical URLs, create 301/302 redirects, and request indexing — all via WordPress or Webflow MCP connections. This command bridges the gap between SEO recommendations and live deployment, ensuring that audit findings and optimization plans translate into real page-level changes with full audit trails and rollback capability.
## Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — the before/after diff of every meta / schema / canonical / redirect change, plus scope and compliance — as an **Execution Summary** before touching any live page.
2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run.
3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run.
4. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"seo-implement","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.View the complete source on GitHubseo-plan
When your agent uses it
Build a 12-month organic SEO plan: four scored pillars, phased year roadmap. "build an SEO strategy"
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
3,547 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Dispatcher mode (Confirm-Then-Dispatch)
- Numbered output convention
- Input Required
- Process
- Industry Templates
- Output
- Agents Used
- Scripts Used
- Quality scorecard
- Chain handoffs
- Tips & caveats
- Context efficiency
Files
SKILL.mdcore15,126 bytesSKILL.mdcore15,126 bytes
Read SKILL.md
# /digital-marketing-pro:seo-plan
## Purpose
Generate a comprehensive SEO strategy with industry-specific templates, competitive analysis, content roadmap, and phased implementation plan. Covers both traditional SEO and AI search readiness.
## Dispatcher mode (Confirm-Then-Dispatch)
When invoked on a brand that already has recent specialist outputs in `${CLAUDE_PLUGIN_DATA}/{brand}/seo/`, this skill operates as an **orchestrator** — it reads those outputs as inputs, scores the brand across four pillars, and uses the **weakest pillar to drive the lead theme** of the plan.
### Step D0 — detect fresh outputs (≤ 30 days)
Look under `${CLAUDE_PLUGIN_DATA}/{brand}/seo/` for the latest dated subfolder of each:
View the complete source on GitHubserp-tracker
When your agent uses it
Deprecated; use rank-monitor --features. "track SERP features"
What it loads into context
Frontmatter
23 tokensAlways available to the agent
SKILL.md
389 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What to run instead
- Notes on what changed
Files
SKILL.mdcore1,739 bytesSKILL.mdcore1,739 bytes
Read SKILL.md
# /digital-marketing-pro:serp-tracker (deprecated → rank-monitor)
**This skill has been merged into `/digital-marketing-pro:rank-monitor`.** SERP-feature tracking is now the `--features` mode of that single skill, so ranking positions and SERP features are captured in one run against one config.
## What to run instead
```
/digital-marketing-pro:rank-monitor --features
```
That mode tracks the same features this skill used to — AI Overviews, Featured Snippets, People Also Ask, Knowledge Panels, Local Pack, Image Pack, Video Carousel, Shopping, Sitelinks — plus feature ownership vs. competitors, and the query-by-feature matrix.
## Notes on what changed
View the complete source on GitHubshare-of-voice
When your agent uses it
Calculate share of voice by script vs competitors in search, social and AI. "what's our share of voice"
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
2,835 tokensWhen the skill is activated
Reference documents
988 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/competitor-tracker.py../../scripts/geo-tracker.py
Files
../../scripts/competitor-tracker.pyruns19,385 bytes../../scripts/geo-tracker.pyruns18,563 bytesSKILL.mdcore14,608 bytesSKILL.mdcore14,608 bytesSKILL.mdcore14,608 bytesx-twitter-source-evidence.mddoc4,543 bytes
Read SKILL.md
# /digital-marketing-pro:share-of-voice
> **Metrics:** mention rate, citation rate, share of model, share of AI voice, sentiment and the AI Visibility Score are defined, with formulas, in `skills/context-engine/ai-visibility-metrics.md`. Report every score with its formula and its sample size (n).
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Calculate and track share of voice across multiple competitive dimensions. Measure how visible the brand is relative to competitors across organic search (keyword rankings weighted by search volume), paid search (impression share and auction dynamics), social media (mention volume and sentiment-weighted presence), and AI engines (GEO visibility and citation rates). Share of voice is a leading indicator of market share — brands that consistently outperform competitors in visibility tend to gain market share over time, making SOV one of the most strategically important competitive metrics to track. This command provides a comprehensive competitive visibility picture by aggregating dimension-specific SOV scores into an overall competitive position assessment, with trend tracking to surface momentum shifts before they impact pipeline or revenue. Supports both point-in-time snapshots for current competitive standing and historical trend analysis when previous SOV measurements exist from prior runs.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubsignal-mine
When your agent uses it
Mine raw signals (news, threads, sales notes) into content angles. "turn this industry news into ideas"
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
818 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inputs
- Process
- Output structure
- Critical rules
Files
SKILL.mdcore3,457 bytesSKILL.mdcore3,457 bytes
Read SKILL.md
# /digital-marketing-pro:signal-mine
The intelligence layer between "interesting" and "ours to say". Raw input comes
from anywhere — a newsletter, a Reddit thread, three competitor posts, notes
from yesterday's sales calls. The output is only the angles this brand has
standing to make, each mapped to a pillar, with everything else explicitly
dropped.
The mapping is the value. Any model can turn news into generic content ideas;
the discipline is refusing the ideas that do not serve this brand's authority.
## Inputs
- **The dump** — pasted material, in any shape. More is fine; this skill's jobView the complete source on GitHubsimulate
When your agent uses it
Simulate scenarios by Monte Carlo: P10-P90 revenue, odds of target. Quick estimate → what-if. "simulate next quarter's revenue"
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
1,490 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,946 bytes
Read SKILL.md
# /digital-marketing-pro:simulate
## Purpose
Run Monte Carlo simulation of marketing scenarios to predict revenue outcomes with probability distributions. Test channel mix changes, budget reallocations, new channel launches, and spending adjustments before committing real budget. This command models uncertainty explicitly — instead of single-point forecasts that hide risk, it generates thousands of simulated outcomes per scenario to show the full range of what could happen, with calibrated confidence intervals. Use it when the stakes are high enough that "expected ROI" alone isn't sufficient and you need to understand downside risk, upside potential, and the probability of hitting specific revenue targets.
## Input Required
The user must provide (or will be prompted for):
- **Scenarios to simulate**: One or more marketing scenarios to model — each defined by a set of channel budgets and assumptions. A scenario might be "shift 30% of paid search budget to TikTok" or "launch YouTube Ads at $15K/month while maintaining current spend" or "cut display by 50% and redistribute to email and SEO." Each scenario must include channel-level budget allocations and can optionally include custom ROI assumptions per channel
- **Channel parameters per scenario**: For each channel in each scenario: monthly budget allocation, expected ROI with mean and standard deviation (e.g., "3.2x +/- 0.8x" for a channel with historical variance), and saturation point if known (the spend level beyond which returns diminish sharply). If the user doesn't provide standard deviations, estimate from historical brand data or industry benchmarks
- **Projection period**: Number of months to simulate forward — typically 3, 6, or 12 months. Longer projections carry wider confidence intervals due to compounding uncertainty
- **Revenue target (optional)**: A specific revenue figure the user wants to evaluate probability of achieving — e.g., "What's the probability we hit $2M in Q3?" The simulation will calculate the exact probability of reaching this target per scenarioView the complete source on GitHubsitemap-manager
When your agent uses it
Audit or generate XML sitemaps: limits, lastmod, status codes, robots conflicts. "audit our sitemap"
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
1,216 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Modes
- Industry Templates
- Sitemap Protocol Reference
- Output
- Agents Used
- Scripts Used
Files
SKILL.mdcore4,936 bytes
Read SKILL.md
# /digital-marketing-pro:sitemap-manager
## Purpose
Analyze existing XML sitemaps for issues and opportunities, or generate new sitemaps with industry-specific templates and best practices.
## Modes
### Mode 1: Analyze Existing Sitemap (`/digital-marketing-pro:sitemap-manager [URL]`)
Provide a sitemap URL (e.g., `https://example.com/sitemap.xml`) to audit:
1. **Fetch and parse**: Download sitemap XML, detect sitemap index vs single sitemap
2. **URL count**: Total URLs, URLs per sitemap file (flag if approaching 50K protocol limit)View the complete source on GitHubsocial-strategy
When your agent uses it
Build a social media strategy per platform: pillars, cadence, KPIs. "build our social media strategy"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
700 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore3,405 bytes
Read SKILL.md
# /digital-marketing-pro:social-strategy
## Purpose
Build a comprehensive, platform-specific social media strategy that defines content pillars, posting cadence, engagement playbook, community management approach, and growth tactics tailored to each platform's algorithm and audience behavior.
## Input Required
The user must provide (or will be prompted for):
- **Platforms**: Which social platforms to strategize for (Instagram, TikTok, LinkedIn, X, YouTube, Facebook, Pinterest, Threads)
- **Current state**: Existing follower counts, engagement rates, content performance (if available)
- **Goals**: Growth, engagement, traffic, leads, community building, thought leadership
- **Resources**: Team size, content creation capacity, tools in useView the complete source on GitHubsop-library
When your agent uses it
Manage the agency SOP library: templates, assignments, compliance. "create an SOP for blog publishing"
What it loads into context
Frontmatter
28 tokensAlways available to the agent
SKILL.md
1,732 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/execution-tracker.py../../scripts/execution-tracker.py
Files
../../scripts/execution-tracker.pyruns13,278 bytes../../scripts/execution-tracker.pyruns13,278 bytesSKILL.mdcore8,325 bytes
Read SKILL.md
# /digital-marketing-pro:sop-library
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Manage the agency's Standard Operating Procedure library. Create SOPs from templates, assign them to specific brands, track compliance against recent executions, and maintain version control. SOPs define mandatory steps for common marketing operations — ensuring consistency, quality, and accountability across all client engagements regardless of which team member is executing the work.
## Input Required
The user must provide (or will be prompted for):
- **Action**: One of: `create`, `list`, `assign`, `check-compliance`, `update`, or `view`
- **SOP category**: The operational area — content-production, paid-media, reporting, crm, seo, social-media, email-marketing, client-management, onboarding, or generalView the complete source on GitHubstatus
When your agent uses it
Show DMP status for the active brand: profile, engagement progress, recent insights. "what brand am I on"
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
2,225 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Context efficiency
- What it shows
- Subcommands and modes
- How the skill operates
- Examples
- Behaviour rules
- What this skill does NOT do
- Related skills + commands
- Related references
Scripts executed separately
../../scripts/dm-status.py
Files
../../scripts/dm-status.pyruns26,332 bytesSKILL.mdcore9,313 bytes
Read SKILL.md
# /digital-marketing-pro:status — Unified Status Snapshot
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill prints a complete status snapshot for the active Digital Marketing Pro brand: profile summary, all engagements with their current part and update age, recent insights, recent compliance violations, and Python dependency mode.
## Context efficiency
Heavy skill. **Grep before Read** any referenced file, then `Read` only matched ranges with `offset` + `limit`. List the brand's workspace at `~/.claude-marketing/brands/{slug}/` (or `$CLAUDE_PLUGIN_DATA/digital-marketing-pro/brands/{slug}/` when that env var is set) before opening files. On re-invocation mid-session, skip files already in context.
An earlier version ran a SessionStart hook that executed `setup.py` at every Claude Code session start to print a 15-line brand summary banner. That hook was removed because it fired globally across every project regardless of whether the user was doing marketing work. `/digital-marketing-pro:status` is the explicit on-demand replacement — a richer view, when you ask for it.
## What it shows
View the complete source on GitHubstory-mine
When your agent uses it
Mine a real story like a client win into 3-5 content angles with draft openings. "is there a post in this"
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
841 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inputs
- The angle taxonomy
- Output structure
- Critical rules
Files
SKILL.mdcore3,564 bytesSKILL.mdcore3,564 bytes
Read SKILL.md
# /digital-marketing-pro:story-mine
Lived experience is the one content source competitors cannot copy, and most of
it evaporates in Slack. This skill takes "here's what happened" and returns the
distinct publishable angles hiding inside it — because a real story rarely
contains one piece of content; it usually contains four.
## Inputs
- **The story** — told naturally, as the user would tell a colleague. Do not
demand structure; extracting the structure is this skill's job.
- **The brand profile** (`~/.claude-marketing/brands/{slug}/`) — voice,
audience, pillars, and compliance rules the angles must respect.
- `--client-safe` — anonymise before angling: no client names, no identifyingView the complete source on GitHubswitch-brand
When your agent uses it
Switch the active brand profile for agency work and confirm the new context. "change brand to Acme"
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
389 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Process
- If Brand Not Found
- Multi-Brand Comparison
Scripts executed separately
../../scripts/setup.py
Files
../../scripts/setup.pyruns25,740 bytesSKILL.mdcore1,579 bytesSKILL.mdcore1,579 bytesSKILL.mdcore1,579 bytes
Read SKILL.md
# Switch Brand
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use
- User says "switch to [brand name]" or "change brand to..."
- User wants to work on a different client/brand
- User asks to list available brands
## Process
### 1. List Available Brands
Run the setup script to show all configured brands:
```bashView the complete source on GitHubsync-memory
When your agent uses it
Sync session learnings to persistent memory incrementally, with a report. "save what we learned this session"
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
1,833 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/memory-manager.py../../scripts/memory-manager.py
Files
../../scripts/memory-manager.pyruns15,629 bytes../../scripts/memory-manager.pyruns15,629 bytesSKILL.mdcore8,960 bytesSKILL.mdcore8,960 bytes
Read SKILL.md
# /digital-marketing-pro:sync-memory
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Batch sync current session learnings, insights.json entries, and campaign history to the persistent memory layer. Ensures valuable knowledge from this session is preserved for future sessions without requiring the user to manually save each item via `/digital-marketing-pro:save-knowledge`. Syncs incrementally — only new items since the last sync checkpoint — so repeated syncs are fast, idempotent, and safe. Handles the full pipeline from diff detection through storage to checkpoint update, with detailed reporting on what was synced, skipped, or failed. Run this before ending a productive session to capture everything worth remembering.
## Input Required
The user must provide (or will be prompted for):
- **Sync scope**: What to sync — `all` (insights + campaigns + session learnings), `insights-only` (only insights.json entries — performance data, metric snapshots, and automated learnings), or `campaigns-only` (only campaign data, retrospective learnings, and strategy decisions). Default is `all`
- **Force full sync (optional)**: Set to `true` to ignore the last sync checkpoint and re-sync everything regardless of previous sync state. Useful after data corruption, vector DB migration, index rebuild, or when the local index and persistent storage may be out of alignment. Default is `false` (incremental sync from last checkpoint)View the complete source on GitHubteam-assign
When your agent uses it
Assign marketing tasks to team members by role fit and workload. "who should write the Q2 email sequence"
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
2,615 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/team-manager.py
Files
../../scripts/team-manager.pyruns17,938 bytesSKILL.mdcore12,926 bytes
Read SKILL.md
# /digital-marketing-pro:team-assign
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Assign marketing tasks to team members with intelligent matching based on role, channel expertise, regional alignment, and current capacity. Supports viewing team workload distributions, managing active assignments, and rebalancing when utilization is uneven. Ensures every task lands with the right person at the right time, preventing overload and skill mismatches across the team.
Handles three core operations: assigning new tasks with smart member matching, listing and filtering current assignments across the team, and generating workload dashboards that surface capacity risks before they become bottlenecks. For agencies managing multiple brands, provides cross-brand visibility into team utilization.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubtech-seo-audit
When your agent uses it
Audit technical SEO site-wide by script: crawl, indexation, Web Vitals. A single page → page-seo-analysis. "why isn't Google indexing my pages"
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
2,054 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Tips & caveats
- Agents Used
Scripts executed separately
../../scripts/tech-seo-auditor.py
Files
../../scripts/tech-seo-auditor.pyruns22,319 bytesSKILL.mdcore9,043 bytesSKILL.mdcore9,043 bytes
Read SKILL.md
# /digital-marketing-pro:tech-seo-audit
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Run a comprehensive technical SEO audit that covers the infrastructure and code-level factors that affect search engine crawling, indexation, and ranking. This audit focuses on the technical foundation rather than content or backlinks. Produces a prioritized report with specific fixes, expected impact, and implementation guidance.
### Technical SEO and algorithm updates
**Status as of 2026-10-04 (time-boxed — re-check after ~2026-12):** per the [Google Search Status Dashboard](https://status.search.google.com/summary), the most recent **core** update began **21 May 2026** (completed after ~12 days). Since then Google has run only **spam** updates: the **August 2026 spam update** (18–21 Aug) and the **September 2026 spam update** (started 24 Sep; not yet marked complete on 2026-10-04). **There was no September 2026 core update** — several SEO blogs reported one; the dashboard lists none. Attribute only to updates the dashboard lists. Separately, Google's **site reputation abuse** policy has split at the EEA border since 30 Aug 2026: outside the EEA a manual action demotes the affected section; inside the EEA the section is separated and ranks on its own instead ([Search Central](https://developers.google.com/search/blog/2026/08/update-site-reputation-policy)) — word audit findings on third-party/"parasite" sections per region.
Algorithm updates are quality/policy reweightings, not technical signal changes. When a brand asks about ranking volatility that coincides with a listed update:
View the complete source on GitHubtechnical-seo
When your agent uses it
Technical SEO fixes for devs: JS rendering (SSR, prerender), Web Vitals (LCP, INP), schema. "plan a site migration"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
4,880 tokensWhen the skill is activated
Reference documents
20,022 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Context efficiency
- Brand Context (Auto-Applied)
- Required Context
- Capabilities
- Process
- Reference Files
- Output Formats
- Edge Cases
- Related Skills
Scripts executed separately
../../scripts/campaign-tracker.py
Files
../../scripts/campaign-tracker.pyruns13,269 bytesSKILL.mdcore23,518 bytesSKILL.mdcore23,518 bytescore-web-vitals.mddoc18,071 bytescrawlability.mddoc17,708 bytesindexation.mddoc16,520 bytesinternational-seo.mddoc19,099 bytessite-architecture.mddoc16,239 bytes
Read SKILL.md
# Technical SEO
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## When to Use This Skill
Activate this module when the user's request involves any of the following:
- **Core Web Vitals**: Optimizing LCP, INP, or CLS scores; diagnosing page speed issues; interpreting CrUX data or PageSpeed Insights reports
- **Crawlability**: Robots.txt configuration, XML sitemap creation or auditing, crawl budget management, or Googlebot access issues
- **Site Architecture**: URL structure planning, information architecture, internal linking strategy, site depth optimization, or content siloing
- **Indexation**: Canonical tag implementation, noindex/nofollow directives, index bloat, duplicate content resolution, or Google Search Console index coverage issues
- **Redirects**: Redirect chain auditing, 301/302 strategy, redirect maps for site migrations, or HTTP-to-HTTPS migration
- **JavaScript SEO**: Client-side rendering issues, SSR vs CSR vs SSG evaluation, dynamic rendering, or JavaScript crawlability problemsView the complete source on GitHubtranslate-content
When your agent uses it
Translate marketing content using the brand glossary and do-not-translate terms, with quality scoring. "translate this into Japanese"
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
2,194 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/brand-voice-scorer.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py../../scripts/language-router.py
Files
../../scripts/brand-voice-scorer.pyruns21,099 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytes../../scripts/language-router.pyruns41,144 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytesSKILL.mdcore11,060 bytes
Read SKILL.md
# /digital-marketing-pro:translate-content
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Translate marketing content with capability-first service routing and quality assurance. For each target language the router names what the language family needs from a translation service (native script-aware models for Indic targets, formality registers for European, segmentation and script mixing for CJK) and resolves a concrete service at run time — from the brand's recorded preference or from translation MCP servers the user has already connected. When nothing resolves, translation proceeds through the harness's own multilingual capability with mandatory quality scoring — no product is ever named from memory, and none is required. Brand voice, formatting, and key terminology are preserved throughout.
Beyond literal translation, this command analyzes content for elements that require transcreation rather than translation: idioms, wordplay, humor, emotional calls-to-action, and cultural references. When these are detected (or when the user explicitly requests transcreation), it produces multiple creative options with intent-preservation scoring, ensuring the emotional impact and marketing effectiveness carry across languages. Every translation is quality-scored and brand-voice-checked before delivery.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubvalidate-output
When your agent uses it
Validate content structure against a schema: sections, word counts. "scan for leftover placeholders"
What it loads into context
Frontmatter
26 tokensAlways available to the agent
SKILL.md
1,754 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/output-validator.py
Files
../../scripts/output-validator.pyruns24,278 bytesSKILL.mdcore8,457 bytes
Read SKILL.md
# /digital-marketing-pro:validate-output
## Purpose
Validate marketing content against expected structural schemas to ensure completeness, formatting consistency, and production-readiness. Checks required sections, word count ranges, markdown formatting compliance, placeholder text detection (unfilled template variables, lorem ipsum, TBD markers), and content-CTA consistency. Supports eight built-in schemas for common marketing content types plus custom schemas for brand-specific templates.
This command catches the structural and formatting issues that quality evaluation misses — the missing H2 that breaks SEO, the placeholder "[INSERT COMPANY NAME]" that slipped through, the blog post that is 300 words short of the brief requirement, or the email that has a CTA promising a demo but the body talks about a whitepaper. It is designed to be run as a final pre-publication check after content quality has been evaluated via /digital-marketing-pro:eval-content.
## Input Required
The user must provide (or will be prompted for):
- **Content to validate**: The text to check — provided inline, as a pasted block, or as a file path. Supports any marketing content format
- **Schema name or file** (optional): One of the eight built-in schemas — `blog_post`, `email`, `ad_copy`, `social_post`, `landing_page`, `press_release`, `content_brief`, `campaign_plan` — or a file path to a custom JSON schema. If omitted, the validator auto-detects the most likely schema based on content structure, length, and formatting patterns. Custom schemas follow the format defined in `skills/context-engine/eval-framework-guide.md`View the complete source on GitHubvalidate-profile
When your agent uses it
Validate the brand profile is production-ready: fields, compliance, connectors. "is the brand setup correct"
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
3,106 tokensWhen the skill is activated
Reference documents
11,324 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this skill exists
- Validation dimensions
- Process
- Behaviour rules
- Arguments
- Related skills + commands
Scripts executed separately
../../scripts/connector-status.py../../scripts/refresh_models.py../../scripts/resolve_model.py
Files
../../scripts/connector-status.pyruns17,623 bytes../../scripts/refresh_models.pyruns8,441 bytes../../scripts/resolve_model.pyruns19,058 bytes../brand-setup/SKILL.mddoc8,351 bytes../check/SKILL.mddoc21,430 bytes../import-guidelines/SKILL.mddoc6,624 bytes../status/SKILL.mddoc9,313 bytes../switch-brand/SKILL.mddoc1,579 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytesSKILL.mdcore12,792 bytes
Read SKILL.md
# /digital-marketing-pro:validate-profile — Brand Profile + Credential Health Check
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
This skill is the canonical "is this brand ready to ship work?" gate. It validates a brand profile is complete enough for production use AND that every credential/connector referenced by the profile is actually reachable — **without ever printing credential values**.
Use this skill:
- After **`/digital-marketing-pro:brand-setup`** (or `/digital-marketing-pro:client-onboarding`) to confirm the new profile is production-ready.
- After **rotating any API key** (Slack, HubSpot, Stripe, Ahrefs, GA4 service account, etc.) so connectivity is re-confirmed without exposing the new value in logs.
- After **importing brand guidelines** (`/digital-marketing-pro:import-guidelines`) to confirm the merge succeeded.
- As the **prerequisite check** before `/digital-marketing-pro:engagement`, `/digital-marketing-pro:campaign-plan`, or `/digital-marketing-pro:launch-campaign`.
## Why this skill existsView the complete source on GitHubverify-claims
When your agent uses it
Verify copy claims by script against evidence you give; without it, lists what needs proof. "can we back up these numbers"
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
1,957 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Scripts executed separately
../../scripts/claim-verifier.py
Files
../../scripts/claim-verifier.pyruns18,049 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytesSKILL.mdcore9,470 bytes
Read SKILL.md
# /digital-marketing-pro:verify-claims
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Cross-check marketing claims against user-provided evidence data. Extracts all verifiable claims from content — statistics, percentages, rankings, awards, certifications, named citations, performance metrics, customer counts, and time-bound assertions — then matches each against an evidence file and classifies it as verified, partially verified, unverified, or contradicted. This command is the dedicated deep-dive for claim integrity, while /digital-marketing-pro:eval-content includes claim verification as one dimension of its broader quality assessment.
Marketing content that cites specific numbers, awards, or results without verified backing is a brand risk. Contradicted claims erode trust if caught by customers, journalists, or regulators. This command ensures every factual assertion in your content is backed by real data, clearly sourced, and defensible under scrutiny.
## Input Required
The user must provide (or will be prompted for):
View the complete source on GitHubvideo-packaging
When your agent uses it
Package a video: title and thumbnail-text pairs that never repeat words, or critique them. "why is no one clicking this video"
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
1,219 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Discovery intent — tag every package
- Generate mode
- Critique mode
- Critical rules
- Pairs with
Files
SKILL.mdcore5,207 bytes
Read SKILL.md
# /digital-marketing-pro:video-packaging
Packaging decides whether a video gets watched; the content only decides
whether it deserved to be. On every video surface the viewer sees two elements
at once — the title and the thumbnail text — and the craft is that **they must
do different jobs**:
- **The title carries context and keywords** — what the video is, phrased the
way people search and the way the platform's systems read it.
- **The thumbnail text carries the tension** — the number, the contradiction,
the "wait, what?" that a human reacts to in half a second.
- **Overlap is wasted real estate.** A thumb word that already appears in the
title bought nothing with the scarcest pixels the brand owns.
View the complete source on GitHubvideo-script
When your agent uses it
Write a video script: hooks, timestamped dialogue, visual cues. Title/thumbnail → video-packaging. "write a YouTube script about X"
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
2,435 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore11,482 bytes
Read SKILL.md
# /digital-marketing-pro:video-script
## Purpose
Write a production-ready video marketing script with hook variants, timestamps, visual direction notes, CTA placement, and platform-specific formatting. Produces a complete script package ready for production with visual and audio columns, accessibility notes, and thumbnail concepts.
## Input Required
The user must provide (or will be prompted for):
- **Video type**: The format of the video — ad spot, explainer, testimonial, product demo, social short, educational tutorial, brand story, or event recap
- **Target platform**: Where the video will be published — YouTube, TikTok, Instagram Reels, LinkedIn, YouTube Shorts, Facebook, or multi-platform
- **Target length**: Desired duration — 15s, 30s, 60s, 90s, 2-3 min, 5-10 min, or long-form 10+ min
- **Key message or topic**: The core idea, value proposition, or subject matter the video must communicateView the complete source on GitHubwebinar-plan
When your agent uses it
Plan a webinar end to end: run of show, registration copy, promotion, follow-up. "plan a webinar on X"
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
1,487 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore7,371 bytes
Read SKILL.md
# /digital-marketing-pro:webinar-plan
## Purpose
Plan a webinar or virtual event from concept to post-event follow-up, including content structure, promotion strategy, registration optimization, engagement tactics, and measurement framework. Produces a complete execution package that a team can implement without further strategic planning.
## Input Required
The user must provide (or will be prompted for):
- **Topic/theme**: Subject matter and angle for the webinar — what specific problem or opportunity will be addressed
- **Target audience**: Who should attend — role, seniority, industry, company size, experience level, and pain points
- **Objectives**: Primary goal — lead generation, education, product demo, thought leadership, customer retention, or partner enablement
- **Preferred platform**: Webinar tool in use or under consideration (Zoom, Teams, Webex, GoToWebinar, Livestorm, StreamYard, etc.)View the complete source on GitHubwhat-if
When your agent uses it
Run a quick what-if on 2-4 budget scenarios with revenue and ROI estimates. "compare two budget splits"
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
1,197 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Input Required
- Process
- Output
- Agents Used
Files
SKILL.mdcore6,128 bytes
Read SKILL.md
# /digital-marketing-pro:what-if
## Purpose
Quick scenario comparison tool. Test 2-4 marketing scenarios against each other — different budget allocations, channel mixes, or strategic approaches — and see projected outcomes side-by-side. This is the lighter, faster alternative to full Monte Carlo simulation (`/digital-marketing-pro:simulate`). Where simulate runs thousands of iterations with full probability distributions, what-if uses point estimates with simple variance bands to give directional answers in minutes. Use it for rapid decision-making when you need a quick read on "should we do A or B?" without the statistical depth of a full simulation — team meetings, Slack discussions, quick planning calls, or narrowing down options before running a deeper analysis.
> **Simulated output — not a forecast.** what-if projections are directional point-estimates produced by `revenue-simulator.py` from your stated assumptions and historical benchmarks, not measured predictions. Treat every scenario number as a planning aid: validate the ROI assumptions against your own data before committing budget. All example dollar figures in this skill are SYNTHETIC (illustrative only — never reuse these numbers).
## Input Required
The user must provide (or will be prompted for):
- **Scenarios to compare**: 2-4 named scenarios, each with channel-level budget allocations and expected ROI per channel. Examples: "Scenario A: Heavy paid — $50K Google Ads, $30K Meta, $10K email" vs "Scenario B: Content-led — $20K Google Ads, $15K Meta, $40K content, $15K SEO." Each scenario needs a descriptive name and channel budget breakdown. If the user provides only high-level descriptions ("more on paid, less on organic"), ask for specific dollar allocations or percentage splits
- **Current baseline**: The existing budget allocation and recent performance as the reference point for comparison — what the brand is doing right now so each scenario shows a clear delta. If not provided, pull from brand context historical dataView the complete source on GitHubyearly-planner
When your agent uses it
Produce the Part 8 yearly planner: quarterly themes and monthly initiatives. "plan the whole year month by month"
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
1,851 tokensWhen the skill is activated
Reference documents
10,079 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Pre-conditions
- Structure (8 sections)
- Production process
- Quality discipline
- After production
- Examples
- Related skills
- Related references
Files
../context-engine/fixed-vs-variable-budget.mddoc6,940 bytes../context-engine/growth-plan-template.mddoc9,769 bytes../context-engine/india-market-context.mddoc14,403 bytes../context-engine/reporting-cadence.mddoc8,746 bytes../context-engine/yearly-planner-template.mddoc6,275 bytesSKILL.mdcore7,903 bytes
Read SKILL.md
# /digital-marketing-pro:yearly-planner — Part 8 Operational Companion
The Yearly Planner complements the Growth Plan with a 12-month operational calendar that ties strategy to date-by-date execution. If the Growth Plan answers *"How will we grow this business?"*, the Yearly Planner answers *"What will we do, week by week, month by month?"*
**Specification:** [yearly-planner-template.md](../context-engine/yearly-planner-template.md) — the canonical structure.
## Pre-conditions
The Yearly Planner is produced **after** the Growth Plan. It operationalises the Growth Plan's strategic decisions.
Before producing, verify:
1. **Growth Plan completed** at `part-08-growth-plan/growth-plan.md`
2. **Part 7 preparation documents available** (campaign architecture, content pillars, KPI tree)View the complete source on GitHubSkills included
- ab-test-plan
- ad-creative
- add-integration
- aeo-audit
- aeo-geo
- agency-dashboard
- agent-readiness-audit
- analytics-insights
- anomaly-scan
- attribution-model
- attribution-report
- audience-intelligence
- audience-profile
- autopilot-status
- backlink-gap
- brand-setup
- budget-optimizer
- budget-tracker
- c2pa-metadata
- campaign-audit
- campaign-orchestrator
- campaign-plan
- campaign-status
- case-study-plan
- check
- churn-risk
- client-onboarding
- client-proposal
- client-report
- client-validation-document
- cohort-analysis
- competitor-alerts
- competitor-analysis
- competitor-monitor
- competitor-pages
- connect
- content-brief
- content-calendar
- content-decay-scan
- content-engine
- content-repurpose
- context-engine
- continuous-improvement-loop
- counter-narrative
- cowork-setup
- creative-health
- creative-testing-framework
- credential-switch
- crisis-response
- crm-sync
- cro
- dark-funnel
- data-export
- data-import
- digital-pr
- email-sequence
- emerging-channels
- engagement-workflow
- entity-audit
- eval-config
- eval-content
- eval-suite
- exec-summary
- executive-dashboard
- focus-group
- four-core-documents
- funnel-architect
- funnel-audit
- geo-monitor
- goal-filter
- growth-engineering
- growth-plan
- gsc-ai-performance
- help
- hreflang-check
- image-seo-audit
- import-guidelines
- import-sop
- import-template
- influencer-brief
- influencer-creator
- integrations
- intelligence-report
- journey-design
- keyword-cluster
- keyword-research
- landing-page-audit
- language-audit
- language-config
- launch-ad-campaign
- launch-campaign
- launch-plan
- lead-import
- lead-magnet-ideas
- learn
- live-dashboard
- local-seo
- local-seo-audit
- localize-campaign
- loop-detect
- market-weather
- marketing-automation
- martech-audit
- media-plan
- message-test
- multilingual-score
- narrative-landscape
- narrative-tracker
- page-seo-analysis
- paid-advertising
- pdf-report
- performance-check
- performance-report
- pipeline-update
- pr-pitch
- pricing-test
- programmatic-seo
- prompt-test
- publish-blog
- qbr-plan
- quality-report
- rank-monitor
- recall
- redirect-manager
- region-config
- reputation-management
- retargeting-strategy
- review-response
- roi-calculator
- save-knowledge
- schedule-social
- search-knowledge
- segment-audience
- send-email-campaign
- send-notification
- send-report
- send-sms
- seo-audit
- seo-drift
- seo-implement
- seo-plan
- serp-tracker
- share-of-voice
- signal-mine
- simulate
- sitemap-manager
- social-strategy
- sop-library
- status
- story-mine
- switch-brand
- sync-memory
- team-assign
- tech-seo-audit
- technical-seo
- translate-content
- validate-output
- validate-profile
- verify-claims
- video-packaging
- video-script
- webinar-plan
- what-if
- yearly-planner
Repository facts
- License
- MIT
- Created
- Feb 11, 2026
- Last pushed
- Oct 29, 2026
- Forks
- 151
- Open issues
- 1
- Project activity
- Active
Rank over the last 12 weeks
Now #949 · best #684 · down 134 in 30 days
- #932 on Oct 31
- #933 on Nov 1
- #939 on Nov 2
- #946 from Nov 3 to Nov 5
- #944 on Nov 6
- #949 since Nov 7
71 earlier periods
- #682 on Aug 2
- #664 on Aug 8
- #673 on Aug 9
- #695 on Aug 10
- #705 on Aug 11
- #699 on Aug 12
- #694 on Aug 13
- #693 on Aug 14
- #668 on Aug 15
- #684 on Aug 16
- #695 on Aug 17
- #705 on Aug 18
- #687 on Aug 19
- #688 on Aug 20
- #690 on Aug 21
- #691 on Aug 23
- #719 on Aug 24
- #724 on Aug 25
- #710 on Aug 26
- #721 on Aug 27
- #743 on Aug 28
- #687 on Aug 29
- #690 on Aug 30
- #726 on Aug 31
- #741 on Sep 1
- #726 on Sep 2
- #725 on Sep 3
- #701 on Sep 4
- #714 on Sep 6
- #725 on Sep 7
- #732 on Sep 9
- #740 on Sep 10
- #719 on Sep 11
- #716 on Sep 12
- #738 on Sep 15
- #745 on Sep 16
- #750 on Sep 17
- #732 on Sep 18
- #706 on Sep 19
- #741 on Sep 21
- #765 on Sep 22
- #727 on Sep 24
- #709 on Sep 25
- #734 on Sep 27
- #754 on Sep 28
- #784 on Sep 29
- #768 on Sep 30
- #737 on Oct 2
- #719 on Oct 3
- #746 on Oct 4
- #754 on Oct 5
- #759 on Oct 6
- #769 on Oct 7
- #815 on Oct 8
- #779 on Oct 9
- #763 from Oct 10 to Oct 11
- #778 from Oct 12 to Oct 13
- #786 on Oct 14
- #785 on Oct 16
- #758 on Oct 17
- #749 on Oct 18
- #797 on Oct 19
- #802 on Oct 20
- #811 on Oct 21
- #792 on Oct 22
- #795 on Oct 23
- #760 on Oct 24
- #914 on Oct 25
- #928 on Oct 28
- #929 on Oct 29
- #930 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 397 notes
.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ab-test-plan/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/plugin.json:1Plugin-wide analysis incomplete; see repository notes.claude-plugin/plugin.json:1Plugin-wide analysis incomplete; see repository notesskills/aeo-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/aeo-geo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedscripts/execution-tracker.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedscripts/crawler-log-report.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-readiness-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-readiness-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-readiness-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 17 broad permissionsin 11 files: skills/validate-profile/SKILL.md:1 campaign-audit/SKILL.md:1 check/SKILL.md:1 and 8 more
- 15 dangerous shell commandsin 3 files: scripts/eval-runner.py:23 scripts/quality-tracker.py:155 check/SKILL.md:51
- 1,713 network referencesin 87 files: scripts/connector_resolver.py:82 scripts/agent-readiness-audit.py:38 scripts/approval-manager.py:22 and 84 more
- No hidden or obfuscated text
- No instruction overrides
- 254 executable scriptsin 74 files: scripts/campaign-tracker.py:1 scripts/language-router.py:1 scripts/approval-manager.py:1 and 71 more
- 295 references to secretsin 21 files: scripts/connector_resolver.py:268 scripts/model_router.py:148 context-engine/crm-integration-guide.md:239 and 18 more
- No requests to vote in Hot
Show all 2,294 signals by file
.claude-plugin/plugin.json
- Network accessline 6
"author": { "name": "Indranil Banerjee", "url": "https://github.com/indranilbanerjee" - Network accessline 7
"name": "Indranil Banerjee", "url": "https://github.com/indranilbanerjee" }, - Network accessline 8
"url": "https://github.com/indranilbanerjee" - Network accessline 9
}, "homepage": "https://github.com/indranilbanerjee/digital-marketing-pro", "repository": "https://github.com/indranilbanerjee/digital-marketing-pro.git", - Network accessline 10
"homepage": "https://github.com/indranilbanerjee/digital-marketing-pro", - Network accessline 11
"repository": "https://github.com/indranilbanerjee/digital-marketing-pro.git", - Network accessline 74
], "icon": "./assets/icon.png", "documentationUrl": "https://github.com/indranilbanerjee/digital-marketing-pro#readme", - Network accessline 75
"icon": "./assets/icon.png", "documentationUrl": "https://github.com/indranilbanerjee/digital-marketing-pro#readme", "supportUrl": "https://github.com/indranilbanerjee/digital-marketing-pro/issues", - Network accessline 76
"documentationUrl": "https://github.com/indranilbanerjee/digital-marketing-pro#readme", - Network accessline 77
"supportUrl": "https://github.com/indranilbanerjee/digital-marketing-pro/issues", - Network accessline 78
"privacyPolicyUrl": "https://github.com/indranilbanerjee/digital-marketing-pro/blob/main/PRIVACY.md", - Network accessline 79
"termsOfServiceUrl": "https://github.com/indranilbanerjee/digital-marketing-pro/blob/main/LICENSE"
scripts/ad-budget-pacer.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/agent-readiness-audit.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 38
Sources (all checked 2026-10-04): Google AI optimization guide https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 39
Google AI optimization guide https://developers.google.com/search/docs/fundamentals/ai-optimization-guide - Network accessline 40
OpenAI crawlers https://developers.openai.com/api/docs/bots - Network accessline 41
Anthropic crawlers https://support.claude.com/en/articles/8896518 - Network accessline 42
Perplexity crawlers https://docs.perplexity.ai/guides/bots - Network accessline 43
Google-Extended https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers - Network accessline 44
Google user-triggered fetchers https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers - Network accessline 45
(Google-Agent, Google-GeminiNotebook; checked 2026-10-27) Applebot-Extended https://support.apple.com/en-us/119829 RFC 9309 (robots.txt) https://www.rfc-editor.org/rfc/rfc9309 - Network accessline 46
Applebot-Extended https://support.apple.com/en-us/119829 - Network accessline 47
RFC 9309 (robots.txt) https://www.rfc-editor.org/rfc/rfc9309 - Network accessline 48
Merchant listing markup https://developers.google.com/search/docs/appearance/structured-data/merchant-listing - Network accessline 49
FAQ rich results https://developers.google.com/search/docs/appearance/structured-data/faqpage - Network accessline 50
Product data specification https://support.google.com/merchants/answer/7052112 - Network accessline 51
UCP checkout / native_commerce https://support.google.com/merchants/answer/16837055 - Network accessline 52
https://developers.google.com/merchant/ucp/guides/merchant-center - Network accessline 53
Conversational attributes https://support.google.com/merchants/answer/17085370 - Network accessline 54
Agentic-commerce feed https://developers.openai.com/commerce/specs/file-upload/products - Network accessline 55
WebMCP https://developer.chrome.com/docs/ai/webmcp - Network accessline 64
# Fetch robots.txt + pages live (opt-in) python scripts/agent-readiness-audit.py --site https://example.com --fetch \\ - Network accessline 65
python scripts/agent-readiness-audit.py --site https://example.com --fetch \ --page https://example.com/products/anvil - Network accessline 66
--page https://example.com/products/anvil - Network accessline 94
TOOL_VERSION = "1.0" CHECKED = "2026-10-04" USER_AGENT = "DMP-agent-readiness-audit/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)" - Network accessline 96
USER_AGENT = "DMP-agent-readiness-audit/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)" - Network accessline 103
[Credential-related source omitted] - Network accessline 104
[Credential-related source omitted] - Network accessline 105
"source": "https://developers.openai.com/api/docs/bots"}, - Network accessline 107
"purpose": "user-initiated visits from ChatGPT and Custom GPTs", "robots_note": "OpenAI: for user-initiated requests robots.txt rules may not apply", "source": "https://developers.openai.com/api/docs/bots"}, - Network accessline 108
[Credential-related source omitted] - Network accessline 109
"source": "https://developers.openai.com/api/docs/bots"}, - Network accessline 110
[Credential-related source omitted] - Network accessline 111
[Credential-related source omitted] - Network accessline 112
"source": "https://developers.openai.com/api/docs/bots"}, - Network accessline 113
[Credential-related source omitted] - Network accessline 114
[Credential-related source omitted] - Network accessline 115
"source": "https://developers.openai.com/api/docs/bots"}, - Network accessline 116
[Credential-related source omitted] - Network accessline 117
[Credential-related source omitted] - Network accessline 118
"source": "https://support.claude.com/en/articles/8896518"}, - Network accessline 119
[Credential-related source omitted] - Network accessline 120
[Credential-related source omitted] - Network accessline 121
"source": "https://support.claude.com/en/articles/8896518"}, - Network accessline 122
[Credential-related source omitted] - Network accessline 123
[Credential-related source omitted] - Network accessline 124
"source": "https://support.claude.com/en/articles/8896518"}, - Network accessline 125
[Credential-related source omitted] - Network accessline 126
[Credential-related source omitted] - Network accessline 127
"source": "https://docs.perplexity.ai/guides/bots"}, - Network accessline 129
"purpose": "visits pages to answer a Perplexity user's question", "robots_note": "Perplexity: this fetcher generally ignores robots.txt rules because a user requested the fetch", "source": "https://docs.perplexity.ai/guides/bots"} - Network accessline 130
[Credential-related source omitted] - Network accessline 131
"source": "https://docs.perplexity.ai/guides/bots"}, - Network accessline 133
"purpose": "agents on Google infrastructure that browse the web and act on a user's request", "robots_note": ("Google: user-triggered fetchers generally ignore robots.txt rules; Google is " "testing Web Bot Auth wi - Network accessline 134
"robots_note": ("Google: user-triggered fetchers generally ignore robots.txt rules; Google is " "testing Web Bot Auth with the https://agent.bot.goog identity"), "source": "https://developers.google.com/crawling/do - Network accessline 135
"testing Web Bot Auth with the https://agent.bot.goog identity"), - Network accessline 136
"source": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers"}, - Network accessline 139
"robots_note": ("Google: user-triggered fetchers generally ignore robots.txt rules. Replaces " "Google-NotebookLM (supported until August 2026)"), "source": "https://developers.google.com/crawling/docs/crawlers-fet - Network accessline 140
[Credential-related source omitted] - Network accessline 141
"source": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers"}, - Network accessline 143
"purpose": "control token for Gemini model training and grounding; no separate HTTP user agent", "robots_note": "Google: Google-Extended does not impact inclusion in Google Search nor is it a Search ranking signal", "source": "htt - Network accessline 144
[Credential-related source omitted] - Network accessline 145
"source": "https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers"}, - Network accessline 147
"purpose": "control token for use of Applebot-crawled content in Apple foundation-model training; does not crawl", "robots_note": "Apple: pages that disallow Applebot-Extended can still be included in search results", "source": "h - Network accessline 148
"robots_note": "Apple: pages that disallow Applebot-Extended can still be included in search results", "source": "https://support.apple.com/en-us/119829"}, ] - Network accessline 149
"source": "https://support.apple.com/en-us/119829"}, - Network accessline 159
"lists \"LLMS.txt files and other 'special' markup\" under \"Mythbusting " "generative AI search\" — \"Google Search itself doesn't use them.\" " "(https://developers.google.com/search/docs/fundamentals/ai- - Network accessline 160
"generative AI search\" — \"Google Search itself doesn't use them.\" " "(https://developers.google.com/search/docs/fundamentals/ai-optimization-guide, " "checked 2026-10-04)") - Network accessline 161
"(https://developers.google.com/search/docs/fundamentals/ai-optimization-guide, " - Network accessline 571
"status_note": ("EXPERIMENTAL — WebMCP is a Chrome origin trial (from Chrome 149) and " "\"under active discussion and subject to change\". Informational only; " "never affects the ver - Network accessline 572
"\"under active discussion and subject to change\". Informational only; " "never affects the verdict. https://developer.chrome.com/docs/ai/webmcp")} if not enabled: - Network accessline 573
"never affects the verdict. https://developer.chrome.com/docs/ai/webmcp")} - Network accessline 704
nc = row.get("native_commerce") - Network accessline 774
"account-level return policy and customer-support contact; consumer_notice where a " "legal disclaimer / safety warning / Prop 65 notice applies."), "sources": ["https://support.google.com/merchants/answer/16837055" - Network accessline 775
"legal disclaimer / safety warning / Prop 65 notice applies."), "sources": ["https://support.google.com/merchants/answer/16837055", "https://developers.google.com/merchant/ucp/guides/merchant-center"], - Network accessline 776
"sources": ["https://support.google.com/merchants/answer/16837055", - Network accessline 777
"https://developers.google.com/merchant/ucp/guides/merchant-center"], - Network accessline 790
"native_commerce": native, "conversational_attributes_coverage_pct": conv_cov, "sources": ["https://support.google.com/merchants/answer/7052112", - Network accessline 791
"conversational_attributes_coverage_pct": conv_cov, "sources": ["https://support.google.com/merchants/answer/7052112", "https://support.google.com/merchants/answer/17085370"]} - Network accessline 792
"sources": ["https://support.google.com/merchants/answer/7052112", - Network accessline 793
"https://support.google.com/merchants/answer/17085370"]} - Network accessline 820
"required_fields": required, "required_missing": missing, "eligible_search": search, "eligible_checkout": checkout, "findings": findings, "source": "https://developers.openai.com/commerce/specs/file-upload/products"} - Network accessline 822
"source": "https://developers.openai.com/commerce/specs/file-upload/products"} - Network accessline 873
def fetch(url: str, timeout: int = 15) -> tuple[int | None, str, str | None]: - Network accessline 879
if unsafe: return None, "", unsafe req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 880
return None, "", unsafe req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) try: - Network accessline 881
req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT}) - Network accessline 952
if robots_text is None: url = urljoin(base, "/robots.txt") code, body, err = fetch(url) - Network accessline 953
url = urljoin(base, "/robots.txt") code, body, err = fetch(url) fetch_log.append({"url": url, "status": code, "error": err}) - Network accessline 954
code, body, err = fetch(url) - Network accessline 968
robots_unreachable = why for url in [args.site] + list(args.page or []): code, body, err = fetch(url) - Network accessline 969
for url in [args.site] + list(args.page or []): code, body, err = fetch(url) fetch_log.append({"url": url, "status": code, "error": err}) - Network accessline 970
code, body, err = fetch(url) - Network accessline 1029
ap.add_argument("--fetch", action="store_true", help="Fetch robots.txt and pages over the network (off by default)") ap.add_argument("--page", action="append", help="Extra page URL to fetch (repeatable; needs --fetch - Network accessline 1030
help="Fetch robots.txt and pages over the network (off by default)") ap.add_argument("--page", action="append", help="Extra page URL to fetch (repeatable; needs --fetch)") ap.add_argument("--robots", help="Path to a robots.txt file" - Network accessline 1031
ap.add_argument("--page", action="append", help="Extra page URL to fetch (repeatable; needs --fetch)")
scripts/ai-tell-scan.py
scripts/ai-visibility-checker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Network accessline 120
AI_PLATFORMS = [ {"name": "ChatGPT", "url": "https://chat.openai.com", "note": "Test with the default model chatgpt.com shows when you sign in (it changes; read the model picker)"}, - Network accessline 121
{"name": "ChatGPT", "url": "https://chat.openai.com", "note": "Test with the default model chatgpt.com shows when you sign in (it changes; read the model picker)"}, - Network accessline 122
{"name": "Claude", "url": "https://claude.ai", "note": "Anthropic's AI assistant"}, - Network accessline 123
{"name": "Perplexity", "url": "https://perplexity.ai", "note": "AI search engine with citations"}, - Network accessline 124
{"name": "Google AI Overview", "url": "https://google.com", "note": "Look for AI-generated summaries in search results"}, - Network accessline 125
{"name": "Microsoft Copilot", "url": "https://copilot.microsoft.com", "note": "Microsoft's AI assistant"}, - Access to secretsline 203
[Credential-related source omitted] - Access to secretsline 207
[Credential-related source omitted] - Access to secretsline 247
[Credential-related source omitted] - Access to secretsline 251
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
scripts/approval-manager.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 22
python approval-manager.py --brand acme --action approve --id publish-blog-20260212-1 python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-man - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 23
python approval-manager.py --brand acme --action reject --id publish-blog-20260212-1 --data '{"reason": "Needs legal review"}' python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"executi - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}' - Network accessline 24
python approval-manager.py --brand acme --action mark-executed --id publish-blog-20260212-1 --data '{"execution_result": "success", "platform_response": "Published", "url": "https://example.com/post"}'
scripts/audience-simulator.py
scripts/authorship.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/backlink_gap.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/benchmark_book.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 43
python benchmark_book.py --action record --metric cpm --channel linkedin \ --segment b2b --low 30 --high 60 --source https://example.com/2026-benchmarks - Network accessline 44
--segment b2b --low 30 --high 60 --source https://example.com/2026-benchmarks
scripts/brand-voice-scorer.py
scripts/budget-optimizer.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable
scripts/build_skills_index.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/campaign-health-monitor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/campaign-tracker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3
scripts/checkpoint-manager.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/churn-predictor.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/claim-verifier.py
scripts/clv-calculator.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/competitor-tracker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 13
Usage: python competitor-tracker.py --brand acme --action save-baseline --competitor Rival --url https://rival.com --data '{"tagline": "We do X", "key_features": ["A","B"]}' - Network accessline 13
Usage: python competitor-tracker.py --brand acme --action save-baseline --competitor Rival --url https://rival.com --data '{"tagline": "We do X", "key_features": ["A","B"]}' - Network accessline 14
python competitor-tracker.py --brand acme --action save-baseline --competitor Rival --url https://rival.com --data '{"tagline": "We do X", "key_features": ["A","B"]}' - Network accessline 14
python competitor-tracker.py --brand acme --action save-baseline --competitor Rival --url https://rival.com --data '{"tagline": "We do X", "key_features": ["A","B"]}'
scripts/connector-status.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 179
[Credential-related source omitted] - Access to secretsline 179
[Credential-related source omitted] - Access to secretsline 179
[Credential-related source omitted] - Access to secretsline 179
[Credential-related source omitted]
scripts/connector_resolver.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 82
"as available until TBD; ad endpoints follow the Marketing API " "date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 83
"date, which comes before the Graph API one", "source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", "verified_on": "2026-10-27", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 84
"source": "https://developers.facebook.com/docs/marketing-api/marketing-api-changelog", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 91
"year and sunset 202510 on 15 Oct 2026; replace with the published " "date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 92
"date once LinkedIn lists one", "source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", "verified_on": "2026-10-27", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 93
"source": "https://learn.microsoft.com/en-us/linkedin/marketing/versioning", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 99
"sunset_basis": "sunset-dates page lists v26 (released 14 Oct 2026) as sunsetting " "in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 100
"in November 2027; month only, first day used", "source": "https://developers.google.com/google-ads/api/docs/sunset-dates", "verified_on": "2026-10-27", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 101
"source": "https://developers.google.com/google-ads/api/docs/sunset-dates", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 106
"sunset": None, "sunset_basis": "no sunset announced for v1.3 itself", "source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 108
"source": "https://business-api.tiktok.com/portal/docs/marketing-api/v1.3", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 125
"sunset": None, "sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 126
"sunset_basis": "X lists version 12 deprecation and end of life as TBD", "source": "https://docs.x.com/x-ads-api/fundamentals/versioning", "verified_on": "2026-10-27", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 127
"source": "https://docs.x.com/x-ads-api/fundamentals/versioning", - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 133
"sunset_basis": "Klaviyo policy: a revision is stable for 1 year, deprecated for " "the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_ve - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 134
"the next year (from 2027-04-15) and retired 2 years after release", "source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", "verified_on": "2026-10-27", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 135
"source": "https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy", - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 140
META_GRAPH_BASE = "https://graph.facebook.com/" + API_VERSIONS["meta"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 141
GOOGLE_ADS_BASE = "https://googleads.googleapis.com/" + API_VERSIONS["google_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 142
LINKEDIN_VERSION = API_VERSIONS["linkedin"]["version"] TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 143
TIKTOK_BASE = "https://business-api.tiktok.com/open_api/" + API_VERSIONS["tiktok"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Network accessline 144
X_ADS_BASE = "https://ads-api.twitter.com/" + API_VERSIONS["x_ads"]["version"] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Access to secretsline 268
[Credential-related source omitted] - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 272
"linkedin-marketing": { "method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 273
"method": "GET", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", "headers": { - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Network accessline 274
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns", - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 276
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 286
[Credential-related source omitted] - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 324
"klaviyo": { "method": "GET", "url": "https://a.klaviyo.com/api/flows/", - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 325
"method": "GET", "url": "https://a.klaviyo.com/api/flows/", "headers": { - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 326
"url": "https://a.klaviyo.com/api/flows/", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 335
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 336
[Credential-related source omitted] - Network accessline 336
[Credential-related source omitted] - Network accessline 336
[Credential-related source omitted] - Network accessline 336
[Credential-related source omitted] - Network accessline 336
[Credential-related source omitted] - Network accessline 336
[Credential-related source omitted] - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 337
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 342
"mailchimp": { "method": "GET", "url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 343
[Credential-related source omitted] - Network accessline 343
[Credential-related source omitted] - Network accessline 343
[Credential-related source omitted] - Network accessline 343
[Credential-related source omitted] - Network accessline 343
[Credential-related source omitted] - Network accessline 343
[Credential-related source omitted] - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Network accessline 344
"url": "https://{MAILCHIMP_DC}.api.mailchimp.com/3.0/automations", - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Access to secretsline 345
[Credential-related source omitted] - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 348
"brevo": { "method": "GET", "url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 349
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 349
[Credential-related source omitted] - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Network accessline 350
"url": "https://api.brevo.com/v3/emailCampaigns", - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Access to secretsline 351
[Credential-related source omitted] - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 355
"customer-io": { "method": "GET", "url": "https://api.customer.io/v1/campaigns", - Network accessline 356
[Credential-related source omitted] - Network accessline 356
[Credential-related source omitted] - Network accessline 356
[Credential-related source omitted] - Network accessline 356
[Credential-related source omitted] - Network accessline 356
[Credential-related source omitted] - Network accessline 356
[Credential-related source omitted] - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Network accessline 357
"url": "https://api.customer.io/v1/campaigns", - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Access to secretsline 358
[Credential-related source omitted] - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 361
"sendgrid": { "method": "GET", "url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 362
[Credential-related source omitted] - Network accessline 362
[Credential-related source omitted] - Network accessline 362
[Credential-related source omitted] - Network accessline 362
[Credential-related source omitted] - Network accessline 362
[Credential-related source omitted] - Network accessline 362
[Credential-related source omitted] - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Network accessline 363
"url": "https://api.sendgrid.com/v3/marketing/automations", - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Access to secretsline 393
[Credential-related source omitted] - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 398
"linkedin-publishing": { "method": "GET", "url": "https://api.linkedin.com/rest/posts", - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 399
"method": "GET", "url": "https://api.linkedin.com/rest/posts", "headers": { - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Network accessline 400
"url": "https://api.linkedin.com/rest/posts", - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 402
[Credential-related source omitted] - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 409
"twitter-x": { "method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 410
"method": "GET", "url": "https://api.twitter.com/2/users/{user_id}/tweets", "params": {"max_results": "100", "tweet.fields": "created_at,public_metrics"}, - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 411
"url": "https://api.twitter.com/2/users/{user_id}/tweets", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 416
"buffer": { "method": "GET", "url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 417
[Credential-related source omitted] - Network accessline 417
[Credential-related source omitted] - Network accessline 417
[Credential-related source omitted] - Network accessline 417
[Credential-related source omitted] - Network accessline 417
[Credential-related source omitted] - Network accessline 417
[Credential-related source omitted] - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Network accessline 418
"url": "https://api.bufferapp.com/1/profiles/{profile_id}/updates/sent.json", - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 419
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Access to secretsline 420
[Credential-related source omitted] - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 422
"hootsuite": { "method": "GET", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 423
[Credential-related source omitted] - Network accessline 423
[Credential-related source omitted] - Network accessline 423
[Credential-related source omitted] - Network accessline 423
[Credential-related source omitted] - Network accessline 423
[Credential-related source omitted] - Network accessline 423
[Credential-related source omitted] - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 424
"url": "https://platform.hootsuite.com/v1/messages", - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Access to secretsline 425
[Credential-related source omitted] - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 443
"google-analytics": { "method": "POST", "url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 444
[Credential-related source omitted] - Network accessline 444
[Credential-related source omitted] - Network accessline 444
[Credential-related source omitted] - Network accessline 444
[Credential-related source omitted] - Network accessline 444
[Credential-related source omitted] - Network accessline 444
[Credential-related source omitted] - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 445
"url": "https://analyticsadmin.googleapis.com/v1beta/properties/{GA_PROPERTY_ID}:dataStreams", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 449
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 450
[Credential-related source omitted] - Network accessline 450
[Credential-related source omitted] - Network accessline 450
[Credential-related source omitted] - Network accessline 450
[Credential-related source omitted] - Network accessline 450
[Credential-related source omitted] - Network accessline 450
[Credential-related source omitted] - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 451
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 474
"hubspot": { "method": "GET", "url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 475
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 475
[Credential-related source omitted] - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Network accessline 476
"url": "https://api.hubapi.com/automation/v4/flows", - Access to secretsline 484
[Credential-related source omitted] - Access to secretsline 484
[Credential-related source omitted] - Access to secretsline 484
[Credential-related source omitted] - Access to secretsline 484
[Credential-related source omitted] - Access to secretsline 484
[Credential-related source omitted] - Access to secretsline 484
[Credential-related source omitted] - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 488
"pipedrive": { "method": "GET", "url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 489
[Credential-related source omitted] - Network accessline 489
[Credential-related source omitted] - Network accessline 489
[Credential-related source omitted] - Network accessline 489
[Credential-related source omitted] - Network accessline 489
[Credential-related source omitted] - Network accessline 489
[Credential-related source omitted] - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 490
"url": "https://{PIPEDRIVE_COMPANY_DOMAIN}.pipedrive.com/api/v1/workflows", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 494
"zoho-crm": { "method": "GET", "url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 495
[Credential-related source omitted] - Network accessline 495
[Credential-related source omitted] - Network accessline 495
[Credential-related source omitted] - Network accessline 495
[Credential-related source omitted] - Network accessline 495
[Credential-related source omitted] - Network accessline 495
[Credential-related source omitted] - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Network accessline 496
"url": "https://www.zohoapis.com/crm/v5/settings/workflow_rules", - Access to secretsline 497
[Credential-related source omitted] - Access to secretsline 497
[Credential-related source omitted] - Access to secretsline 497
[Credential-related source omitted] - Access to secretsline 497
[Credential-related source omitted] - Access to secretsline 497
[Credential-related source omitted] - Access to secretsline 497
[Credential-related source omitted] - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 514
"hubspot": { "method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 515
"method": "POST", "url": "https://api.hubapi.com/marketing/v3/campaigns", "headers": { - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Network accessline 516
"url": "https://api.hubapi.com/marketing/v3/campaigns", - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Access to secretsline 536
[Credential-related source omitted] - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 565
"klaviyo": { "method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 566
"method": "PATCH", "url": f"https://a.klaviyo.com/api/flows/{automation_id}", "headers": { - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 567
"url": f"https://a.klaviyo.com/api/flows/{automation_id}", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 577
"hubspot": { "method": "PUT", "url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 578
[Credential-related source omitted] - Network accessline 578
[Credential-related source omitted] - Network accessline 578
[Credential-related source omitted] - Network accessline 578
[Credential-related source omitted] - Network accessline 578
[Credential-related source omitted] - Network accessline 578
[Credential-related source omitted] - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Network accessline 579
"url": f"https://api.hubapi.com/automation/v4/flows/{automation_id}/enroll", - Access to secretsline 602
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Access to secretsline 602
[Credential-related source omitted] - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 606
"linkedin-publishing": { "method": "POST", "url": "https://api.linkedin.com/rest/posts", - Network accessline 607
[Credential-related source omitted] - Network accessline 607
[Credential-related source omitted] - Network accessline 607
[Credential-related source omitted] - Network accessline 607
[Credential-related source omitted] - Network accessline 607
[Credential-related source omitted] - Network accessline 607
[Credential-related source omitted] - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Network accessline 608
"url": "https://api.linkedin.com/rest/posts", - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Access to secretsline 609
[Credential-related source omitted] - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 617
"twitter-x": { "method": "POST", "url": "https://api.twitter.com/2/tweets", - Network accessline 618
[Credential-related source omitted] - Network accessline 618
[Credential-related source omitted] - Network accessline 618
[Credential-related source omitted] - Network accessline 618
[Credential-related source omitted] - Network accessline 618
[Credential-related source omitted] - Network accessline 618
[Credential-related source omitted] - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 619
"url": "https://api.twitter.com/2/tweets", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 624
"buffer": { "method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 625
"method": "POST", "url": "https://api.bufferapp.com/1/updates/create.json", "body_template": {"profile_ids[]": "{profile_id}", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Network accessline 626
"url": "https://api.bufferapp.com/1/updates/create.json", - Access to secretsline 630
[Credential-related source omitted] - Access to secretsline 630
[Credential-related source omitted] - Access to secretsline 630
[Credential-related source omitted] - Access to secretsline 630
[Credential-related source omitted] - Access to secretsline 630
[Credential-related source omitted] - Access to secretsline 630
[Credential-related source omitted] - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 632
"hootsuite": { "method": "POST", "url": "https://platform.hootsuite.com/v1/messages", - Network accessline 633
[Credential-related source omitted] - Network accessline 633
[Credential-related source omitted] - Network accessline 633
[Credential-related source omitted] - Network accessline 633
[Credential-related source omitted] - Network accessline 633
[Credential-related source omitted] - Network accessline 633
[Credential-related source omitted] - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Network accessline 634
"url": "https://platform.hootsuite.com/v1/messages", - Access to secretsline 635
[Credential-related source omitted] - Access to secretsline 635
[Credential-related source omitted] - Access to secretsline 635
[Credential-related source omitted] - Access to secretsline 635
[Credential-related source omitted] - Access to secretsline 635
[Credential-related source omitted] - Access to secretsline 635
[Credential-related source omitted] - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 657
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 658
[Credential-related source omitted] - Network accessline 658
[Credential-related source omitted] - Network accessline 658
[Credential-related source omitted] - Network accessline 658
[Credential-related source omitted] - Network accessline 658
[Credential-related source omitted] - Network accessline 658
[Credential-related source omitted] - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 659
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 665
"sendgrid": { "method": "POST", "url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 666
[Credential-related source omitted] - Network accessline 666
[Credential-related source omitted] - Network accessline 666
[Credential-related source omitted] - Network accessline 666
[Credential-related source omitted] - Network accessline 666
[Credential-related source omitted] - Network accessline 666
[Credential-related source omitted] - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Network accessline 667
"url": "https://api.sendgrid.com/v3/mail/send", - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 696
"cision": { "method": "POST", "url": "https://api.cision.com/v1/press-releases", - Network accessline 697
[Credential-related source omitted] - Network accessline 697
[Credential-related source omitted] - Network accessline 697
[Credential-related source omitted] - Network accessline 697
[Credential-related source omitted] - Network accessline 697
[Credential-related source omitted] - Network accessline 697
[Credential-related source omitted] - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Network accessline 698
"url": "https://api.cision.com/v1/press-releases", - Access to secretsline 699
[Credential-related source omitted] - Access to secretsline 699
[Credential-related source omitted] - Access to secretsline 699
[Credential-related source omitted] - Access to secretsline 699
[Credential-related source omitted] - Access to secretsline 699
[Credential-related source omitted] - Access to secretsline 699
[Credential-related source omitted] - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 705
"muckrack": { "method": "POST", "url": "https://muckrack.com/api/v3/pitches", - Network accessline 706
[Credential-related source omitted] - Network accessline 706
[Credential-related source omitted] - Network accessline 706
[Credential-related source omitted] - Network accessline 706
[Credential-related source omitted] - Network accessline 706
[Credential-related source omitted] - Network accessline 706
[Credential-related source omitted] - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Network accessline 707
"url": "https://muckrack.com/api/v3/pitches", - Access to secretsline 708
[Credential-related source omitted] - Access to secretsline 708
[Credential-related source omitted] - Access to secretsline 708
[Credential-related source omitted] - Access to secretsline 708
[Credential-related source omitted] - Access to secretsline 708
[Credential-related source omitted] - Access to secretsline 708
[Credential-related source omitted] - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 712
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 713
[Credential-related source omitted] - Network accessline 713
[Credential-related source omitted] - Network accessline 713
[Credential-related source omitted] - Network accessline 713
[Credential-related source omitted] - Network accessline 713
[Credential-related source omitted] - Network accessline 713
[Credential-related source omitted] - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 714
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 735
"slack": { "method": "POST", "url": "https://slack.com/api/chat.postMessage", - Network accessline 736
[Credential-related source omitted] - Network accessline 736
[Credential-related source omitted] - Network accessline 736
[Credential-related source omitted] - Network accessline 736
[Credential-related source omitted] - Network accessline 736
[Credential-related source omitted] - Network accessline 736
[Credential-related source omitted] - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 737
"url": "https://slack.com/api/chat.postMessage", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 745
"gmail": { "method": "POST", "url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 746
[Credential-related source omitted] - Network accessline 746
[Credential-related source omitted] - Network accessline 746
[Credential-related source omitted] - Network accessline 746
[Credential-related source omitted] - Network accessline 746
[Credential-related source omitted] - Network accessline 746
[Credential-related source omitted] - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 747
"url": "https://gmail.googleapis.com/gmail/v1/users/me/messages/send", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 751
"google-calendar": { "method": "POST", "url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 752
[Credential-related source omitted] - Network accessline 752
[Credential-related source omitted] - Network accessline 752
[Credential-related source omitted] - Network accessline 752
[Credential-related source omitted] - Network accessline 752
[Credential-related source omitted] - Network accessline 752
[Credential-related source omitted] - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Network accessline 753
"url": "https://www.googleapis.com/calendar/v3/calendars/primary/events", - Access to secretsline 791
[Credential-related source omitted] - Access to secretsline 791
[Credential-related source omitted] - Access to secretsline 791
[Credential-related source omitted] - Access to secretsline 791
[Credential-related source omitted] - Access to secretsline 791
[Credential-related source omitted] - Access to secretsline 791
[Credential-related source omitted] - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 793
"linkedin-marketing": { "method": "POST", "url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 794
[Credential-related source omitted] - Network accessline 794
[Credential-related source omitted] - Network accessline 794
[Credential-related source omitted] - Network accessline 794
[Credential-related source omitted] - Network accessline 794
[Credential-related source omitted] - Network accessline 794
[Credential-related source omitted] - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Network accessline 795
"url": "https://api.linkedin.com/rest/adAccounts/{LINKEDIN_AD_ACCOUNT_ID}/adCampaigns/{campaign_id}", - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 796
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 845
"google-search-console": { "method": "POST", "url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 846
[Credential-related source omitted] - Network accessline 846
[Credential-related source omitted] - Network accessline 846
[Credential-related source omitted] - Network accessline 846
[Credential-related source omitted] - Network accessline 846
[Credential-related source omitted] - Network accessline 846
[Credential-related source omitted] - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 847
"url": "https://searchconsole.googleapis.com/v1/sites/{GSC_SITE_URL}/searchAnalytics/query", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 852
"ahrefs": { "method": "GET", "url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 853
[Credential-related source omitted] - Network accessline 853
[Credential-related source omitted] - Network accessline 853
[Credential-related source omitted] - Network accessline 853
[Credential-related source omitted] - Network accessline 853
[Credential-related source omitted] - Network accessline 853
[Credential-related source omitted] - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Network accessline 854
"url": "https://api.ahrefs.com/v3/site-explorer/metrics", - Access to secretsline 855
[Credential-related source omitted] - Access to secretsline 855
[Credential-related source omitted] - Access to secretsline 855
[Credential-related source omitted] - Access to secretsline 855
[Credential-related source omitted] - Access to secretsline 855
[Credential-related source omitted] - Access to secretsline 855
[Credential-related source omitted] - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 859
"similarweb": { "method": "GET", "url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 860
[Credential-related source omitted] - Network accessline 860
[Credential-related source omitted] - Network accessline 860
[Credential-related source omitted] - Network accessline 860
[Credential-related source omitted] - Network accessline 860
[Credential-related source omitted] - Network accessline 860
[Credential-related source omitted] - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Network accessline 861
"url": "https://api.similarweb.com/v1/website/{brand.domain}/total-traffic-and-engagement/visits", - Access to secretsline 862
[Credential-related source omitted] - Access to secretsline 862
[Credential-related source omitted] - Access to secretsline 862
[Credential-related source omitted] - Access to secretsline 862
[Credential-related source omitted] - Access to secretsline 862
[Credential-related source omitted] - Access to secretsline 862
[Credential-related source omitted] - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 866
"semrush": { "method": "GET", "url": "https://api.semrush.com/", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 867
"method": "GET", "url": "https://api.semrush.com/", "params": {"type": "domain_organic", "key": "{SEMRUSH_API_KEY}", - Network accessline 868
"url": "https://api.semrush.com/", - Network accessline 868
"url": "https://api.semrush.com/", - Network accessline 868
"url": "https://api.semrush.com/", - Network accessline 868
"url": "https://api.semrush.com/", - Network accessline 868
"url": "https://api.semrush.com/", - Network accessline 868
"url": "https://api.semrush.com/", - Access to secretsline 869
[Credential-related source omitted] - Access to secretsline 869
[Credential-related source omitted] - Access to secretsline 869
[Credential-related source omitted] - Access to secretsline 869
[Credential-related source omitted] - Access to secretsline 869
[Credential-related source omitted] - Access to secretsline 869
[Credential-related source omitted]
scripts/content-scorer.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/crawler-log-report.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Network accessline 55
TABLE = Path(__file__).resolve().parent / "crawler_ranges.json" USER_AGENT = "DMP-crawler-log-report/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)" - Network accessline 56
USER_AGENT = "DMP-crawler-log-report/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)" - Network accessline 121
req = urllib.request.Request(url, headers={"User-Agent": USER_AGENT, "Accept": "application/json"})
scripts/creative-fatigue-predictor.py
scripts/crm-sync.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 370
[Credential-related source omitted] - Access to secretsline 370
[Credential-related source omitted] - Access to secretsline 370
[Credential-related source omitted]
scripts/detect_surface.py
scripts/dm-status.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/drive-sync-state.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 41
# Brand profile sync python drive-sync-state.py --action profile-needs-upload --brand acme python drive-sync-state.py --action profile-mark-uploaded --brand acme --drive-file-id 1abcd... --drive-url https://... - Network accessline 42
python drive-sync-state.py --action profile-needs-upload --brand acme python drive-sync-state.py --action profile-mark-uploaded --brand acme --drive-file-id 1abcd... --drive-url https://... python drive-sync-state.py --action profil - Network accessline 43
python drive-sync-state.py --action profile-mark-uploaded --brand acme --drive-file-id 1abcd... --drive-url https://...
scripts/embed-c2pa.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 37
Network: every signature requests an RFC 3161 timestamp from http://timestamp.digicert.com (the asset itself is not sent; only a hash of - Network accessline 37
Network: every signature requests an RFC 3161 timestamp from http://timestamp.digicert.com (the asset itself is not sent; only a hash of - Network accessline 38
http://timestamp.digicert.com (the asset itself is not sent; only a hash of - Network accessline 38
http://timestamp.digicert.com (the asset itself is not sent; only a hash of - Network accessline 46
The resulting asset can be inspected at https://contentcredentials.org/verify - Network accessline 46
The resulting asset can be inspected at https://contentcredentials.org/verify - Network accessline 105
IPTC_SOURCE_TYPE = { "ai-generated-content": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia", - Network accessline 105
IPTC_SOURCE_TYPE = { "ai-generated-content": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia", - Network accessline 106
"ai-generated-content": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia", - Network accessline 106
"ai-generated-content": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia", - Network accessline 107
"ai-assisted-edits": "http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia", - Network accessline 107
"ai-assisted-edits": "http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia", - Network accessline 108
"ai-no-substantive-changes": "http://cv.iptc.org/newscodes/digitalsourcetype/humanEdits", - Network accessline 108
"ai-no-substantive-changes": "http://cv.iptc.org/newscodes/digitalsourcetype/humanEdits", - Network accessline 121
f"To install the version it was tested with, run:\n" f" {_common.install_command([package])}\n" "Docs: https://opensource.contentauthenticity.org/docs/python/", - Network accessline 121
f"To install the version it was tested with, run:\n" f" {_common.install_command([package])}\n" "Docs: https://opensource.contentauthenticity.org/docs/python/", - Network accessline 122
f" {_common.install_command([package])}\n" "Docs: https://opensource.contentauthenticity.org/docs/python/", file=sys.stderr, - Network accessline 122
f" {_common.install_command([package])}\n" "Docs: https://opensource.contentauthenticity.org/docs/python/", file=sys.stderr, - Network accessline 123
"Docs: https://opensource.contentauthenticity.org/docs/python/", - Network accessline 123
"Docs: https://opensource.contentauthenticity.org/docs/python/", - Network accessline 194
"label": "stds.schema-org.CreativeWork", "data": { "@context": "https://schema.org", - Network accessline 194
"label": "stds.schema-org.CreativeWork", "data": { "@context": "https://schema.org", - Network accessline 195
"data": { "@context": "https://schema.org", "@type": "CreativeWork", - Network accessline 195
"data": { "@context": "https://schema.org", "@type": "CreativeWork", - Network accessline 196
"@context": "https://schema.org", - Network accessline 196
"@context": "https://schema.org", - Network accessline 226
C2PA enforces certificate rules per the spec (https://c2pa.org/specifications/ - Network accessline 226
C2PA enforces certificate rules per the spec (https://c2pa.org/specifications/ - Network accessline 416
sign_cert=cert_bytes, private_key=key_bytes, ta_url=b"http://timestamp.digicert.com", - Network accessline 416
sign_cert=cert_bytes, private_key=key_bytes, ta_url=b"http://timestamp.digicert.com", - Network accessline 417
private_key=key_bytes, ta_url=b"http://timestamp.digicert.com", ) - Network accessline 417
private_key=key_bytes, ta_url=b"http://timestamp.digicert.com", ) - Network accessline 418
ta_url=b"http://timestamp.digicert.com", - Network accessline 418
ta_url=b"http://timestamp.digicert.com", - Network accessline 465
"manifest_embedded_and_verified": manifest_present, "using_dev_cert": using_dev_cert, "verify_url": "https://contentcredentials.org/verify", - Network accessline 465
"manifest_embedded_and_verified": manifest_present, "using_dev_cert": using_dev_cert, "verify_url": "https://contentcredentials.org/verify", - Network accessline 466
"using_dev_cert": using_dev_cert, "verify_url": "https://contentcredentials.org/verify", } - Network accessline 466
"using_dev_cert": using_dev_cert, "verify_url": "https://contentcredentials.org/verify", } - Network accessline 467
"verify_url": "https://contentcredentials.org/verify", - Network accessline 467
"verify_url": "https://contentcredentials.org/verify", - Network accessline 473
"Signed with self-signed dev cert (90-day validity). " "PRODUCTION USE REQUIRES a real signing certificate from a CAI-recognized authority. " "See https://opensource.contentauthenticity.org/docs/manifest/signing-mani - Network accessline 473
"Signed with self-signed dev cert (90-day validity). " "PRODUCTION USE REQUIRES a real signing certificate from a CAI-recognized authority. " "See https://opensource.contentauthenticity.org/docs/manifest/signing-mani - Network accessline 474
"PRODUCTION USE REQUIRES a real signing certificate from a CAI-recognized authority. " "See https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/" ) - Network accessline 474
"PRODUCTION USE REQUIRES a real signing certificate from a CAI-recognized authority. " "See https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/" ) - Network accessline 475
"See https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/" - Network accessline 475
"See https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/"
scripts/engagement-state.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
scripts/eval-config-manager.py
scripts/eval-runner.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Dangerous shell operationline 23
run-quick Quick eval (hallucination + content quality + readability) - Dangerous shell operationline 23
run-quick Quick eval (hallucination + content quality + readability) - Dangerous shell operationline 23
run-quick Quick eval (hallucination + content quality + readability) - Dangerous shell operationline 23
run-quick Quick eval (hallucination + content quality + readability) - Dangerous shell operationline 23
run-quick Quick eval (hallucination + content quality + readability) - Dangerous shell operationline 24
run-compliance Compliance-focused eval (hallucination + claims + brand voice + structure) - Dangerous shell operationline 24
run-compliance Compliance-focused eval (hallucination + claims + brand voice + structure) - Dangerous shell operationline 24
run-compliance Compliance-focused eval (hallucination + claims + brand voice + structure) - Dangerous shell operationline 24
run-compliance Compliance-focused eval (hallucination + claims + brand voice + structure) - Dangerous shell operationline 24
run-compliance Compliance-focused eval (hallucination + claims + brand voice + structure)
scripts/execution-tracker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 12
Usage: python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Publishe - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST - Network accessline 13
python execution-tracker.py --brand acme --action log-execution --data '{"platform": "wordpress", "action_type": "publish-blog", "content_id": "q1-recap", "result": "success", "url": "https://example.com/q1", "details": "Published via REST
scripts/geo-tracker.py
scripts/goldfish-review.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/growth-loop-modeler.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/gsc-ai-performance.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 22
# API path (placeholder until Google ships it) python gsc-ai-performance.py --brand acme --api --site https://acme.example.com - Network accessline 23
python gsc-ai-performance.py --brand acme --api --site https://acme.example.com - Network accessline 165
), "workaround": "Export CSV from Search Console UI; pass with --csv.", "ref": "https://developers.google.com/webmaster-tools/v1/searchanalytics/query", - Network accessline 167
"ref": "https://developers.google.com/webmaster-tools/v1/searchanalytics/query",
scripts/guidelines-manager.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted]
scripts/hallucination-detector.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 16
python hallucination-detector.py --action detect --text "Our product boosts ROI by 347%..." python hallucination-detector.py --action detect --file draft.md python hallucination-detector.py --action check-urls --text "Visit https:// - Network accessline 17
python hallucination-detector.py --action detect --file draft.md python hallucination-detector.py --action check-urls --text "Visit https://example.com/demo" python hallucination-detector.py --action check-stats --file campaign.txt - Network accessline 18
python hallucination-detector.py --action check-urls --text "Visit https://example.com/demo" - Network accessline 515
' python hallucination-detector.py --action detect --text "Our ROI increased 347%"\n' ' python hallucination-detector.py --action detect --file draft.md\n' ' python hallucination-detector.py --action check-urls -- - Network accessline 516
' python hallucination-detector.py --action detect --file draft.md\n' ' python hallucination-detector.py --action check-urls --text "Visit https://example.com"\n' ' python hallucination-detector.py --action check- - Network accessline 517
' python hallucination-detector.py --action check-urls --text "Visit https://example.com"\n'
scripts/intelligence-graph.py
scripts/journey-engine.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/keyword_cluster.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/language-router.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable
scripts/link-profile-analyzer.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 9
Usage: python link-profile-analyzer.py --links '[{"url":"https://example.com/page","anchor_text":"keyword","domain":"example.com","da":45,"follow":true}]' - Network accessline 10
python link-profile-analyzer.py --links '[{"url":"https://example.com/page","anchor_text":"keyword","domain":"example.com","da":45,"follow":true}]'
scripts/local-seo-checker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Network accessline 11
Usage: python local-seo-checker.py --nap '{"name":"Acme Inc","address":"123 Main Street, Austin, TX 78701","phone":"(512) 555-1234","website":"https://acme.com"}' --citations '[{"source":"Yelp","name":"Acme Inc.","address":"123 Main St, - Network accessline 12
python local-seo-checker.py --nap '{"name":"Acme Inc","address":"123 Main Street, Austin, TX 78701","phone":"(512) 555-1234","website":"https://acme.com"}' --citations '[{"source":"Yelp","name":"Acme Inc.","address":"123 Main St, Austin, TX - Network accessline 13
python local-seo-checker.py --gbp '{"business_name":"Acme Inc","primary_category":"Plumber","address":"123 Main Street","phone":"512-555-1234","website":"https://acme.com","hours":"Mon-Fri 9-5","description":"Full service plumbing...","phot
scripts/macro-signal-tracker.py
scripts/memory-manager.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted]
scripts/model_router.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 86
MAX_PAGES = 20 # pages left after this many: an error, never a short list OFFLINE_ENV = "MODEL_ROUTER_OFFLINE" ANTHROPIC_MODELS_URL = "https://api.anthropic.com/v1/models" - Network accessline 87
OFFLINE_ENV = "MODEL_ROUTER_OFFLINE" ANTHROPIC_MODELS_URL = "https://api.anthropic.com/v1/models" OPENAI_MODELS_URL = "https://api.openai.com/v1/models" - Network accessline 88
ANTHROPIC_MODELS_URL = "https://api.anthropic.com/v1/models" - Network accessline 89
OPENAI_MODELS_URL = "https://api.openai.com/v1/models" - Network accessline 90
GOOGLE_MODELS_URL = "https://generativelanguage.googleapis.com/v1beta/models" - Access to secretsline 148
[Credential-related source omitted] - Access to secretsline 153
[Credential-related source omitted] - Access to secretsline 160
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted] - Network accessline 185
opener = urlopen or urllib.request.urlopen - Network accessline 188
for _ in range(MAX_PAGES): full = url + (("&" if "?" in url else "?") + urllib.parse.urlencode({cursor: after}) if after else "") req = urllib.request.Request(full, method="GET") - Network accessline 189
full = url + (("&" if "?" in url else "?") + urllib.parse.urlencode({cursor: after}) if after else "") req = urllib.request.Request(full, method="GET") for name, value in headers.items(): - Network accessline 190
req = urllib.request.Request(full, method="GET") - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 211
[Credential-related source omitted] - Access to secretsline 218
[Credential-related source omitted] - Access to secretsline 221
[Credential-related source omitted] - Access to secretsline 240
[Credential-related source omitted] - Access to secretsline 243
[Credential-related source omitted] - Access to secretsline 293
[Credential-related source omitted] - Network accessline 295
"""Every model this key can see. The key travels in the x-goog-api-key header, never in the URL: Google's own curl examples put it there as ?key=, where proxies and server logs keep it.""" - Network accessline 296
URL: Google's own curl examples put it there as ?key=, where proxies and server logs keep it.""" - Access to secretsline 298
[Credential-related source omitted] - Access to secretsline 542
[Credential-related source omitted] - Access to secretsline 560
[Credential-related source omitted] - Access to secretsline 564
[Credential-related source omitted] - Access to secretsline 610
[Credential-related source omitted] - Access to secretsline 613
[Credential-related source omitted] - Access to secretsline 616
[Credential-related source omitted] - Access to secretsline 815
[Credential-related source omitted] - Access to secretsline 829
[Credential-related source omitted] - Access to secretsline 830
[Credential-related source omitted] - Access to secretsline 833
[Credential-related source omitted]
scripts/narrative-mapper.py
scripts/output-publisher.py
scripts/output-validator.py
scripts/paid_products.json
- Network accessline 3
"schema": "each row: platform, product, kind (what it does, in words that outlive the product name), status (read = the page at source_url was read on verified_on; reported = no vendor page could be read, and the row rests on the named seco - Network accessline 3
"schema": "each row: platform, product, kind (what it does, in words that outlive the product name), status (read = the page at source_url was read on verified_on; reported = no vendor page could be read, and the row rests on the named seco - Network accessline 4
"products": [ {"platform": "meta", "product": "Andromeda", "kind": "ad retrieval model: picks a few thousand candidate ads from tens of millions before ranking and the auction", "status": "read", "availability": "live", "since": "2024-1 - Network accessline 4
"products": [ {"platform": "meta", "product": "Andromeda", "kind": "ad retrieval model: picks a few thousand candidate ads from tens of millions before ranking and the auction", "status": "read", "availability": "live", "since": "2024-1 - Network accessline 5
{"platform": "meta", "product": "Andromeda", "kind": "ad retrieval model: picks a few thousand candidate ads from tens of millions before ranking and the auction", "status": "read", "availability": "live", "since": "2024-12-02", "source_url - Network accessline 5
{"platform": "meta", "product": "Andromeda", "kind": "ad retrieval model: picks a few thousand candidate ads from tens of millions before ranking and the auction", "status": "read", "availability": "live", "since": "2024-12-02", "source_url - Network accessline 6
{"platform": "meta", "product": "Opportunity score", "kind": "account recommendation score (0-100) in Ads Manager", "status": "reported", "availability": "live", "since": "2025-06-09", "source_url": "https://ppc.land/meta-launches-opportuni - Network accessline 6
{"platform": "meta", "product": "Opportunity score", "kind": "account recommendation score (0-100) in Ads Manager", "status": "reported", "availability": "live", "since": "2025-06-09", "source_url": "https://ppc.land/meta-launches-opportuni - Network accessline 7
{"platform": "google", "product": "Campaign total budgets", "kind": "flight budget: one total for a fixed start and end date instead of an average daily budget", "status": "read", "availability": "beta", "since": "2026-01-15", "source_url": - Network accessline 7
{"platform": "google", "product": "Campaign total budgets", "kind": "flight budget: one total for a fixed start and end date instead of an average daily budget", "status": "read", "availability": "beta", "since": "2026-01-15", "source_url": - Network accessline 8
{"platform": "google", "product": "AI Max for Shopping", "kind": "query-matched shopping: the AI Max search expansion applied to Shopping campaigns", "status": "read", "availability": "live", "since": null, "source_url": "https://blog.googl - Network accessline 8
{"platform": "google", "product": "AI Max for Shopping", "kind": "query-matched shopping: the AI Max search expansion applied to Shopping campaigns", "status": "read", "availability": "live", "since": null, "source_url": "https://blog.googl - Network accessline 9
{"platform": "google", "product": "AI Brief", "kind": "goal-and-guardrail brief that steers an automated campaign's audience reach", "status": "read", "availability": "announced", "since": null, "source_url": "https://blog.google/products/a - Network accessline 9
{"platform": "google", "product": "AI Brief", "kind": "goal-and-guardrail brief that steers an automated campaign's audience reach", "status": "read", "availability": "announced", "since": null, "source_url": "https://blog.google/products/a - Network accessline 10
{"platform": "google", "product": "Demand Gen monthly drops", "kind": "monthly feature releases for Demand Gen campaigns", "status": "read", "availability": "live", "since": null, "source_url": "https://blog.google/products/ads-commerce/goo - Network accessline 10
{"platform": "google", "product": "Demand Gen monthly drops", "kind": "monthly feature releases for Demand Gen campaigns", "status": "read", "availability": "live", "since": null, "source_url": "https://blog.google/products/ads-commerce/goo - Network accessline 11
{"platform": "tiktok", "product": "GMV Max", "kind": "automated shop-sales campaign optimising gross merchandise value", "status": "reported", "availability": "live", "since": "2025-07-01", "source_url": "https://relevantaudience.com/tiktok - Network accessline 11
{"platform": "tiktok", "product": "GMV Max", "kind": "automated shop-sales campaign optimising gross merchandise value", "status": "reported", "availability": "live", "since": "2025-07-01", "source_url": "https://relevantaudience.com/tiktok - Network accessline 12
{"platform": "tiktok", "product": "Buy Direct and Shopping Assistant", "kind": "agentic checkout: buying inside TikTok on a partner merchant's catalogue", "status": "reported", "availability": "announced", "since": null, "source_url": "http - Network accessline 12
{"platform": "tiktok", "product": "Buy Direct and Shopping Assistant", "kind": "agentic checkout: buying inside TikTok on a partner merchant's catalogue", "status": "reported", "availability": "announced", "since": null, "source_url": "http - Network accessline 13
{"platform": "tiktok", "product": "Agentic Leads", "kind": "chat lead generation in TikTok messages and on the advertiser's own lead forms", "status": "reported", "availability": "announced", "since": null, "source_url": "https://marketingd - Network accessline 13
{"platform": "tiktok", "product": "Agentic Leads", "kind": "chat lead generation in TikTok messages and on the advertiser's own lead forms", "status": "reported", "availability": "announced", "since": null, "source_url": "https://marketingd - Network accessline 14
{"platform": "tiktok", "product": "Smart+ search campaign", "kind": "automated search campaign", "status": "reported", "availability": "announced", "since": null, "source_url": "https://searchengineland.com/tiktok-new-advertising-tools-4474 - Network accessline 14
{"platform": "tiktok", "product": "Smart+ search campaign", "kind": "automated search campaign", "status": "reported", "availability": "announced", "since": null, "source_url": "https://searchengineland.com/tiktok-new-advertising-tools-4474 - Network accessline 15
{"platform": "tiktok", "product": "TikTok Ad Network in the US", "kind": "third-party app inventory for TikTok campaigns", "status": "reported", "availability": "live", "since": "2026-10-05", "source_url": "https://marketingdive.com/news/ti - Network accessline 15
{"platform": "tiktok", "product": "TikTok Ad Network in the US", "kind": "third-party app inventory for TikTok campaigns", "status": "reported", "availability": "live", "since": "2026-10-05", "source_url": "https://marketingdive.com/news/ti - Network accessline 16
{"platform": "linkedin", "product": "Qualified Leads Optimization", "kind": "lead-ad bidding toward leads the CRM later qualifies", "status": "reported", "availability": "live", "since": null, "source_url": "https://www.destinationcrm.com/A - Network accessline 16
{"platform": "linkedin", "product": "Qualified Leads Optimization", "kind": "lead-ad bidding toward leads the CRM later qualifies", "status": "reported", "availability": "live", "since": null, "source_url": "https://www.destinationcrm.com/A - Network accessline 17
{"platform": "pinterest", "product": "Performance+ campaigns", "kind": "automated campaign suite: bidding, creative and audience automation in one campaign type", "status": "read", "availability": "live", "since": null, "source_url": "https - Network accessline 17
{"platform": "pinterest", "product": "Performance+ campaigns", "kind": "automated campaign suite: bidding, creative and audience automation in one campaign type", "status": "read", "availability": "live", "since": null, "source_url": "https - Network accessline 18
{"platform": "x", "product": "Ad text: no hashtags", "kind": "ad text rule", "status": "reported", "availability": "live", "since": "2025-06-27", "source_url": "https://www.socialmediatoday.com/news/x-formerly-twitter-outlines-updated-ads-n - Network accessline 18
{"platform": "x", "product": "Ad text: no hashtags", "kind": "ad text rule", "status": "reported", "availability": "live", "since": "2025-06-27", "source_url": "https://www.socialmediatoday.com/news/x-formerly-twitter-outlines-updated-ads-n - Network accessline 19
{"platform": "x", "product": "Ad text: one emoji, no URLs", "kind": "ad quality rule", "status": "reported", "availability": "live", "since": null, "source_url": "https://advertisinglaw.fkks.com/post/102kzfw/x-releases-new-advertising-quali - Network accessline 19
{"platform": "x", "product": "Ad text: one emoji, no URLs", "kind": "ad quality rule", "status": "reported", "availability": "live", "since": null, "source_url": "https://advertisinglaw.fkks.com/post/102kzfw/x-releases-new-advertising-quali
scripts/performance-monitor.py
scripts/platform_specs.json
- Network accessline 4
"platforms": { "instagram": { "caption_chars": {"value": 2200, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1; not re-read on 2026-10- - Network accessline 5
"instagram": { "caption_chars": {"value": 2200, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1; not re-read on 2026-10-27."}, "capti - Network accessline 6
"caption_chars": {"value": 2200, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1; not re-read on 2026-10-27."}, - Network accessline 7
"caption_display_chars": {"value": 125, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Characters shown before 'more' on a feed post. Carried from 3.39.1."}, - Network accessline 8
"hashtags_cap": {"value": 5, "source_url": "https://www.threads.com/@creators", "source_date": "2025-12-18", "verified_on": "2026-10-27", "review_by": "2026-12-31", "note": "REPORTED: Instagram's @creators account, 2025-12-18: 'Starting tod - Network accessline 9
"hashtags_advised": {"value": [3, 5], "source_url": "https://www.threads.com/@creators", "source_date": "2025-12-18", "verified_on": "2026-10-27", "review_by": "2026-12-31", "note": "Practice within the cap: one broad, specific and niche ta - Network accessline 10
"reel_max_seconds": {"value": 1200, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": "2026-10-27", "review_by": "2026-12-31", "note": "REPORTED: reels can be recorded and edited up to 20 minutes (help page qu - Network accessline 11
"reel_recommended_max_seconds": {"value": 180, "source_url": "https://help.instagram.com/", "source_date": null, "verified_on": "2026-10-27", "review_by": "2026-12-31", "note": "REPORTED: reels over 3 minutes are not recommended to new audi - Network accessline 12
}, "facebook": { "post_chars": {"value": 63206, "source_url": "https://socialk.it/en/tools/facebook-character-counter", "source_date": "2026-06-01", "verified_on": "2026-10-28", "review_by": "2026-12-31", "note": "REPORTED: no Met - Network accessline 13
"facebook": { "post_chars": {"value": 63206, "source_url": "https://socialk.it/en/tools/facebook-character-counter", "source_date": "2026-06-01", "verified_on": "2026-10-28", "review_by": "2026-12-31", "note": "REPORTED: no Meta page - Network accessline 14
"post_chars": {"value": 63206, "source_url": "https://socialk.it/en/tools/facebook-character-counter", "source_date": "2026-06-01", "verified_on": "2026-10-28", "review_by": "2026-12-31", "note": "REPORTED: no Meta page states a post charac - Network accessline 15
"post_display_chars": {"value": 477, "source_url": "https://socialk.it/en/tools/facebook-character-counter", "source_date": "2026-06-01", "verified_on": "2026-10-28", "review_by": "2026-12-31", "note": "REPORTED: characters shown before 'Se - Network accessline 16
"hashtags_advised": {"value": [1, 3], "source_url": "https://www.facebook.com/help/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Practice, not a platform cap."}, - Network accessline 17
"image_max_mb": {"value": 10, "source_url": "https://developers.facebook.com/docs/graph-api/reference/page/photos", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "Photo uploads to a Page: 'Files can no - Network accessline 18
"story_video_seconds": {"value": [3, 90], "source_url": "https://developers.facebook.com/docs/page-stories-api/", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "Page Stories API: a story video is .mp4, - Network accessline 19
"story_photo_max_mb": {"value": 10, "source_url": "https://developers.facebook.com/docs/page-stories-api/", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "Page Stories API: a story photo 'can not excee - Network accessline 20
"story_text_chars_advised": {"value": 250, "source_url": "https://developers.facebook.com/docs/page-stories-api/", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "Practice, not a platform cap: Meta stat - Network accessline 21
"reel_max_seconds": {"value": null, "source_url": "https://about.fb.com/news/", "source_date": "2025-06-17", "verified_on": "2026-10-27", "review_by": "2026-12-31", "note": "Meta newsroom post of 2025-06-17. No length limit: 'all videos on - Network accessline 22
}, "threads": { "post_chars": {"value": 500, "source_url": "https://developers.facebook.com/docs/threads/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1."}, - Network accessline 23
"threads": { "post_chars": {"value": 500, "source_url": "https://developers.facebook.com/docs/threads/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1."}, "topic_tags_cap": {"v - Network accessline 24
"post_chars": {"value": 500, "source_url": "https://developers.facebook.com/docs/threads/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Carried from 3.39.1."}, - Network accessline 25
"topic_tags_cap": {"value": 1, "source_url": "https://developers.facebook.com/docs/threads/", "source_date": null, "verified_on": "2026-10-27", "review_by": "2027-01-31", "note": "Threads API docs: 'Only one topic tag is allowed per post.' - Network accessline 26
"links_cap": {"value": 5, "source_url": "https://developers.facebook.com/docs/threads/changelog", "source_date": "2025-12-22", "verified_on": "2026-10-27", "review_by": "2027-01-31", "note": "Threads changelog, 2025-12-22: five links per po - Network accessline 27
}, "linkedin": { "post_chars": {"value": 3000, "source_url": "https://www.linkedin.com/help/linkedin/answer/a528176", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Posts can contain up to 3 - Network accessline 28
"linkedin": { "post_chars": {"value": 3000, "source_url": "https://www.linkedin.com/help/linkedin/answer/a528176", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Posts can contain up to 3,000 ch - Network accessline 29
"post_chars": {"value": 3000, "source_url": "https://www.linkedin.com/help/linkedin/answer/a528176", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Posts can contain up to 3,000 characters.' LinkedIn' - Network accessline 30
"post_display_chars": {"value": 140, "source_url": "https://www.linkedin.com/help/linkedin", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "About 140 on mobile, 210 on desktop before 'see more'. Carried from 3 - Network accessline 31
"article_chars": {"value": 125000, "source_url": "https://www.linkedin.com/help/linkedin/answer/a522483", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Articles ... are limited to 125,000 characters. - Network accessline 32
"image_max_mb": {"value": 5, "source_url": "https://www.linkedin.com/help/lms/answer/a527229", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "A photo in a post: 'The size limit for an upload is 5 MB.' - Network accessline 33
"hashtags_advised": {"value": [3, 5], "source_url": "https://www.linkedin.com/help/linkedin", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Practice, not a platform cap."} - Network accessline 34
}, "twitter": { "post_chars": {"value": 280, "source_url": "https://help.x.com/en/using-x/how-to-post", "source_date": "2026-10-12", "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Compose your message (up to 280 - Network accessline 35
"twitter": { "post_chars": {"value": 280, "source_url": "https://help.x.com/en/using-x/how-to-post", "source_date": "2026-10-12", "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Compose your message (up to 280 charac - Network accessline 36
"post_chars": {"value": 280, "source_url": "https://help.x.com/en/using-x/how-to-post", "source_date": "2026-10-12", "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'Compose your message (up to 280 characters)'. Emoji and C - Network accessline 37
"hashtags_advised": {"value": [0, 2], "source_url": "https://help.x.com/en/using-x/how-to-use-hashtags", "source_date": "2026-09-28", "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "X's own recommendation, not a cap: 'We re - Network accessline 38
"links_advised": {"value": 1, "source_url": "https://help.x.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Practice. A link counts as 23 characters (twitter.link_chars)."}, - Network accessline 39
"link_chars": {"value": 23, "source_url": "https://docs.x.com/fundamentals/counting-characters", "source_date": null, "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "'All URLs are wrapped with t.co shortener and count as 23 - Network accessline 40
}, "tiktok": { "caption_chars": {"value": 2200, "source_url": "https://developers.tiktok.com/doc/content-posting-api-reference-direct-post", "source_date": null, "verified_on": "2026-10-29", "review_by": "2027-01-31", "note": "REP - Network accessline 41
"tiktok": { "caption_chars": {"value": 2200, "source_url": "https://developers.tiktok.com/doc/content-posting-api-reference-direct-post", "source_date": null, "verified_on": "2026-10-29", "review_by": "2027-01-31", "note": "REPORTED: - Network accessline 42
"caption_chars": {"value": 2200, "source_url": "https://developers.tiktok.com/doc/content-posting-api-reference-direct-post", "source_date": null, "verified_on": "2026-10-29", "review_by": "2027-01-31", "note": "REPORTED: TikTok's Content P - Network accessline 43
"photo_description_chars": {"value": 4000, "source_url": "https://developers.tiktok.com/doc/content-posting-api-reference-photo-post", "source_date": null, "verified_on": "2026-10-29", "review_by": "2027-01-31", "note": "REPORTED: the photo - Network accessline 44
"photo_title_chars": {"value": 90, "source_url": "https://developers.tiktok.com/doc/content-posting-api-reference-photo-post", "source_date": null, "verified_on": "2026-10-29", "review_by": "2027-01-31", "note": "REPORTED: the photo-post re - Network accessline 45
"hashtags_advised": {"value": [3, 5], "source_url": "https://support.tiktok.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "Practice, not a platform cap."}, - Network accessline 46
"video_max_seconds": {"value": 600, "source_url": "https://support.tiktok.com/", "source_date": null, "verified_on": null, "review_by": "2027-01-31", "note": "In-app uploads up to 10 minutes. Carried from 3.39.1."} - Network accessline 47
}, "bluesky": { "post_chars": {"value": 300, "source_url": "https://github.com/bluesky-social/atproto/blob/main/packages/api/lexicons/app/bsky/feed/post.json", "source_date": "2026-10-15", "verified_on": "2026-10-28", "review_by": - Network accessline 48
"bluesky": { "post_chars": {"value": 300, "source_url": "https://github.com/bluesky-social/atproto/blob/main/packages/api/lexicons/app/bsky/feed/post.json", "source_date": "2026-10-15", "verified_on": "2026-10-28", "review_by": "2027- - Network accessline 49
"post_chars": {"value": 300, "source_url": "https://github.com/bluesky-social/atproto/blob/main/packages/api/lexicons/app/bsky/feed/post.json", "source_date": "2026-10-15", "verified_on": "2026-10-28", "review_by": "2027-03-31", "note": "Th - Network accessline 50
"hashtags_advised": {"value": [0, 3], "source_url": "https://github.com/bluesky-social/atproto/blob/main/packages/api/lexicons/app/bsky/richtext/facet.json", "source_date": "2026-10-15", "verified_on": "2026-10-29", "review_by": "2027-03-31 - Network accessline 51
"extra_tags_cap": {"value": 8, "source_url": "https://github.com/bluesky-social/atproto/blob/main/packages/api/lexicons/app/bsky/feed/post.json", "source_date": "2026-10-15", "verified_on": "2026-10-29", "review_by": "2027-03-31", "note": " - Network accessline 52
}, "youtube_shorts": { "video_max_seconds": {"value": 180, "source_url": "https://support.google.com/youtube/answer/10059070", "source_date": null, "verified_on": "2026-10-27", "review_by": "2027-01-31", "note": "Shorts up to 3 mi - Network accessline 53
"youtube_shorts": { "video_max_seconds": {"value": 180, "source_url": "https://support.google.com/youtube/answer/10059070", "source_date": null, "verified_on": "2026-10-27", "review_by": "2027-01-31", "note": "Shorts up to 3 minutes. - Network accessline 54
"video_max_seconds": {"value": 180, "source_url": "https://support.google.com/youtube/answer/10059070", "source_date": null, "verified_on": "2026-10-27", "review_by": "2027-01-31", "note": "Shorts up to 3 minutes. Since 2025-03-31 a Short's
scripts/plugin-metadata.py
scripts/posting-time-analyzer.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/prompt-ab-tester.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/quality-tracker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Dangerous shell operationline 155
# Stamp the eval (include milliseconds to avoid collisions) - Dangerous shell operationline 155
# Stamp the eval (include milliseconds to avoid collisions) - Dangerous shell operationline 155
# Stamp the eval (include milliseconds to avoid collisions)
scripts/readability-analyzer.py
scripts/recommendation-tracker.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3
scripts/refresh_models.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 16
Requires (per provider) one or more of: ANTHROPIC_API_KEY — calls https://api.anthropic.com/v1/models - Network accessline 17
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Network accessline 18
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Network accessline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Network accessline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 57
EVOLINK_MODELS_URL = "https://direct.evolink.ai/v1/models" - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Network accessline 92
if not key: return None opener = urlopen or urllib.request.urlopen - Network accessline 93
return None opener = urlopen or urllib.request.urlopen ids: set[str] = set() - Network accessline 94
opener = urlopen or urllib.request.urlopen - Network accessline 97
for _ in range(MAX_PAGES): url = EVOLINK_MODELS_URL + ("?" + urllib.parse.urlencode({"after": after}) if after else "") req = urllib.request.Request(url) - Network accessline 98
url = EVOLINK_MODELS_URL + ("?" + urllib.parse.urlencode({"after": after}) if after else "") req = urllib.request.Request(url) req.add_unredirected_header("Authorization", f"Bearer {key}") # never copied to a redirect's hos - Network accessline 99
req = urllib.request.Request(url)
scripts/report-generator.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/requirements.txt
scripts/resolve_model.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
scripts/revenue-forecaster.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/roi-calculator.py
scripts/run-audit.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/sample-size-calculator.py
scripts/send-time-optimizer.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/seo-executor.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Network accessline 13
Usage: python seo-executor.py --brand acme --action update-meta --url https://example.com/ --title "New Title" --description "New desc" - Network accessline 14
python seo-executor.py --brand acme --action update-meta --url https://example.com/ --title "New Title" --description "New desc" - Network accessline 15
python seo-executor.py --brand acme --action deploy-schema --url https://example.com/ --schema-type FAQ --schema-data '{"mainEntity": []}' - Network accessline 16
python seo-executor.py --brand acme --action create-redirect --source-url /old --target-url /new --type 301 python seo-executor.py --brand acme --action submit-sitemap --sitemap-url https://example.com/sitemap.xml python seo-executo - Network accessline 17
python seo-executor.py --brand acme --action submit-sitemap --sitemap-url https://example.com/sitemap.xml - Network accessline 18
python seo-executor.py --brand acme --action request-indexing --url https://example.com/new-page
scripts/seo_drift.py
- Executable scriptline 1
#!/usr/bin/env python3
scripts/serp-snapshot.py
scripts/setup.py
scripts/significance-tester.py
scripts/structural-tell-scan.py
scripts/team-manager.py
scripts/tech-seo-auditor.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 11
Usage: python tech-seo-auditor.py --url "https://example.com" - Network accessline 12
python tech-seo-auditor.py --url "https://example.com" - Network accessline 13
python tech-seo-auditor.py --urls '["https://example.com", "https://example.org"]' - Network accessline 36
ALL_CHECKS = {"status", "redirects", "meta", "headers", "security", "speed_hints"} MAX_REDIRECTS = 10 USER_AGENT = "TechSEOAuditor/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)" - Network accessline 38
USER_AGENT = "TechSEOAuditor/1.0 (+https://github.com/indranilbanerjee/digital-marketing-pro)"
skills/add-integration/SKILL.md
- Network accessline 23
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Check for agency credential profiles at `~/.claude-marketing/credentials/` — if - Network accessline 24
2. **Look for the vendor's own server**: First a hosted HTTP endpoint in the vendor's documentation (or `.mcp.json.connectors-reference`). Then an npm package, accepted only when the package's publisher is the vendor's own npm account and i - Access to secretsline 27
[Credential-related source omitted]
skills/aeo-audit/SKILL.md
- Network accessline 19
**Copilot citation gaps from Bing (13 Oct 2026):** Bing Webmaster Tools → AI Performance → **Topics Portfolio (beta)** lists, per topic, approximate citations across all sites, how many sites are cited, and **Top Opportunity Queries**: grou - Network accessline 19
**Copilot citation gaps from Bing (13 Oct 2026):** Bing Webmaster Tools → AI Performance → **Topics Portfolio (beta)** lists, per topic, approximate citations across all sites, how many sites are cited, and **Top Opportunity Queries**: grou - Network accessline 25
**Information Agents (Google AI Pro / Ultra, summer 2026 launch):** Google announced at I/O 2026 a new class of persistent agents that continuously monitor web / news / real-time data for subscribers and deliver synthesized updates with act - Network accessline 25
**Information Agents (Google AI Pro / Ultra, summer 2026 launch):** Google announced at I/O 2026 a new class of persistent agents that continuously monitor web / news / real-time data for subscribers and deliver synthesized updates with act
skills/aeo-geo/SKILL.md
- Network accessline 28
**Additional I/O 2026 announcements that change AEO scope** ([source: blog.google/products-and-platforms/products/search/search-io-2026](https://blog.google/products-and-platforms/products/search/search-io-2026/)): - Network accessline 34
**Official Google guidance on AI search optimization** (last updated 2026-07-10 — [Google AI Optimization Guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)): - Network accessline 40
**Opt-out and AI training controls** ([Google AI Features doc](https://developers.google.com/search/docs/appearance/ai-features)): - Network accessline 42
- For AI Overviews and AI Mode (inside Google Search): use existing snippet directives — `nosnippet`, `data-nosnippet`, `max-snippet`, `noindex`. Robots.txt for Googlebot is the canonical control. **There is no AI-specific robots/meta direc - Network accessline 43
- For Google's *other* AI systems (Gemini app training, Vertex AI grounding outside Search): use the **Google-Extended** user agent in robots.txt. This is a distinct control from Googlebot. - **Search generative AI control (Search Console → - Network accessline 44
- **Search generative AI control (Search Console → Settings → Search generative AI; worldwide since 31 Aug 2026).** Excluding a property removes its links and content from AI Overviews, AI Mode and generative AI features in Discover. Google - Network accessline 45
- **Preferred Sources (playbook item).** Readers can mark a site as a Preferred Source; its stories then appear more often in Top Stories with a "preferred" badge, and its content can carry that badge in AI Mode and AI Overviews. Google say
skills/aeo-geo/citation-optimization.md
- Network accessline 75
{ "@context": "https://schema.org", - Network accessline 76
"@context": "https://schema.org", - Network accessline 78
"name": "Brand Name", "description": "One-sentence brand description", "url": "https://brand.com", - Network accessline 79
"description": "One-sentence brand description", "url": "https://brand.com", "foundingDate": "YYYY", - Network accessline 80
"url": "https://brand.com", - Network accessline 90
{ "@context": "https://schema.org", - Network accessline 91
"@context": "https://schema.org",
skills/agent-readiness-audit/SKILL.md
- Network accessline 24
From Google's [AI optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide) (last updated 2026-07-10): - Network accessline 32
| Token | Vendor | Role in the audit | What blocking it means (vendor's words, paraphrased) | Source | |---|---|---|---|---| | `OAI-SearchBot` | OpenAI | search: **must be allowed** | Site not surfaced in ChatGPT search features | [OpenAI b - Network accessline 33
|---|---|---|---|---| | `OAI-SearchBot` | OpenAI | search: **must be allowed** | Site not surfaced in ChatGPT search features | [OpenAI bots](https://developers.openai.com/api/docs/bots) | | `ChatGPT-User` | OpenAI | user fetch: **must be a - Network accessline 34
| `OAI-SearchBot` | OpenAI | search: **must be allowed** | Site not surfaced in ChatGPT search features | [OpenAI bots](https://developers.openai.com/api/docs/bots) | | `ChatGPT-User` | OpenAI | user fetch: **must be allowed** | User-initia - Network accessline 36
| `OAI-AdsBot` | OpenAI | ads: **must be allowed** if the brand runs ChatGPT Ads | Validates the safety of pages submitted as ChatGPT ads | same | | `GPTBot` | OpenAI | training: **policy** | Content excluded from foundation-model training - Network accessline 37
| `GPTBot` | OpenAI | training: **policy** | Content excluded from foundation-model training | same | | `Claude-SearchBot` | Anthropic | search: **must be allowed** | Content not indexed for Claude's search results | [Anthropic](https://sup - Network accessline 38
| `Claude-SearchBot` | Anthropic | search: **must be allowed** | Content not indexed for Claude's search results | [Anthropic](https://support.claude.com/en/articles/8896518) | | `Claude-User` | Anthropic | user fetch: **must be allowed** | - Network accessline 39
| `Claude-User` | Anthropic | user fetch: **must be allowed** | Claude can't retrieve the page for a user's question. Anthropic honors robots.txt for all three of its bots | same | | `ClaudeBot` | Anthropic | training: **policy** | Future c - Network accessline 40
| `ClaudeBot` | Anthropic | training: **policy** | Future content excluded from training datasets | same | | `PerplexityBot` | Perplexity | search: **must be allowed** | Not surfaced or linked in Perplexity results (Perplexity says it is no - Network accessline 41
| `PerplexityBot` | Perplexity | search: **must be allowed** | Not surfaced or linked in Perplexity results (Perplexity says it is not used for model training) | [Perplexity bots](https://docs.perplexity.ai/guides/bots) | | `Perplexity-User - Network accessline 42
| `Perplexity-User` | Perplexity | user fetch: **must be allowed** | Perplexity says this fetcher "generally ignores robots.txt rules" | same | | `Google-Agent` | Google | user fetch: **must be allowed** | Agents on Google infrastructure th - Network accessline 43
| `Google-Agent` | Google | user fetch: **must be allowed** | Agents on Google infrastructure that browse and act on a user's request. Google: user-triggered fetchers "generally ignore robots.txt rules"; Google is testing Web Bot Auth with - Network accessline 44
| `Google-GeminiNotebook` | Google | user fetch: **must be allowed** | Fetches URLs a user adds as sources in a Gemini Notebook project. It replaces `Google-NotebookLM`, "supported until August 2026": the audit warns when robots.txt still n - Network accessline 45
| `Google-Extended` | Google | training: **policy** | Controls use for Gemini training and grounding. It "does not impact a site's inclusion in Google Search nor is it used as a ranking signal", and it has no separate user-agent string | [G - Network accessline 46
| `Applebot-Extended` | Apple | training: **policy** | Controls use in Apple foundation-model training. It does not crawl, and pages that disallow it "can still be included in search results" | [Apple](https://support.apple.com/en-us/119829 - Network accessline 54
- **robots.txt**: `--robots FILE`, or `--site URL --fetch`. Add `--path /products/` (repeatable) to test the paths that matter, beyond `/`. On Windows, Claude Code's Bash tool is Git Bash, which rewrites `/products/` into a Windows folder: - Network accessline 55
- **Server HTML**: `--html FILE` (repeatable). Save it as the server sends it, for example with `curl -L URL > page.html`, **not** "Save as" from a browser, which saves the post-JavaScript DOM. Add `--expect "Product name"` (repeatable) for - Network accessline 56
- **Merchant Center feed export**: `--feed FILE` (TSV, CSV, or RSS/Atom XML with `g:` attributes). - **Agentic-commerce product feed (optional)**: `--acp-feed FILE`. Accepts JSONL in OpenAI's product file format or the Google-compatible CSV - Network accessline 57
- **Agentic-commerce product feed (optional)**: `--acp-feed FILE`. Accepts JSONL in OpenAI's product file format or the Google-compatible CSV/TSV ([spec](https://developers.openai.com/commerce/specs/file-upload/products)). - Network accessline 58
- **Discovery feed first; checkout is partner-gated on both platforms.** OpenAI onboards product feeds into ChatGPT for approved partners only (apply at chatgpt.com/merchants) and recommends a full snapshot at least daily ([get started](htt - Network accessline 80
python "${CLAUDE_PLUGIN_ROOT}/scripts/agent-readiness-audit.py" --site https://example.com --fetch \ - Network accessline 81
--page https://example.com/products/anvil --format json - Network accessline 91
- **structured_data**: - an unparseable JSON-LD block is a **fail** - a Product without `offers` is a **warn**, because merchant-listing rich results require name, image and offers ([Google](https://developers.google.com/search/do - Network accessline 92
- an unparseable JSON-LD block is a **fail** - a Product without `offers` is a **warn**, because merchant-listing rich results require name, image and offers ([Google](https://developers.google.com/search/docs/appearance/structured-dat - Network accessline 93
- a Product without `offers` is a **warn**, because merchant-listing rich results require name, image and offers ([Google](https://developers.google.com/search/docs/appearance/structured-data/merchant-listing)) - Network accessline 94
- no Organization markup anywhere is a **warn** - FAQPage is fine to keep, but Google shows FAQ rich results only for "well-known, authoritative government and health websites" ([Google](https://developers.google.com/search/docs/appear - Network accessline 95
- FAQPage is fine to keep, but Google shows FAQ rich results only for "well-known, authoritative government and health websites" ([Google](https://developers.google.com/search/docs/appearance/structured-data/faqpage)) - Network accessline 98
- **merchant_feed**: - **Fail** conditions: - any required attribute is missing: `id`, `title`, `description`, `link`, `image_link`, `availability`, `price` ([product data spec](https://support.google.com/merchants/answer/705211 - Network accessline 99
- **Fail** conditions: - any required attribute is missing: `id`, `title`, `description`, `link`, `image_link`, `availability`, `price` ([product data spec](https://support.google.com/merchants/answer/7052112)) - an `availabil - Network accessline 100
- any required attribute is missing: `id`, `title`, `description`, `link`, `image_link`, `availability`, `price` ([product data spec](https://support.google.com/merchants/answer/7052112)) - Network accessline 101
- an `availability` value is outside `in_stock`, `out_of_stock`, `preorder`, `backorder` - a `native_commerce(checkout_eligibility)` value is not TRUE/FALSE - **`native_commerce`**: report how many products opt into checkout on - Network accessline 102
- a `native_commerce(checkout_eligibility)` value is not TRUE/FALSE - **`native_commerce`**: report how many products opt into checkout on Google. Only listings with `native_commerce(checkout_eligibility)` = TRUE show the "Buy" button. - Network accessline 103
- **`native_commerce`**: report how many products opt into checkout on Google. Only listings with `native_commerce(checkout_eligibility)` = TRUE show the "Buy" button. The feature is for select merchants, with products eligible in the US, C - Network accessline 104
- **Conversational attributes** (`question_and_answer`, `document_link`, `related_product`, `item_group_title`, `variant_option`, `popularity_rank`) are optional ([help](https://support.google.com/merchants/answer/17085370)). Report their c - Network accessline 105
- **acp_feed**: optional. If supplied, missing required fields are a **fail**. Report the `is_eligible_search` / `is_eligible_checkout` counts. - **webmcp**: always `info`. WebMCP is a Chrome origin trial (from Chrome 149) and "under act - Network accessline 106
- **webmcp**: always `info`. WebMCP is a Chrome origin trial (from Chrome 149) and "under active discussion and subject to change" ([Chrome docs](https://developer.chrome.com/docs/ai/webmcp)). Report the declarative `toolname` / `tooldescri - Network accessline 140
|---|---| | **script_ran_clean** | Exit code 0 or 1 (never 2). A `2` means the inputs were wrong, not the site | | **inputs_are_server_html** | `00-input.md` states the HTML was captured as served (curl or `--fetch`), not from a browser's s - Network accessline 141
| **script_ran_clean** | Exit code 0 or 1 (never 2). A `2` means the inputs were wrong, not the site | | **inputs_are_server_html** | `00-input.md` states the HTML was captured as served (curl or `--fetch`), not from a browser's saved DOM | - Network accessline 142
| **inputs_are_server_html** | `00-input.md` states the HTML was captured as served (curl or `--fetch`), not from a browser's saved DOM | - Network accessline 162
4. **Being allowed is not being cited.** This audit checks whether agents *can* use the site. Whether they *visit* is in the site's logs (step 5); whether they *cite* it is measured by `/digital-marketing-pro:geo-monitor` (probes plus Bing - Network accessline 164
6. **Cloudflare can override robots.txt, and since 15 Sep 2026 its block modes reach search crawlers.** If the site is behind Cloudflare (response headers `server: cloudflare` or `cf-ray`), check its AI crawler controls (Search, Training, A
skills/analytics-insights/SKILL.md
- Network accessline 12
Google Analytics 4 added a new **default channel group called "AI Assistant"** on 13 May 2026 ([GA4 channel groups doc](https://support.google.com/analytics/answer/9164320?hl=en)). When a referrer matches a recognized AI Assistant (ChatGPT, - Network accessline 33
Google's default-channel definitions ([support.google.com/analytics/answer/9756891](https://support.google.com/analytics/answer/9756891)) say three things: - Network accessline 45
| Surface | Visibility metric (first-party) | Click / traffic metric | Not available | |---|---|---|---| | Google AI Overviews + AI Mode | Search Console generative AI report: impressions by page, country, date, device ([help](https://suppo - Network accessline 46
|---|---|---|---| | Google AI Overviews + AI Mode | Search Console generative AI report: impressions by page, country, date, device ([help](https://support.google.com/webmasters/answer/16984139)) | Inside GA4 Organic Search, inseparable | C - Network accessline 47
| Google AI Overviews + AI Mode | Search Console generative AI report: impressions by page, country, date, device ([help](https://support.google.com/webmasters/answer/16984139)) | Inside GA4 Organic Search, inseparable | Clicks, CTR, and qu - Network accessline 48
| Copilot, Bing, and select partner AI experiences | Bing Webmaster Tools AI Performance: citations, grounding queries, **Intents**, **Topics**, **Citation Share** (your share of all citations shown for a grounding query), and **Compare** p - Network accessline 49
| Google Shopping in AI Mode / AI Overviews / Gemini app | Merchant Center **AI performance insights**: brand share of voice vs similar brands, across discovery, evaluation and purchase, plus popular product terms and specifications ([Merch
skills/analytics-insights/dark-social-tracking.md
- Network accessline 51
https://example.com/blog/post-title?utm_source=whatsapp&utm_medium=share&utm_campaign=blog-post-title
skills/analytics-insights/mmm-framework.md
- Network accessline 192
Source: the [Meridian CHANGELOG](https://github.com/google/meridian/blob/main/CHANGELOG.md), the project's own release notes. Pin the version you model with, and write it into every model card.
skills/analytics-insights/privacy-first-measurement.md
- Network accessline 15
| Safari ITP (Intelligent Tracking Prevention) | First-party cookies capped at 7 days (24 hours for some); cross-site tracking blocked | Active since 2020 | | Firefox Enhanced Tracking Protection | Third-party cookies blocked by default | A - Network accessline 16
| Firefox Enhanced Tracking Protection | Third-party cookies blocked by default | Active since 2019 | | Chrome Privacy Sandbox | Chrome keeps third-party cookies, with the user's choice in settings. Timeline: July 2024, Google dropped the d - Network accessline 17
| Chrome Privacy Sandbox | Chrome keeps third-party cookies, with the user's choice in settings. Timeline: July 2024, Google dropped the deprecation plan; April 2025, no standalone cookie prompt; 2025-10-17, Google retired Attribution Repor - Access to secretsline 137
[Credential-related source omitted]
skills/attribution-report/SKILL.md
- Network accessline 14
Source: [GA4 default channel groups](https://support.google.com/analytics/answer/9164320?hl=en). For the upstream impression-side data, pair with `/digital-marketing-pro:gsc-ai-performance` (GSC AI Performance Report rolled out 3 June 2026,
skills/c2pa-metadata/SKILL.md
- Network accessline 14
- **EU AI Act Article 50** (has applied since 2 August 2026; generative systems that existed before then have until 2 December 2026 to mark their output under Article 50(2)) — generative-AI marketing content must be marked in a machine-read - Network accessline 14
- **EU AI Act Article 50** (has applied since 2 August 2026; generative systems that existed before then have until 2 December 2026 to mark their output under Article 50(2)) — generative-AI marketing content must be marked in a machine-read - Network accessline 15
- **NY synthetic-performer disclosure law** (S.8420-A, signed 2025-12-11, in force 2026-06-09: an ad that uses an AI-generated synthetic performer must disclose it conspicuously; $1,000 for a first violation and $5,000 for each later one; a - Network accessline 15
- **NY synthetic-performer disclosure law** (S.8420-A, signed 2025-12-11, in force 2026-06-09: an ad that uses an AI-generated synthetic performer must disclose it conspicuously; $1,000 for a first violation and $5,000 for each later one; a - Network accessline 16
- **FTC rules on endorsements and reviews**: the Endorsement Guides (16 CFR Part 255, revised 2023) and the Consumer Reviews and Testimonials Rule (16 CFR Part 465, in force 2024-10-21), which bans fake reviews and testimonials, AI-generate - Network accessline 16
- **FTC rules on endorsements and reviews**: the Endorsement Guides (16 CFR Part 255, revised 2023) and the Consumer Reviews and Testimonials Rule (16 CFR Part 465, in force 2024-10-21), which bans fake reviews and testimonials, AI-generate - Network accessline 19
The resulting asset can be inspected by any C2PA-aware viewer (Adobe Photoshop, Lightroom, Truepic, [contentcredentials.org/verify](https://contentcredentials.org/verify)). - Network accessline 19
The resulting asset can be inspected by any C2PA-aware viewer (Adobe Photoshop, Lightroom, Truepic, [contentcredentials.org/verify](https://contentcredentials.org/verify)). - Network accessline 23
- **C2PA 2.3** (December 2025 in the spec's version history; announced 9 February 2026 — [launch post](https://c2pa.org/the-c2pa-launches-content-credentials-2-3-and-celebrates-5-years-of-impact-across-the-digital-ecosystem/)) added format - Network accessline 23
- **C2PA 2.3** (December 2025 in the spec's version history; announced 9 February 2026 — [launch post](https://c2pa.org/the-c2pa-launches-content-credentials-2-3-and-celebrates-5-years-of-impact-across-the-digital-ecosystem/)) added format - Network accessline 24
- **C2PA 2.5 is the current specification** (October 2026, spec.c2pa.org, read 2026-10-27). Whether the pinned c2pa-python reads 2.5 manifests is unverified; check `embed-c2pa.py --verify` on a 2.5 file before relying on it. - **C2PA Spec 2 - Network accessline 24
- **C2PA 2.5 is the current specification** (October 2026, spec.c2pa.org, read 2026-10-27). Whether the pinned c2pa-python reads 2.5 manifests is unverified; check `embed-c2pa.py --verify` on a 2.5 file before relying on it. - **C2PA Spec 2 - Network accessline 25
- **C2PA Spec 2.4** (April 2026 — [spec.c2pa.org/specifications/specifications/2.4](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html)) introduces the **AI Disclosure Assertion (`c2pa.ai-disclosure`)** fo - Network accessline 25
- **C2PA Spec 2.4** (April 2026 — [spec.c2pa.org/specifications/specifications/2.4](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html)) introduces the **AI Disclosure Assertion (`c2pa.ai-disclosure`)** fo - Network accessline 103
Production C2PA signatures require a certificate from a CAI-recognized signing authority. The script will use one if you pass `--signing-cert` and `--signing-key`. If you omit them, the script generates a **self-signed 90-day dev certificat - Network accessline 103
Production C2PA signatures require a certificate from a CAI-recognized signing authority. The script will use one if you pass `--signing-cert` and `--signing-key`. If you omit them, the script generates a **self-signed 90-day dev certificat - Network accessline 111
Reference: [opensource.contentauthenticity.org/docs/manifest/signing-manifests/](https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/) - Network accessline 111
Reference: [opensource.contentauthenticity.org/docs/manifest/signing-manifests/](https://opensource.contentauthenticity.org/docs/manifest/signing-manifests/) - Network accessline 120
Each signature requests a timestamp from `http://timestamp.digicert.com` (a hash of the claim, not the asset). The dev key, when used, is deleted as soon as the script exits. - Network accessline 120
Each signature requests a timestamp from `http://timestamp.digicert.com` (a hash of the claim, not the asset). The dev key, when used, is deleted as soon as the script exits. - Network accessline 136
"manifest_assertions": ["c2pa.actions", "stds.schema-org.CreativeWork"], "using_dev_cert": false, "verify_url": "https://contentcredentials.org/verify" - Network accessline 136
"manifest_assertions": ["c2pa.actions", "stds.schema-org.CreativeWork"], "using_dev_cert": false, "verify_url": "https://contentcredentials.org/verify" - Network accessline 137
"using_dev_cert": false, "verify_url": "https://contentcredentials.org/verify" } - Network accessline 137
"using_dev_cert": false, "verify_url": "https://contentcredentials.org/verify" } - Network accessline 138
"verify_url": "https://contentcredentials.org/verify" - Network accessline 138
"verify_url": "https://contentcredentials.org/verify" - Network accessline 151
- `skills/context-engine/compliance-rules.md` — EU AI Act Article 50 rule pack - `skills/influencer-creator/ftc-compliance.md` — FTC endorsement disclosure requirements - [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifica - Network accessline 151
- `skills/context-engine/compliance-rules.md` — EU AI Act Article 50 rule pack - `skills/influencer-creator/ftc-compliance.md` — FTC endorsement disclosure requirements - [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifica - Network accessline 152
- `skills/influencer-creator/ftc-compliance.md` — FTC endorsement disclosure requirements - [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html) — defines the `c2pa.ai- - Network accessline 152
- `skills/influencer-creator/ftc-compliance.md` — FTC endorsement disclosure requirements - [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html) — defines the `c2pa.ai- - Network accessline 153
- [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html) — defines the `c2pa.ai-disclosure` assertion (Article 50 machine-readable pathway); [Content Credentials 2.3 laun - Network accessline 153
- [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html) — defines the `c2pa.ai-disclosure` assertion (Article 50 machine-readable pathway); [Content Credentials 2.3 laun - Network accessline 154
- [Content Authenticity Initiative](https://contentauthenticity.org/) - Network accessline 154
- [Content Authenticity Initiative](https://contentauthenticity.org/)
skills/campaign-audit/SKILL.md
skills/check/SKILL.md
- Broad permissionsline 1
Read Bash Glob Grep - Broad permissionsline 1
Read Bash Glob Grep - Dangerous shell operationline 51
### Full eval (run-full) - Dangerous shell operationline 51
### Full eval (run-full) - Network accessline 288
User: /digital-marketing-pro:check "Our product boosts conversion by 347%. Buy now at https://example.com/offer" - Network accessline 288
User: /digital-marketing-pro:check "Our product boosts conversion by 347%. Buy now at https://example.com/offer" - Network accessline 294
4. Report: CRITICAL (1): - Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing - Network accessline 294
4. Report: CRITICAL (1): - Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing - Network accessline 295
CRITICAL (1): - Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing Decision: BLOCKED - Network accessline 295
CRITICAL (1): - Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing Decision: BLOCKED - Network accessline 296
- Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing - Network accessline 296
- Placeholder URL "https://example.com/offer" in a call to action — replace it with the real URL before publishing
skills/client-validation-document/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep
skills/competitor-pages/SKILL.md
- Network accessline 80
{ "@context": "https://schema.org", - Network accessline 81
"@context": "https://schema.org", - Network accessline 98
{ "@context": "https://schema.org", - Network accessline 99
"@context": "https://schema.org", - Network accessline 110
{ "@context": "https://schema.org", - Network accessline 111
"@context": "https://schema.org", - Network accessline 112
"@type": "ItemList", "name": "Best [Category] Tools [Year]", "itemListOrder": "https://schema.org/ItemListOrderDescending", - Network accessline 113
"name": "Best [Category] Tools [Year]", "itemListOrder": "https://schema.org/ItemListOrderDescending", "numberOfItems": "[Count]", - Network accessline 114
"itemListOrder": "https://schema.org/ItemListOrderDescending",
skills/connect/SKILL.md
- Network accessline 37
**Official ad-platform and CRM servers (checked 2026-10-04; see the CONNECTORS.md section "Official ad-platform and CRM MCP servers")**: the setup guide returns an `access` field and a `setup_note`. Read both to the user: - **`meta-ads`* - Network accessline 38
- **`meta-ads`** (`https://mcp.facebook.com/ads`, open beta): read + write, with a business-authenticated Meta login. - Network accessline 39
- **`google-ads-mcp`**: read-only. It runs locally via `pipx` (Claude Code only), or the user self-hosts it over Streamable HTTP, so the URL has a `<...>` placeholder. - **`amazon-ads-mcp`**: partners with active Amazon Ads API credentia - Network accessline 41
- **`hubspot`** (`https://mcp.hubspot.com`, GA): OAuth 2.1 + PKCE with the user's connector app credentials.
skills/content-engine/email-infrastructure.md
- Network accessline 64
1. DMARC policy must be at `p=quarantine` or `p=reject` 2. SVG logo file meeting BIMI specifications 3. A mark certificate from an issuer such as DigiCert or Entrust: a VMC (Verified Mark Certificate; needs a registered trademark; Gmail sho - Network accessline 65
2. SVG logo file meeting BIMI specifications 3. A mark certificate from an issuer such as DigiCert or Entrust: a VMC (Verified Mark Certificate; needs a registered trademark; Gmail shows a verified checkmark) or a CMC (Common Mark Certifica - Network accessline 66
3. A mark certificate from an issuer such as DigiCert or Entrust: a VMC (Verified Mark Certificate; needs a registered trademark; Gmail shows a verified checkmark) or a CMC (Common Mark Certificate; logo only, no checkmark; Gmail accepts it - Network accessline 69
default._bimi.yourdomain.com TXT "v=BIMI1; l=https://yourdomain.com/logo.svg; a=https://yourdomain.com/cert.pem" - Network accessline 133
| Blacklisted | Spam complaints exceeded threshold | Check blacklist databases, submit delisting request | | Gmail tabs (Promotions) | Content signals | Reduce images, simplify formatting | | Apple Mail categories (Promotions) | Apple Mail - Network accessline 135
| Apple Mail categories (Promotions) | Apple Mail sorts mail into Primary, Transactions, Updates and Promotions; a time-sensitive message in the other three also shows in Primary ([Apple support](https://support.apple.com/guide/icloud/use-c
skills/content-engine/multilingual.md
- Network accessline 65
<link rel="alternate" hreflang="en-us" href="https://example.com/page" /> - Network accessline 66
<link rel="alternate" hreflang="es-es" href="https://example.com/es/page" /> - Network accessline 67
<link rel="alternate" hreflang="de-de" href="https://example.com/de/page" /> - Network accessline 68
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
skills/content-engine/video-scripting.md
- Network accessline 16
**YouTube rules that change a script or a plan** (YouTube Help, read 2026-10-28): - Shorts views count every start or replay, with no minimum watch time, since 2025-03-31; compare Shorts on "Engaged views" ([10059070](https://support.google - Network accessline 17
- Shorts views count every start or replay, with no minimum watch time, since 2025-03-31; compare Shorts on "Engaged views" ([10059070](https://support.google.com/youtube/answer/10059070)). - Network accessline 18
- Repetitive or mass-produced videos (templates, one script reskinned) are "inauthentic content", ineligible for monetisation since the 2025-07-15 policy update ([1311392](https://support.google.com/youtube/answer/1311392)). - Network accessline 19
- Realistic AI-generated or altered footage must be disclosed at upload ("AI use"); YouTube may label files carrying C2PA metadata automatically ([14328491](https://support.google.com/youtube/answer/14328491)).
skills/context-engine/agency-operations-guide.md
skills/context-engine/competitive-monitoring-guide.md
skills/context-engine/crm-integration-guide.md
- Access to secretsline 239
[Credential-related source omitted] - Network accessline 290
[Credential-related source omitted] - Access to secretsline 290
[Credential-related source omitted] - Network accessline 291
ODOO_URL=https://mycompany.odoo.com - Access to secretsline 293
[Credential-related source omitted] - Access to secretsline 330
[Credential-related source omitted] - Access to secretsline 332
[Credential-related source omitted] - Access to secretsline 368
[Credential-related source omitted] - Access to secretsline 382
[Credential-related source omitted] - Network accessline 407
[Credential-related source omitted] - Access to secretsline 407
[Credential-related source omitted] - Network accessline 408
DYNAMICS_INSTANCE_URL=https://yourorg.crm.dynamics.com - Access to secretsline 411
[Credential-related source omitted] - Access to secretsline 448
[Credential-related source omitted] - Access to secretsline 449
[Credential-related source omitted] - Access to secretsline 490
[Credential-related source omitted] - Access to secretsline 491
[Credential-related source omitted] - Access to secretsline 529
[Credential-related source omitted] - Access to secretsline 531
[Credential-related source omitted] - Access to secretsline 532
[Credential-related source omitted]
skills/context-engine/custom-mcp-guide.md
- Access to secretsline 25
[Credential-related source omitted] - Network accessline 56
2. **Find the vendor's own server:** first a hosted HTTP MCP endpoint (see `.mcp.json.connectors-reference` for verified ones), then an npm package, accepted only when the package's publisher is the vendor's own npm account and its reposito - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Network accessline 159
{ status: z.enum(["active", "archived", "all"]).optional() }, async ({ status }) => { const response = await fetch(`${process.env.YOURSERVICE_URL}/api/items?status=${status || "active"}`, { - Network accessline 160
[Credential-related source omitted] - Network accessline 161
const response = await fetch(`${process.env.YOURSERVICE_URL}/api/items?status=${status || "active"}`, { - Access to secretsline 162
[Credential-related source omitted] - Network accessline 173
{ name: z.string(), description: z.string().optional() }, async ({ name, description }) => { const response = await fetch(`${process.env.YOURSERVICE_URL}/api/items`, { - Network accessline 174
async ({ name, description }) => { const response = await fetch(`${process.env.YOURSERVICE_URL}/api/items`, { method: "POST", - Network accessline 175
const response = await fetch(`${process.env.YOURSERVICE_URL}/api/items`, { - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 203
[Credential-related source omitted] - Access to secretsline 291
[Credential-related source omitted] - Access to secretsline 295
[Credential-related source omitted] - Access to secretsline 387
[Credential-related source omitted] - Access to secretsline 403
[Credential-related source omitted] - Network accessline 413
Zapier's current agent integration is **Zapier MCP** (the successor to the retired Natural Language Actions product). Generate your personal MCP endpoint URL at https://mcp.zapier.com and add it as an HTTP server: - Network accessline 417
"zapier": { "type": "http", "url": "https://mcp.zapier.com/api/mcp/mcp", - Network accessline 418
"type": "http", "url": "https://mcp.zapier.com/api/mcp/mcp", "headers": { - Network accessline 419
"url": "https://mcp.zapier.com/api/mcp/mcp", - Access to secretsline 421
[Credential-related source omitted]
skills/context-engine/eu-code-of-practice.md
- Network accessline 3
**Status as of 27 October 2026 (enforcement live since 2 August 2026):** the European AI Office published the **FINAL Code of Practice on Transparency of AI-Generated Content on 10 June 2026** — ahead of the **2 August 2026** applicability - Network accessline 5
Sources: [Code of Practice on Transparency of AI-Generated Content — official page](https://digital-strategy.ec.europa.eu/en/policies/code-practice-ai-generated-content) · [final Code PDF](https://ec.europa.eu/newsroom/dae/redirection/docum - Network accessline 11
- **Final EU Code of Practice** — ✅ PUBLISHED 10 June 2026. Citations in this doc now point at the final text. The **initial-signatory window closed 22 July 2026** (late signing remains possible); one time-sensitive obligation remains: Arti - Network accessline 12
- **Standardized EU disclosure icons** — ✅ published: three icons (Basic / Fully AI-Generated / Partially AI-Modified), optional to use but labelling itself is mandatory; label visible at first exposure and when reshared or downloaded. Deta - Network accessline 13
- **FTC rules on endorsements and reviews**: the Endorsement Guides (16 CFR Part 255, revised 2023) and the Consumer Reviews and Testimonials Rule (16 CFR Part 465, in force 2024-10-21), which bans fake reviews and testimonials, AI-generate - Network accessline 14
- **New York synthetic-performer disclosure law** (S.8420-A, signed 2025-12-11, in force 2026-06-09: an ad that uses an AI-generated synthetic performer must disclose it conspicuously; $1,000 for a first violation and $5,000 for each later - Network accessline 56
Source: [final Code of Practice (EU Commission, 10 June 2026)](https://ec.europa.eu/newsroom/dae/redirection/document/129555). - Network accessline 74
Source: [EU icons for labelling AI-generated content](https://digital-strategy.ec.europa.eu/en/policies/eu-icons-labelling-ai-generated-content) (European Commission, last update 13 Oct 2026; using an icon does not by itself establish compl - Network accessline 126
- [FINAL Code of Practice on Transparency of AI-Generated Content (10 June 2026) — PDF](https://ec.europa.eu/newsroom/dae/redirection/document/129555) - Network accessline 127
- [EU Digital Strategy — Code of Practice for AI-generated content (official overview page + signatory form)](https://digital-strategy.ec.europa.eu/en/policies/code-practice-ai-generated-content) - Network accessline 128
- [EU AI Act Article 50 (Regulation (EU) 2024/1689)](https://artificialintelligenceact.eu/article/50/) - Network accessline 129
- [C2PA Specification 2.4 (April 2026)](https://spec.c2pa.org/specifications/specifications/2.4/specs/C2PA_Specification.html) — `c2pa.ai-disclosure` assertion definition - Network accessline 130
- Historical: [second draft (5 March 2026)](https://digital-strategy.ec.europa.eu/en/library/commission-publishes-second-draft-code-practice-marking-and-labelling-ai-generated-content) — superseded by the final Code
skills/context-engine/execution-workflows.md
- Network accessline 171
- Email: RFC 5322 compliant, domain has MX record - Phone: E.164 format (international), strip non-numeric characters - URL: Must include protocol (https://) - Network accessline 172
- Phone: E.164 format (international), strip non-numeric characters - URL: Must include protocol (https://) - Country/State: ISO 3166 codes - Network accessline 173
- URL: Must include protocol (https://)
skills/context-engine/geo-execution-guide.md
- Network accessline 151
- **Create or edit**: `https://www.wikidata.org/`
skills/context-engine/google-seo-reference.md
- Network accessline 3
Concise reference guide for agents and skills. Not a reproduction of Google's documentation — see Official Documentation Links at the bottom for full details. Volatile items (surfaces, schema status, algorithm dates) carry a date — re-verif - Network accessline 127
- Google Search Central: https://developers.google.com/search - Network accessline 128
- Search Console Help: https://support.google.com/webmasters - Network accessline 129
- Structured Data: https://developers.google.com/search/docs/appearance/structured-data - Network accessline 130
- Core Web Vitals: https://web.dev/vitals/ - Network accessline 131
- Search Quality Rater Guidelines: https://guidelines.raterhub.com/
skills/context-engine/memory-architecture.md
- Network accessline 21
> **Connectors for these layers.** DMP offers a runnable command only for packages the vendor itself publishes on npm, pinned to an exact version: Pinecone's `@pinecone-database/mcp@0.3.0` (Layer 2). Notion ships a hosted HTTP server (`http - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 164
[Credential-related source omitted] - Network accessline 172
**Services:** Notion (hosted HTTP server, `https://mcp.notion.com/mcp`) or Google Drive (set up from Google's docs) - Access to secretsline 191
[Credential-related source omitted]
skills/context-engine/multilingual-execution-guide.md
- Network accessline 564
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/page" /> - Network accessline 565
<link rel="alternate" hreflang="de-DE" href="https://example.com/de-de/seite" /> - Network accessline 566
<link rel="alternate" hreflang="ja" href="https://example.com/ja/page" /> - Network accessline 567
<link rel="alternate" hreflang="x-default" href="https://example.com/en-us/page" />
skills/context-engine/platform-publishing-specs.md
- Network accessline 63
| `fields._draft` | boolean | Set `true` to save as draft (not published). Default: `false`. | | `fields.[rich-text]` | string (HTML subset) | Supports: `<h1>`-`<h6>`, `<p>`, `<a>`, `<strong>`, `<em>`, `<ul>`, `<ol>`, `<li>`, `<blockquote>` - Network accessline 64
| `fields.[rich-text]` | string (HTML subset) | Supports: `<h1>`-`<h6>`, `<p>`, `<a>`, `<strong>`, `<em>`, `<ul>`, `<ol>`, `<li>`, `<blockquote>`, `<img>`, `<figure>`. No `<script>`, `<style>`, or custom attributes. | | `fields.[image]` | o - Network accessline 65
| `fields.[image]` | object | `{ "url": "https://...", "alt": "Description" }`. Image must be publicly accessible URL. | - Access to secretsline 102
[Credential-related source omitted] - Access to secretsline 104
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted]
skills/context-engine/platform-specs.md
- Network accessline 264
| Title limit | 100 characters | | Algorithm priority signals | Swipe-away rate (lower is better), replays, likes, subscriber conversion from Shorts | | View counting | Since 2025-03-31 a view counts each time a Short starts or replays, wit - Network accessline 265
| Algorithm priority signals | Swipe-away rate (lower is better), replays, likes, subscriber conversion from Shorts | | View counting | Since 2025-03-31 a view counts each time a Short starts or replays, with no minimum watch time; the old - Network accessline 266
| View counting | Since 2025-03-31 a view counts each time a Short starts or replays, with no minimum watch time; the old metric is "Engaged views" in YouTube Analytics (https://support.google.com/youtube/answer/10059070, read 2026-10-28) | - Network accessline 267
| Monetisation through Shorts | YouTube Partner Program: 1,000 subscribers and 10 million qualified Shorts views in the last 90 days (https://support.google.com/youtube/answer/72851, read 2026-10-28) | - Network accessline 740
- **Format:** Always use JSON-LD (recommended by Google) over Microdata or RDFa. - **Placement:** Insert `<script type="application/ld+json">` in the `<head>` or `<body>` of the page. - **Validation:** Test with Google Rich Results Test (ht - Network accessline 741
- **Placement:** Insert `<script type="application/ld+json">` in the `<head>` or `<body>` of the page. - **Validation:** Test with Google Rich Results Test (https://search.google.com/test/rich-results) and Schema Markup Validator (https://v - Network accessline 742
- **Validation:** Test with Google Rich Results Test (https://search.google.com/test/rich-results) and Schema Markup Validator (https://validator.schema.org).
skills/context-engine/schema-templates.json
- Network accessline 13
"description": "Video content pages with thumbnails, duration, and playback URLs. Enables video rich results.", "template": { "@context": "https://schema.org", - Network accessline 14
"template": { "@context": "https://schema.org", "@type": "VideoObject", - Network accessline 15
"@context": "https://schema.org", - Network accessline 33
"description": "Live streaming content for LIVE badge in search results. Requires VideoObject wrapper.", "template": { "@context": "https://schema.org", - Network accessline 34
"template": { "@context": "https://schema.org", "@type": "VideoObject", - Network accessline 35
"@context": "https://schema.org", - Network accessline 53
"description": "Key moments or chapters within a video. Enables key moments rich results with timestamp links.", "template": { "@context": "https://schema.org", - Network accessline 54
"template": { "@context": "https://schema.org", "@type": "VideoObject", - Network accessline 55
"@context": "https://schema.org", - Network accessline 75
"description": "Enable seek functionality in video rich results. Allows users to jump to timestamps from search.", "template": { "@context": "https://schema.org", - Network accessline 76
"template": { "@context": "https://schema.org", "@type": "VideoObject", - Network accessline 77
"@context": "https://schema.org", - Network accessline 93
"description": "Open source and code repository pages.", "template": { "@context": "https://schema.org", - Network accessline 94
"template": { "@context": "https://schema.org", "@type": "SoftwareSourceCode", - Network accessline 95
"@context": "https://schema.org", - Network accessline 110
"description": "E-commerce product variants grouped by attributes (size, color). Enables variant-aware rich results.", "template": { "@context": "https://schema.org", - Network accessline 111
"template": { "@context": "https://schema.org", "@type": "ProductGroup", - Network accessline 112
"@context": "https://schema.org", - Network accessline 115
"description": "[Product group description]", "productGroupID": "[product-group-id]", "variesBy": ["https://schema.org/size", "https://schema.org/color"], - Network accessline 116
"productGroupID": "[product-group-id]", "variesBy": ["https://schema.org/size", "https://schema.org/color"], "hasVariant": [ - Network accessline 117
"variesBy": ["https://schema.org/size", "https://schema.org/color"], - Network accessline 127
"price": "[Price]", "priceCurrency": "USD", "availability": "https://schema.org/InStock" - Network accessline 128
"priceCurrency": "USD", "availability": "https://schema.org/InStock" } - Network accessline 129
"availability": "https://schema.org/InStock" - Network accessline 137
"description": "Author/creator profile pages. Enhances E-E-A-T signals with mainEntity Person markup.", "template": { "@context": "https://schema.org", - Network accessline 138
"template": { "@context": "https://schema.org", "@type": "ProfilePage", - Network accessline 139
"@context": "https://schema.org", - Network accessline 152
"description": "Product certifications (Energy Star, safety, organic). Replaced EnergyConsumptionDetails (April 2025).", "template": { "@context": "https://schema.org", - Network accessline 153
"template": { "@context": "https://schema.org", "@type": "Product", - Network accessline 154
"@context": "https://schema.org", - Network accessline 166
"description": "Shipping info for e-commerce products. Includes rate, handling time, transit time.", "template": { "@context": "https://schema.org", - Network accessline 167
"template": { "@context": "https://schema.org", "@type": "Product", - Network accessline 168
"@context": "https://schema.org", - Network accessline 193
"description": "Return policy for e-commerce. Enables return policy display in product rich results.", "template": { "@context": "https://schema.org", - Network accessline 194
"template": { "@context": "https://schema.org", "@type": "Product", - Network accessline 195
"@context": "https://schema.org", - Network accessline 203
"@type": "MerchantReturnPolicy", "applicableCountry": "US", "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", - Network accessline 204
"applicableCountry": "US", "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", "merchantReturnDays": 30, - Network accessline 205
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", - Network accessline 206
"merchantReturnDays": 30, "returnMethod": "https://schema.org/ReturnByMail", "returnFees": "https://schema.org/FreeReturn" - Network accessline 207
"returnMethod": "https://schema.org/ReturnByMail", - Network accessline 208
"returnFees": "https://schema.org/FreeReturn" - Network accessline 215
"description": "Software comparison and review pages.", "template": { "@context": "https://schema.org", - Network accessline 216
"template": { "@context": "https://schema.org", "@type": "SoftwareApplication", - Network accessline 217
"@context": "https://schema.org", - Network accessline 227
"description": "Roundup and listicle pages. 'Best X tools', 'Top Y alternatives'.", "template": { "@context": "https://schema.org", - Network accessline 228
"template": { "@context": "https://schema.org", "@type": "ItemList", - Network accessline 229
"@context": "https://schema.org", - Network accessline 230
"@type": "ItemList", "name": "[List Title]", "itemListOrder": "https://schema.org/ItemListOrderDescending", - Network accessline 231
"name": "[List Title]", "itemListOrder": "https://schema.org/ItemListOrderDescending", "numberOfItems": "[Count]", - Network accessline 232
"itemListOrder": "https://schema.org/ItemListOrderDescending",
skills/context-engine/self-healing-ops-guide.md
- Network accessline 203
"consecutive_failures": 2, "last_healthy_check": "2026-02-13T14:00:00Z", "page_url": "https://example.com/offer" - Network accessline 204
"last_healthy_check": "2026-02-13T14:00:00Z", "page_url": "https://example.com/offer" }, - Network accessline 205
"page_url": "https://example.com/offer"
skills/context-engine/seo-execution-guide.md
- Network accessline 60
| Custom SEO title field | SEO title | Map to your collection's custom SEO title field slug. | | Custom SEO description field | Meta description | Map to your collection's custom meta description field slug. | | Custom OG image field | Open - Network accessline 62
| Custom OG image field | Open Graph image | `{ "url": "https://...", "alt": "Description" }`. Must be publicly accessible. | - Network accessline 79
- **Endpoint**: `POST https://searchconsole.googleapis.com/v1/urlInspection/index:inspect` - Network accessline 80
- **Payload**: `{ "inspectionUrl": "https://example.com/page", "siteUrl": "https://example.com/" }` - Network accessline 86
- **Endpoint**: `POST https://indexing.googleapis.com/v3/urlNotifications:publish` - **Payload**: `{ "url": "https://example.com/page", "type": "URL_UPDATED" }` or `"type": "URL_DELETED"` - **Quota**: 200 publish requests per day per proper - Network accessline 87
- **Payload**: `{ "url": "https://example.com/page", "type": "URL_UPDATED" }` or `"type": "URL_DELETED"` - **Quota**: 200 publish requests per day per property (not 500 — the API documentation specifies 200 for most properties; high-volume - Network accessline 94
- **Endpoint**: `PUT https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}` - Network accessline 114
- **Create**: `POST /sites/{site_id}/redirects` with `{ "path": "/old-path", "target": "/new-path", "statusCode": 301 }` - **Bulk create**: Loop through redirect list with 100ms delay between requests (60 req/min rate limit) - **Validation* - Network accessline 115
- **Bulk create**: Loop through redirect list with 100ms delay between requests (60 req/min rate limit) - **Validation**: Path must start with `/`. Target can be relative (`/new-path`) or absolute (`https://example.com/new-path`) - **Plan l - Network accessline 116
- **Validation**: Path must start with `/`. Target can be relative (`/new-path`) or absolute (`https://example.com/new-path`) - Network accessline 141
2. **Validate schema** — Run through Schema.org validator (`https://validator.schema.org/`). Zero errors required. Warnings acceptable but should be minimized. - Network accessline 148
4. **Verify with Rich Results Test** — `https://search.google.com/test/rich-results` — confirm all schema types detected and eligible for rich results. Screenshot result for documentation. - Network accessline 211
- **Format**: `<link rel="alternate" hreflang="en-us" href="https://example.com/page" />`
skills/continuous-improvement-loop/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep
skills/cowork-setup/SKILL.md
- Network accessline 20
**`${CLAUDE_PLUGIN_DATA}` does not help here either.** Anthropic's plugin docs describe it as the persistent per-plugin storage path. In Cowork it resolves to a session-scoped VM mount that disappears the same way (open: [claude-code#51398]
skills/digital-pr/eeat-authority.md
- Network accessline 47
"@type": "Person", "name": "Author Name", "url": "https://yoursite.com/team/author-name", - Network accessline 48
"name": "Author Name", "url": "https://yoursite.com/team/author-name", "jobTitle": "Title", - Network accessline 49
"url": "https://yoursite.com/team/author-name", - Network accessline 51
"worksFor": {"@type": "Organization", "name": "Company"}, "alumniOf": {"@type": "Organization", "name": "University"}, "sameAs": ["https://linkedin.com/in/...", "https://twitter.com/..."], - Network accessline 52
"alumniOf": {"@type": "Organization", "name": "University"}, "sameAs": ["https://linkedin.com/in/...", "https://twitter.com/..."], "knowsAbout": ["Marketing", "SEO", "Content Strategy"] - Network accessline 53
"sameAs": ["https://linkedin.com/in/...", "https://twitter.com/..."],
skills/digital-pr/link-building-tactics.md
- Network accessline 219
| **Topic / Partial match** | 10–20% | "CRM comparison guide", "email marketing best practices" | Descriptive but not keyword-stuffed | | **Exact match** | < 5% | "best CRM software" | Use sparingly — high penalty risk if overused | | **Nak - Network accessline 221
| **Naked URL** | 5–10% | "https://acme.com/guide" | Common in references and citations |
skills/emerging-channels/podcast-marketing.md
- Network accessline 150
{ "@context": "https://schema.org", - Network accessline 151
"@context": "https://schema.org", - Network accessline 153
"name": "The SaaS Growth Show", "description": "Weekly conversations with SaaS founders and growth leaders...", "url": "https://example.com/podcast", - Network accessline 154
"description": "Weekly conversations with SaaS founders and growth leaders...", "url": "https://example.com/podcast", "author": { - Network accessline 155
"url": "https://example.com/podcast", - Network accessline 158
"name": "Host Name" }, "webFeed": "https://feeds.example.com/saas-growth-show" - Network accessline 159
}, "webFeed": "https://feeds.example.com/saas-growth-show" } - Network accessline 160
"webFeed": "https://feeds.example.com/saas-growth-show"
skills/emerging-channels/video-marketing.md
- Network accessline 102
{ "@context": "https://schema.org", - Network accessline 103
"@context": "https://schema.org", - Network accessline 105
"name": "How to Build a Social Media Strategy in 2025", "description": "Step-by-step guide to creating a social media strategy...", "thumbnailUrl": "https://example.com/thumbnails/social-strategy.jpg", - Network accessline 106
"description": "Step-by-step guide to creating a social media strategy...", "thumbnailUrl": "https://example.com/thumbnails/social-strategy.jpg", "uploadDate": "2025-03-15", - Network accessline 107
"thumbnailUrl": "https://example.com/thumbnails/social-strategy.jpg", - Network accessline 108
"uploadDate": "2025-03-15", "duration": "PT12M30S", "contentUrl": "https://example.com/videos/social-strategy.mp4", - Network accessline 109
"duration": "PT12M30S", "contentUrl": "https://example.com/videos/social-strategy.mp4", "embedUrl": "https://www.youtube.com/embed/xxxxx", - Network accessline 110
"contentUrl": "https://example.com/videos/social-strategy.mp4", - Network accessline 111
"embedUrl": "https://www.youtube.com/embed/xxxxx", - Network accessline 112
"interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WatchAction", - Network accessline 113
"@type": "InteractionCounter", "interactionType": "https://schema.org/WatchAction", "userInteractionCount": 15000 - Network accessline 114
"interactionType": "https://schema.org/WatchAction",
skills/emerging-channels/visual-search.md
- Network accessline 55
{ "@context": "https://schema.org", - Network accessline 56
"@context": "https://schema.org", - Network accessline 58
"name": "Women's Blue Leather Crossbody Bag", "image": [ "https://example.com/images/blue-crossbody-front.webp", - Network accessline 59
"image": [ "https://example.com/images/blue-crossbody-front.webp", "https://example.com/images/blue-crossbody-side.webp", - Network accessline 60
"https://example.com/images/blue-crossbody-front.webp", - Network accessline 61
"https://example.com/images/blue-crossbody-side.webp", - Network accessline 62
"https://example.com/images/blue-crossbody-detail.webp", - Network accessline 63
"https://example.com/images/blue-crossbody-lifestyle.webp" - Network accessline 72
"price": "129.00", "priceCurrency": "USD", "availability": "https://schema.org/InStock" - Network accessline 73
"priceCurrency": "USD", "availability": "https://schema.org/InStock" }, - Network accessline 74
"availability": "https://schema.org/InStock" - Network accessline 87
{ "@context": "https://schema.org", - Network accessline 88
"@context": "https://schema.org", - Network accessline 89
"@type": "ImageObject", "contentUrl": "https://example.com/images/blue-crossbody-front.webp", "name": "Women's Blue Leather Crossbody Bag — Front View", - Network accessline 90
"contentUrl": "https://example.com/images/blue-crossbody-front.webp", - Network accessline 93
"width": "1200", "height": "1200", "thumbnailUrl": "https://example.com/images/thumbs/blue-crossbody-front-thumb.webp" - Network accessline 94
"height": "1200", "thumbnailUrl": "https://example.com/images/thumbs/blue-crossbody-front-thumb.webp" } - Network accessline 95
"thumbnailUrl": "https://example.com/images/thumbs/blue-crossbody-front-thumb.webp"
skills/emerging-channels/voice-search.md
- Network accessline 66
<section itemscope itemtype="https://schema.org/FAQPage"> - Network accessline 67
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> - Network accessline 68
<h3 itemprop="name">How much does roof replacement cost?</h3> <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <p itemprop="text">The average roof replacement costs between $5,000 and $15,000 - Network accessline 69
<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> - Network accessline 87
{ "@context": "https://schema.org", - Network accessline 88
"@context": "https://schema.org", - Network accessline 96
] }, "url": "https://example.com/roof-replacement-cost" - Network accessline 97
}, "url": "https://example.com/roof-replacement-cost" } - Network accessline 98
"url": "https://example.com/roof-replacement-cost" - Network accessline 185
{ "@context": "https://schema.org", - Network accessline 186
"@context": "https://schema.org",
skills/engagement-workflow/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep Task
skills/four-core-documents/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep
skills/geo-monitor/SKILL.md
- Network accessline 22
| Surface | First-party data to import alongside the probe score | What it does NOT give you | |---|---|---| | **Copilot** (plus Bing and select partner AI experiences) | **Bing Webmaster Tools → AI Performance**:<br>• citations for your si - Network accessline 23
|---|---|---| | **Copilot** (plus Bing and select partner AI experiences) | **Bing Webmaster Tools → AI Performance**:<br>• citations for your site, and the grounding queries behind them<br>• **Intents**: grounding queries classed as Inform - Network accessline 24
| **Copilot** (plus Bing and select partner AI experiences) | **Bing Webmaster Tools → AI Performance**:<br>• citations for your site, and the grounding queries behind them<br>• **Intents**: grounding queries classed as Informational, Comme - Network accessline 25
| **AI Overviews, AI Mode** | Search Console generative AI performance report: impressions by page, country, date and device (`/digital-marketing-pro:gsc-ai-performance`) | Queries, clicks, CTR | | **AI Mode / AI Overviews / Gemini app shop - Network accessline 26
| **AI Mode / AI Overviews / Gemini app shopping** | Merchant Center **AI performance insights**: brand share of voice against similar brands across discovery, evaluation and purchase. Google said in May 2026 that it would roll out in the U - Network accessline 47
python "${CLAUDE_PLUGIN_ROOT}/scripts/geo-tracker.py" --brand {slug} --action audit-visibility --query "best project management tool for agencies" --platform ai-mode --result cited --context "AI Mode - Network accessline 51
--result cited \ --context "AI Mode named the brand and linked its comparison page" \ --url "https://brand.example/compare" - Network accessline 53
--url "https://brand.example/compare"
skills/growth-engineering/referral-systems.md
- Network accessline 79
https://yourapp.com/invite?ref=USER_ID&campaign=CAMPAIGN_NAME
skills/growth-plan/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep
skills/gsc-ai-performance/SKILL.md
- Network accessline 13
Google rolled out a new **GSC AI Performance Report** on **3 June 2026** ([Search Engine Land announcement](https://searchengineland.com/google-search-console-ai-performance-reports-and-controls-to-block-your-content-in-ai-responses-479298) - Network accessline 23
| Date range filtering | NEW | | **Click data** | **NOT INCLUDED** (Google explicitly excluded — important caveat for attribution) | | Search generative AI control | Settings → Search generative AI: excludes the site from AI Overviews, AI M - Network accessline 24
| **Click data** | **NOT INCLUDED** (Google explicitly excluded — important caveat for attribution) | | Search generative AI control | Settings → Search generative AI: excludes the site from AI Overviews, AI Mode and Discover's AI features. - Network accessline 25
| Search generative AI control | Settings → Search generative AI: excludes the site from AI Overviews, AI Mode and Discover's AI features. Google: not a ranking or inclusion signal for the rest of Search, no effect on AI training; worldwide - Network accessline 26
| API surface | **NOT YET PUBLISHED** — UI only: the Search Analytics API reference (last updated 2026-08-11, read 2026-10-28) has no field for it. `gsc-ai-performance.py --api` says so and carries a `recheck_after` date that a test enforce - Network accessline 27
| **Discover generative surfaces** | **NEW (June–July 2026)** — the report family now also covers generative AI features in Discover ([Google announcement](https://developers.google.com/search/blog/2026/06/gen-ai-performance-reports)) | - Network accessline 28
| Data availability | Backfilled from **18 May 2026**; access expanded broadly in July 2026, with a companion deep-dive help doc on AI controls | | Geographic rollout | UK first, then global ([source](https://searchengineland.com/google-sea - Network accessline 29
| Geographic rollout | UK first, then global ([source](https://searchengineland.com/google-search-console-ai-performance-reports-and-controls-to-block-your-content-in-ai-responses-479298)) | - Network accessline 30
| **Multimodal filter** | **NEW (September 2026)** — a `multimodal` search-type filter (Lens, Circle to Search, image uploads) appears in both the Search performance report and the generative AI report. It has **no Queries dimension**, and - Network accessline 40
| Question | First-party answer | Source | |---|---|---| | How often did Google show my pages in AI Overviews / AI Mode? | **Yes:** impressions in the Search Console generative AI performance report. You can group by Pages, Countries, Dates - Network accessline 41
|---|---|---| | How often did Google show my pages in AI Overviews / AI Mode? | **Yes:** impressions in the Search Console generative AI performance report. You can group by Pages, Countries, Dates, Devices and filter by search type (text / - Network accessline 42
| How often did Google show my pages in AI Overviews / AI Mode? | **Yes:** impressions in the Search Console generative AI performance report. You can group by Pages, Countries, Dates, Devices and filter by search type (text / multimodal). - Network accessline 43
| Which **queries** triggered those AI impressions? | **Does not exist.** The report has no Queries dimension | same | | How many **clicks**, and what **CTR**, came from AI Overviews / AI Mode? | **Does not exist** in Search Console. The re - Network accessline 44
| How many **clicks**, and what **CTR**, came from AI Overviews / AI Mode? | **Does not exist** in Search Console. The report shows impressions only | same; [Google Search Central blog](https://developers.google.com/search/blog/2026/06/gen- - Network accessline 45
| Can GA4 separate AI Overviews / AI Mode visits? | **No documented way.** GA4's Organic Search channel *includes* "Google's AI Overviews and AI Mode", and the AI Assistant channel *excludes* them. Google's channel page documents no dimensi - Network accessline 46
| Who sees the report? | Google: "As of August 31, 2026, we've rolled out these insights to all websites worldwide." If a property doesn't see it, the site may have too few AI-feature impressions or may be excluded from Search generative AI - Network accessline 51
Google's [AI optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide) points to this report as the way to measure generative AI visibility. It also warns that "No third-party tool has access to our i - Network accessline 139
- GA4's `AI Assistant` channel (rule: medium exactly matches `ai-assistant`) covers referrals from assistants such as ChatGPT, Gemini, Deepseek, Copilot and Grok. - Per Google's channel definitions (checked 2026-10-04), it **excludes Goo - Network accessline 140
- Per Google's channel definitions (checked 2026-10-04), it **excludes Google's AI Overviews and AI Mode**, which land in **Organic Search**. - So **no first-party tool reports clicks from AI Overviews or AI Mode**. Say so plainly rather - Network accessline 141
- So **no first-party tool reports clicks from AI Overviews or AI Mode**. Say so plainly rather than inferring a number. Source: [GA4 default channel group](https://support.google.com/analytics/answer/9756891).
skills/help/SKILL.md
skills/hreflang-check/SKILL.md
- Network accessline 31
- **(d) x-default tag present**: Check that an x-default hreflang annotation exists, pointing to the fallback page for users whose language does not match any specific hreflang. Typically points to the English version or a language selector - Network accessline 32
- **(e) No duplicate language codes**: Check that each page does not have multiple hreflang annotations with the same language-region code pointing to different URLs. Duplicate codes create ambiguity and search engines may ignore all annota - Network accessline 33
- **(f) URLs are absolute**: Verify all href values in hreflang annotations are absolute URLs (starting with https:// or http://), not relative paths. Relative URLs in hreflang are invalid per the specification. Severity: critical. - Network accessline 34
- **(g) URL consistency**: Check that all referenced URLs use consistent protocols (all HTTPS or all HTTP, not mixed), consistent www/non-www prefixes, and consistent trailing slash conventions. Inconsistencies may cause search engines to t - Network accessline 36
6. **Generate prioritized fix list with code snippets**: For every issue found, generate the specific corrected hreflang code. For missing self-referential tags: provide the exact `<link rel="alternate" hreflang="xx-XX" href="https://...">`
skills/influencer-brief/SKILL.md
- Network accessline 55
1. **Permitted AI use**: Allowed for B-roll, mood, and stylised visuals. **Not permitted for** synthetic depictions of real people (including the creator themselves in altered form), synthetic product imagery that misrepresents the brand's - Network accessline 56
2. **Required disclosures**: Any AI-generated visual or audio in the sponsored content must (a) be flagged in the creator's platform-native AI disclosure (TikTok AI label, Meta AI Content label, YouTube "AI use" setting at upload, where fil
skills/launch-ad-campaign/SKILL.md
- Network accessline 28
| Server | What DMP may do through it | |---|---| | `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks | - Network accessline 28
| Server | What DMP may do through it | |---|---| | `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks | - Network accessline 29
|---|---| | `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks | | `amazon-ads-mcp` — Amazon Ads MCP Server (open beta, p - Network accessline 29
|---|---| | `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks | | `amazon-ads-mcp` — Amazon Ads MCP Server (open beta, p - Network accessline 30
| `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks | - Network accessline 30
| `meta-ads` — Meta Ads AI Connectors, `https://mcp.facebook.com/ads` (open beta) | Create campaigns, ad sets and ads, set status, read results; catalogs and signal checks |
skills/launch-campaign/SKILL.md
- Broad permissionsline 1
Read Bash Glob Grep - Broad permissionsline 1
Read Bash Glob Grep - Network accessline 106
# Landing page check curl -sS -o /dev/null -w "%{http_code}" "{landing_url}" - Network accessline 106
# Landing page check curl -sS -o /dev/null -w "%{http_code}" "{landing_url}" - Network accessline 107
curl -sS -o /dev/null -w "%{http_code}" "{landing_url}" - Network accessline 107
curl -sS -o /dev/null -w "%{http_code}" "{landing_url}"
skills/local-seo/SKILL.md
- Network accessline 50
Source: [blog.google/search-io-2026](https://blog.google/products-and-platforms/products/search/search-io-2026/). Combine with the Google Ads API's `AssetGroup.google_local_services_info` field (added in v24.2) (see `skills/paid-advertising
skills/local-seo/multi-location.md
- Network accessline 335
{ "@context": "https://schema.org", - Network accessline 336
"@context": "https://schema.org", - Network accessline 337
"@type": "Organization", "name": "Acme Dental Group", "url": "https://www.acmedental.com", - Network accessline 338
"name": "Acme Dental Group", "url": "https://www.acmedental.com", "logo": "https://www.acmedental.com/logo.png", - Network accessline 339
"url": "https://www.acmedental.com", - Network accessline 340
"logo": "https://www.acmedental.com/logo.png", - Network accessline 341
"sameAs": [ "https://www.facebook.com/acmedental", "https://www.linkedin.com/company/acmedental" - Network accessline 342
"https://www.facebook.com/acmedental", - Network accessline 343
"https://www.linkedin.com/company/acmedental" - Network accessline 344
], "subOrganization": [ {"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lincoln-park/"}, - Network accessline 345
"subOrganization": [ {"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lincoln-park/"}, {"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lakeview/"} - Network accessline 346
{"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lincoln-park/"}, - Network accessline 347
{"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lakeview/"} - Network accessline 354
{ "@context": "https://schema.org", - Network accessline 355
"@context": "https://schema.org", - Network accessline 356
"@type": "Dentist", "@id": "https://www.acmedental.com/locations/chicago-lincoln-park/", "name": "Acme Dental - Lincoln Park", - Network accessline 357
"@id": "https://www.acmedental.com/locations/chicago-lincoln-park/", - Network accessline 360
"@type": "Organization", "name": "Acme Dental Group", "@id": "https://www.acmedental.com/" - Network accessline 361
"name": "Acme Dental Group", "@id": "https://www.acmedental.com/" }, - Network accessline 362
"@id": "https://www.acmedental.com/"
skills/media-plan/SKILL.md
- Network accessline 48
1. The Measurement Pixel **and** the server-side Conversions API are both live and deduplicated (pixel `event_id` = API `id`). 2. The target countries have been confirmed inside the brand's own Ads Manager. - The developer surface is - Network accessline 49
2. The target countries have been confirmed inside the brand's own Ads Manager. - The developer surface is primary-documented at [developers.openai.com/ads](https://developers.openai.com/ads). Launch dates and country rollout are secondar - Network accessline 50
- The developer surface is primary-documented at [developers.openai.com/ads](https://developers.openai.com/ads). Launch dates and country rollout are secondary-sourced; label them "reported, unverified" in the plan. - Network accessline 52
- In the measurement framework (step 7), state the attribution window next to the line: the Reporting API default is 30-day click / 1-day view. - **Google AI Mode: not a separate line item.** - Google reaches AI Mode inventory through **A - Network accessline 53
- **Google AI Mode: not a separate line item.** - Google reaches AI Mode inventory through **AI Max for Search, AI Max for Shopping, and Performance Max** ([blog.google](https://blog.google/products/ads-commerce/google-marketing-live-sear - Network accessline 54
- Google reaches AI Mode inventory through **AI Max for Search, AI Max for Shopping, and Performance Max** ([blog.google](https://blog.google/products/ads-commerce/google-marketing-live-search-ads/), 20 May 2026).
skills/paid-advertising/SKILL.md
- Network accessline 12
- **Google AI Max auto-upgrade:** Search campaigns using automatically created assets or campaign-level broad match **auto-upgrade to AI Max starting September 2026**; the Dynamic Search Ads (DSA) sunset and its auto-upgrade moved to **Febr - Network accessline 13
- **Google Ads Limited Ad Serving** now covers every surface (Search, YouTube, Gmail, Play, Discover), rolling out gradually through 2028 — new advertisers can see throttled delivery while trust builds. Source: [Ads policy](https://support. - Network accessline 14
- **LinkedIn Marketing API:** `202608` made the Matched Audiences API generally available (cap: 1,000 DMP segments per account), added account-level dynamic UTMs and MQL/SQL conversion types, and **sunset legacy geo on 31 Aug 2026**; `20260 - Network accessline 15
- **TikTok Upgraded Smart+ (checked 2026-10-27):** from **1 Jan 2027** the Marketing API stops creating non-Search **Legacy Manual Flow** campaigns (Sales, App Promotion, Lead Generation) through `/campaign/create/` and the matching ad grou - Network accessline 16
- **Amazon Ads (unBoxed, 30 Sep 2026):** an "Amazon Ads Agent" unifying DSP and the Ads Console, Full-Funnel Campaigns, Sponsored Services, and an **Amazon Ads MCP Server (Lite)** — a connector candidate for retail-media workflows. Source: - Network accessline 17
- **ChatGPT Ads — the developer surface is primary-documented (checked 2026-10-04):** [developers.openai.com/ads](https://developers.openai.com/ads) documents: - Network accessline 31
Source: [blog.google](https://blog.google/products/ads-commerce/google-marketing-live-search-ads/) (20 May 2026). Detail: [`ads-in-ai-answers.md`](ads-in-ai-answers.md). - Network accessline 50
**Google Ads:** DMP's templates use the version in `scripts/connector_resolver.py` API_VERSIONS (currently v26, released 14 Oct 2026; sunset November 2027). v26 makes `country_code` required when creating Local Services Performance Max camp - Network accessline 52
**Meta:** DMP's templates use the version in API_VERSIONS (currently v26.0, introduced 29 Jul 2026; v24.0 stops working on 10 Nov 2026 and v25.0 on 23 Feb 2027). Standalone Advantage+ Shopping / App campaigns can no longer be created via th
skills/paid-advertising/ads-in-ai-answers.md
- Network accessline 15
Source: [developers.openai.com/ads](https://developers.openai.com/ads), checked 2026-10-04. - Network accessline 21
| **Measurement Pixel** | Send conversion events from web pages | Browser-side; pair it with the Conversions API | | **Image Tag** | Send conversion events from HTML without JavaScript | Fallback for pages where scripts can't run | | **Conv - Network accessline 22
| **Image Tag** | Send conversion events from HTML without JavaScript | Fallback for pages where scripts can't run | | **Conversions API** | Server-to-server conversion events | OpenAI calls it "a more reliable tracking source than the pixe - Network accessline 23
| **Conversions API** | Server-to-server conversion events | OpenAI calls it "a more reliable tracking source than the pixel alone" ([docs](https://developers.openai.com/ads/conversions-api.md)) | - Network accessline 24
| **Custom Audiences** | Create, update, and combine customer audiences for targeting and bid adjustments | Customer lists only, with no pixel-built audiences. **Not available in the EEA or Switzerland** ([docs](https://developers.openai.co - Network accessline 25
| **Product Feeds** | Set up, update, and advertise a product catalog | CSV uploaded over SFTP ([docs](https://developers.openai.com/ads/product-feeds.md)) | - Network accessline 26
| **Delta Feeds API** | Update availability, titles, and prices for existing variants without re-uploading the catalog | Enabled per ad account ([docs](https://developers.openai.com/ads/delta-feeds.md)) | - Network accessline 58
Source: [Conversions API docs](https://developers.openai.com/ads/conversions-api.md), checked 2026-10-04. - Network accessline 82
Source: [Reporting API docs](https://developers.openai.com/ads/reporting.md), checked 2026-10-04. - Network accessline 128
Source: [blog.google — "A new generation of ads for the AI era of Search"](https://blog.google/products/ads-commerce/google-marketing-live-search-ads/) (20 May 2026), checked 2026-10-04. Primary.
skills/paid-advertising/google-ads.md
- Network accessline 9
DMP's request templates use the Google Ads API version in `scripts/connector_resolver.py` API_VERSIONS (currently v26, released 14 Oct 2026; Google lists its sunset as November 2027). Change the version there, never in prose: `tests/test_ap - Network accessline 11
**No developer token.** Google sunset developer tokens on 9 Sep 2026. API access now comes from the Google Cloud project that owns the OAuth client (or the service account), and the `developer-token` header "is optional and ignored by the A - Network accessline 26
| When | Change | Source | |---|---|---| | 23 Sep 2026 | New Smart campaigns can't be created; existing ones keep serving and can be updated | [deprecations](https://developers.google.com/google-ads/api/docs/deprecations) (updated 16 Oct 20 - Network accessline 27
|---|---|---| | 23 Sep 2026 | New Smart campaigns can't be created; existing ones keep serving and can be updated | [deprecations](https://developers.google.com/google-ads/api/docs/deprecations) (updated 16 Oct 2026) | | Sep 2026 | Manual l - Network accessline 28
| 23 Sep 2026 | New Smart campaigns can't be created; existing ones keep serving and can be updated | [deprecations](https://developers.google.com/google-ads/api/docs/deprecations) (updated 16 Oct 2026) | - Network accessline 29
| Sep 2026 | Manual language targeting (`CampaignCriterion.language`) can't be added or updated on Search, AI Max for Search, or Performance Max on Search; ads match on creative and landing-page language | same | | 4 Dec 2026 | Changes to i - Network accessline 30
| 4 Dec 2026 | Changes to image extraction for new Performance Max campaigns. Reported: extraction is on by default even when the account setting is off. Check the post for the opt-out field before relying on it | [Ads Developer Blog](https - Network accessline 31
| Feb 2027 | Existing call-only ads (`CallAdInfo`) stop serving, then API support is removed; use Responsive Search Ads with call assets | [deprecations](https://developers.google.com/google-ads/api/docs/deprecations) | - Network accessline 32
| Feb 2027 | Dynamic Search Ads sunset and auto-upgrade to AI Max | [blog.google](https://blog.google/products/ads-commerce/dsa-upgrade-to-ai-max-2026/) | - Network accessline 76
Source: [Google Ads API release notes](https://developers.google.com/google-ads/api/docs/release-notes).
skills/paid-advertising/meta-ads.md
- Network accessline 21
> ⚠<U+FE0F> **Marketing API v25 deprecation (in effect):** standalone **Advantage+ Shopping (ASC)** and **Advantage+ App (AAC)** campaigns can no longer be created or updated via the Marketing API — the block started with v25.0 (Feb 2026) and exte
skills/reputation-management/review-management-platforms.md
skills/save-knowledge/SKILL.md
- Access to secretsline 31
[Credential-related source omitted]
skills/seo-audit/SKILL.md
- Network accessline 17
**Status as of 2026-10-04 (time-boxed — re-check after ~2026-12):** per the [Google Search Status Dashboard](https://status.search.google.com/summary), the most recent **core** update began **21 May 2026** (completed after ~12 days). Since
skills/seo-audit/evals/evals.json
- Network accessline 4
{ "id": 0, "prompt": "/digital-marketing-pro:seo-audit https://example.com", - Network accessline 5
"id": 0, "prompt": "/digital-marketing-pro:seo-audit https://example.com", "expected_output": "A comprehensive SEO audit covering technical health, on-page optimization, content quality, E-E-A-T signals, and prioritized action i - Network accessline 6
"prompt": "/digital-marketing-pro:seo-audit https://example.com",
skills/share-of-voice/x-twitter-source-evidence.md
- Network accessline 46
exports, platform search exports, compliant public datasets, reviewed URL lists, or an installed TweetClaw collection helper. 4. Optional helper: [TweetClaw](https://github.com/Xquik-dev/tweetclaw) - Network accessline 47
lists, or an installed TweetClaw collection helper. 4. Optional helper: [TweetClaw](https://github.com/Xquik-dev/tweetclaw) (`@xquik/tweetclaw` on npm) - Network accessline 48
4. Optional helper: [TweetClaw](https://github.com/Xquik-dev/tweetclaw)
skills/sitemap-manager/SKILL.md
- Network accessline 18
Provide a sitemap URL (e.g., `https://example.com/sitemap.xml`) to audit: - Network accessline 75
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 76
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 77
<url> <loc>https://example.com/page</loc> <lastmod>2026-03-15</lastmod> - Network accessline 78
<loc>https://example.com/page</loc> - Network accessline 86
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 87
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 88
<sitemap> <loc>https://example.com/sitemap-pages.xml</loc> <lastmod>2026-03-15</lastmod> - Network accessline 89
<loc>https://example.com/sitemap-pages.xml</loc> - Network accessline 91
</sitemap> <sitemap> <loc>https://example.com/sitemap-blog.xml</loc> - Network accessline 92
<sitemap> <loc>https://example.com/sitemap-blog.xml</loc> <lastmod>2026-03-28</lastmod> - Network accessline 93
<loc>https://example.com/sitemap-blog.xml</loc>
skills/status/SKILL.md
skills/tech-seo-audit/SKILL.md
- Network accessline 17
**Status as of 2026-10-04 (time-boxed — re-check after ~2026-12):** per the [Google Search Status Dashboard](https://status.search.google.com/summary), the most recent **core** update began **21 May 2026** (completed after ~12 days). Since - Network accessline 21
- **Run this audit anyway** — updates surface pre-existing technical debt because relative quality matters more during reweighting. Crawl-budget waste on low-quality pages, broken canonical chains, soft-404s, and orphaned JS-rendered routes - Network accessline 23
- **Hreflang, structured data, and Core Web Vitals carry their normal weight.** Two structured-data notes from Google's docs changelog: `VideoObject` gained a `creator` property (24 Sep 2026), and review snippets got a guideline against fak - Network accessline 72
- **Don't fix what isn't broken.** A site at 95th-percentile CWV doesn't need re-engineering — that effort is better spent on content. Tech-SEO is necessary, not sufficient. - **Robots.txt + meta robots conflicts** are common. If both fire, - Network accessline 73
- **Robots.txt + meta robots conflicts** are common. If both fire, Google obeys the most restrictive. Always cross-check. - **Check the CDN's bot settings, not just robots.txt.** On Cloudflare (headers `server: cloudflare` or `cf-ray`), the - Network accessline 74
- **Check the CDN's bot settings, not just robots.txt.** On Cloudflare (headers `server: cloudflare` or `cf-ray`), the AI crawler controls changed on 15 Sep 2026: **Block** and **Block on pages with ads** now also stop Googlebot, Bingbot an
skills/technical-seo/crawlability.md
- Network accessline 26
Sitemap: https://example.com/sitemap-index.xml - Network accessline 55
- **Google Search Console > Settings > robots.txt report**: Shows which robots.txt files Google found, fetch status, and parsing errors (the old standalone Robots.txt Tester was retired). For testing specific URLs against rules, use a third - Network accessline 56
- **Bing Webmaster Tools**: Similar testing functionality for Bingbot rules - Robots.txt must be served at the root of the domain: `https://example.com/robots.txt` - Must return HTTP 200. If it returns 5xx, Google treats it as a temporary a - Network accessline 57
- Robots.txt must be served at the root of the domain: `https://example.com/robots.txt` - Network accessline 73
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 74
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 75
<url> <loc>https://example.com/page-1</loc> <lastmod>2025-11-15</lastmod> - Network accessline 76
<loc>https://example.com/page-1</loc> - Network accessline 86
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 87
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - Network accessline 88
<sitemap> <loc>https://example.com/sitemap-products.xml</loc> <lastmod>2025-11-15</lastmod> - Network accessline 89
<loc>https://example.com/sitemap-products.xml</loc> - Network accessline 91
</sitemap> <sitemap> <loc>https://example.com/sitemap-blog.xml</loc> - Network accessline 92
<sitemap> <loc>https://example.com/sitemap-blog.xml</loc> <lastmod>2025-11-10</lastmod> - Network accessline 93
<loc>https://example.com/sitemap-blog.xml</loc> - Network accessline 124
<url> <loc>https://example.com/product-page</loc> - Network accessline 125
<loc>https://example.com/product-page</loc> - Network accessline 126
<image:image> <image:loc>https://example.com/images/product.jpg</image:loc> <image:title>Product Name</image:title> - Network accessline 127
<image:loc>https://example.com/images/product.jpg</image:loc> - Network accessline 136
<url> <loc>https://example.com/video-page</loc> - Network accessline 137
<loc>https://example.com/video-page</loc> - Network accessline 138
<video:video> <video:thumbnail_loc>https://example.com/thumb.jpg</video:thumbnail_loc> <video:title>Video Title</video:title> - Network accessline 139
<video:thumbnail_loc>https://example.com/thumb.jpg</video:thumbnail_loc> - Network accessline 140
<video:title>Video Title</video:title> <video:description>Video description</video:description> <video:content_loc>https://example.com/video.mp4</video:content_loc> - Network accessline 141
<video:description>Video description</video:description> <video:content_loc>https://example.com/video.mp4</video:content_loc> <video:duration>600</video:duration> - Network accessline 142
<video:content_loc>https://example.com/video.mp4</video:content_loc>
skills/technical-seo/indexation.md
- Network accessline 17
<link rel="canonical" href="https://example.com/preferred-page"> - Network accessline 22
Link: <https://example.com/preferred-page>; rel="canonical" - Network accessline 27
1. **Self-referencing canonicals**: Every indexable page should have a canonical tag pointing to itself. This prevents issues from URL parameters, tracking codes, or session IDs creating duplicate URLs that Google discovers through external - Network accessline 28
2. **Canonical must be an absolute URL**: `href="https://example.com/page"` not `href="/page"` - Network accessline 52
<!-- On syndication-partner.com --> <link rel="canonical" href="https://original-publisher.com/article"> - Network accessline 53
<link rel="canonical" href="https://original-publisher.com/article"> - Network accessline 143
**Exact duplicates**: Identical content accessible at multiple URLs - `http://` vs `https://` - Network accessline 144
- `http://` vs `https://` - Network accessline 281
This tool is available to anyone, not just site owners: `https://search.google.com/search-console/remove-outdated-content`
skills/technical-seo/international-seo.md
- Network accessline 74
<link rel="alternate" hreflang="en-us" href="https://example.com/page"> - Network accessline 75
<link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page"> - Network accessline 76
<link rel="alternate" hreflang="de" href="https://example.com/de/page"> - Network accessline 77
<link rel="alternate" hreflang="fr" href="https://example.com/fr/page"> - Network accessline 78
<link rel="alternate" hreflang="x-default" href="https://example.com/page"> - Network accessline 86
Link: <https://example.com/page>; rel="alternate"; hreflang="en-us", - Network accessline 87
<https://example.com/uk/page>; rel="alternate"; hreflang="en-gb", - Network accessline 88
<https://example.com/de/page>; rel="alternate"; hreflang="de", - Network accessline 89
<https://example.com/fr/page>; rel="alternate"; hreflang="fr", - Network accessline 90
<https://example.com/page>; rel="alternate"; hreflang="x-default" - Network accessline 98
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" - Network accessline 99
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" - Network accessline 100
xmlns:xhtml="http://www.w3.org/1999/xhtml"> - Network accessline 101
<url> <loc>https://example.com/page</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://example.com/page"/> - Network accessline 102
<loc>https://example.com/page</loc> - Network accessline 103
<xhtml:link rel="alternate" hreflang="en-us" href="https://example.com/page"/> - Network accessline 104
<xhtml:link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page"/> - Network accessline 105
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page"/> - Network accessline 106
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page"/> - Network accessline 107
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page"/> - Network accessline 108
</url> <url> <loc>https://example.com/uk/page</loc> - Network accessline 109
<url> <loc>https://example.com/uk/page</loc> <xhtml:link rel="alternate" hreflang="en-us" href="https://example.com/page"/> - Network accessline 110
<loc>https://example.com/uk/page</loc> - Network accessline 111
<xhtml:link rel="alternate" hreflang="en-us" href="https://example.com/page"/> - Network accessline 112
<xhtml:link rel="alternate" hreflang="en-gb" href="https://example.com/uk/page"/> - Network accessline 113
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page"/> - Network accessline 114
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page"/> - Network accessline 115
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/page"/>
skills/technical-seo/site-architecture.md
- Network accessline 205
<nav aria-label="Breadcrumb"> <ol itemscope itemtype="https://schema.org/BreadcrumbList"> - Network accessline 206
<ol itemscope itemtype="https://schema.org/BreadcrumbList"> - Network accessline 207
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> - Network accessline 209
<meta itemprop="position" content="1"> </li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> - Network accessline 210
</li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/technical-seo"><span itemprop="name">Technical SEO</span></a> - Network accessline 211
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> - Network accessline 213
<meta itemprop="position" content="2"> </li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> - Network accessline 214
</li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <span itemprop="name">Core Web Vitals</span> - Network accessline 215
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> - Network accessline 226
{ "@context": "https://schema.org", - Network accessline 227
"@context": "https://schema.org", - Network accessline 228
"@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/"}, - Network accessline 229
"itemListElement": [ {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/"}, {"@type": "ListItem", "position": 2, "name": "Technical SEO", "item": "https://example.com/technical-seo"}, - Network accessline 230
{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/"}, - Network accessline 231
{"@type": "ListItem", "position": 2, "name": "Technical SEO", "item": "https://example.com/technical-seo"},
skills/validate-profile/SKILL.md
- Broad permissionsline 1
Read Bash Glob Grep - Broad permissionsline 1
Read Bash Glob Grep - Broad permissionsline 1
Read Bash Glob Grep - Network accessline 34
| **Guardrails** | `guardrails.prohibited_terms` + `guardrails.prohibited_claims` non-empty. `brand-setup` does not create this block, so report it as a WARNING with the exact command to add it for an unregulated brand, and reserve BLOCKER - Network accessline 34
| **Guardrails** | `guardrails.prohibited_terms` + `guardrails.prohibited_claims` non-empty. `brand-setup` does not create this block, so report it as a WARNING with the exact command to add it for an unregulated brand, and reserve BLOCKER - Network accessline 34
| **Guardrails** | `guardrails.prohibited_terms` + `guardrails.prohibited_claims` non-empty. `brand-setup` does not create this block, so report it as a WARNING with the exact command to add it for an unregulated brand, and reserve BLOCKER - Network accessline 35
| **Compliance jurisdictions** | Each declared jurisdiction has a matching rules entry in `skills/context-engine/compliance-rules.md` | BLOCKER | | **Connector config present** | Every connector named in `tracking.backend`, `integrations.*` - Network accessline 35
| **Compliance jurisdictions** | Each declared jurisdiction has a matching rules entry in `skills/context-engine/compliance-rules.md` | BLOCKER | | **Connector config present** | Every connector named in `tracking.backend`, `integrations.*` - Network accessline 35
| **Compliance jurisdictions** | Each declared jurisdiction has a matching rules entry in `skills/context-engine/compliance-rules.md` | BLOCKER | | **Connector config present** | Every connector named in `tracking.backend`, `integrations.*` - Network accessline 36
| **Connector config present** | Every connector named in `tracking.backend`, `integrations.*`, `analytics.*` has its env vars / `.mcp.json` entry present (local check; live reachability comes from the MCP/curl probe below) | BLOCKER per un - Network accessline 36
| **Connector config present** | Every connector named in `tracking.backend`, `integrations.*`, `analytics.*` has its env vars / `.mcp.json` entry present (local check; live reachability comes from the MCP/curl probe below) | BLOCKER per un - Network accessline 36
| **Connector config present** | Every connector named in `tracking.backend`, `integrations.*`, `analytics.*` has its env vars / `.mcp.json` entry present (local check; live reachability comes from the MCP/curl probe below) | BLOCKER per un - Network accessline 83
`connector-status.py --probe-only` runs a **local** readiness check: it verifies that the required environment variables / `.mcp.json` entry for each connector are present and non-empty. It does NOT open a live network connection or make a - Network accessline 83
`connector-status.py --probe-only` runs a **local** readiness check: it verifies that the required environment variables / `.mcp.json` entry for each connector are present and non-empty. It does NOT open a live network connection or make a - Network accessline 83
`connector-status.py --probe-only` runs a **local** readiness check: it verifies that the required environment variables / `.mcp.json` entry for each connector are present and non-empty. It does NOT open a live network connection or make a - Network accessline 85
For MCP servers in `.mcp.json` (if present at the brand or project level), run a `tools/list` ping against each via `mcp__connector__*` if the connector is loaded, or invoke a 5-second curl HEAD against the configured `url` for HTTP MCPs: - Network accessline 85
For MCP servers in `.mcp.json` (if present at the brand or project level), run a `tools/list` ping against each via `mcp__connector__*` if the connector is loaded, or invoke a 5-second curl HEAD against the configured `url` for HTTP MCPs: - Network accessline 85
For MCP servers in `.mcp.json` (if present at the brand or project level), run a `tools/list` ping against each via `mcp__connector__*` if the connector is loaded, or invoke a 5-second curl HEAD against the configured `url` for HTTP MCPs: - Network accessline 88
for url in $(jq -r '.mcpServers[] | select(.type=="http") | .url' .mcp.json); do code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000") - Network accessline 88
for url in $(jq -r '.mcpServers[] | select(.type=="http") | .url' .mcp.json); do code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000") - Network accessline 88
for url in $(jq -r '.mcpServers[] | select(.type=="http") | .url' .mcp.json); do code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000") - Network accessline 89
code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000") - Network accessline 89
code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000") - Network accessline 89
code=$(curl -sS -o /dev/null -w "%{http_code}" -m 5 "$url" || echo "000")
skills/video-packaging/SKILL.md
- Network accessline 104
- **No templated packaging across a channel.** YouTube treats repetitive or mass-produced content as "inauthentic content", ineligible for monetisation (policy update 2025-07-15, [YouTube Help 1311392](https://support.google.com/youtube - Network accessline 105
mass-produced content as "inauthentic content", ineligible for monetisation (policy update 2025-07-15, [YouTube Help 1311392](https://support.google.com/youtube/answer/1311392), read 2026-10-28): every pair is written for its own video. - Network accessline 106
(policy update 2025-07-15, [YouTube Help 1311392](https://support.google.com/youtube/answer/1311392), read - Network accessline 108
- **Disclose realistic AI imagery.** Realistic AI-generated or altered people, places or events need YouTube's "AI use" disclosure at upload; files carrying C2PA metadata may be labelled automatically ([YouTube Help 14328491](https://su - Network accessline 109
places or events need YouTube's "AI use" disclosure at upload; files carrying C2PA metadata may be labelled automatically ([YouTube Help 14328491](https://support.google.com/youtube/answer/14328491), read 2026-10-28). - Network accessline 110
C2PA metadata may be labelled automatically ([YouTube Help 14328491](https://support.google.com/youtube/answer/14328491),
skills/yearly-planner/SKILL.md
- Broad permissionsline 1
Read Write Edit Bash Glob Grep
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 8 facts
- Contacts claude.ai, which SKILL.md, the README and the plugin manifest do not mentionscripts/ai-visibility-checker.py:122High confidence
- Contacts business-api.tiktok.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:108High confidence
- Contacts docs.x.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:127High confidence
- Contacts developers.klaviyo.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:135High confidence
- Contacts ads-api.twitter.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:144High confidence
- Contacts api.linkedin.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:274High confidence
- Contacts a.klaviyo.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:326High confidence
- Contacts api.hubapi.com, which SKILL.md, the README and the plugin manifest do not mentionscripts/connector_resolver.py:337High confidence
Signal confidence: 492 facts
- Executable script in code of a file that runsscripts/ad-budget-pacer.py:1High confidence
- Executable script in code of a file that runsscripts/agent-readiness-audit.py:1High confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:38Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:39Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:40Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:41Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:42Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:43Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:44Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:45Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:46Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:47Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:48Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:49Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:50Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:51Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:52Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:53Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:54Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:55Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:64Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:65Low confidence
- Network access in prose of a file that runsscripts/agent-readiness-audit.py:66Low confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:94High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:96High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:103High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:104High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:105High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:107High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:108High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:109High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:110High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:111High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:112High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:113High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:114High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:115High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:116High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:117High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:118High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:119High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:120High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:121High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:122High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:123High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:124High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:125High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:126High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:127High confidence
- Network access in code of a file that runsscripts/agent-readiness-audit.py:129High confidence
and 442 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/plugin.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/ab-test-plan/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Manifest gemini-extension.json | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/ab-test-plan/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/ab-test-plan/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/indranilbanerjee-digital-marketing-pro/)