$npx -y skills add indranilbanerjee/digital-marketing-pro --skill checkRun the unified pre-publish quality gate on marketing content — hallucination detection, claim verification, brand voice scoring, structure validation. Use before publishing any marketing copy.
| 1 | # /digital-marketing-pro:check — Unified Pre-Publish Quality Gate |
| 2 | |
| 3 | 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. |
| 4 | |
| 5 | ## Context efficiency |
| 6 | |
| 7 | 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. |
| 8 | |
| 9 | Use this skill **before publishing any marketing content** — blog posts, ad copy, emails, social posts, landing pages, press releases, or any branded copy. |
| 10 | |
| 11 | ## Why this skill exists |
| 12 | |
| 13 | An earlier version shipped a global PreToolUse hook that auto-ran a hallucination + brand-compliance check on every Write/Edit operation in every project. That hook was removed because it fired globally across all plugins and projects (Slack writes, GitHub PRs, code edits — all of it), causing friction in non-marketing work. |
| 14 | |
| 15 | `/digital-marketing-pro:check` replaces that automatic gate with an **explicit user-invoked gate**. The work is the same; the trigger is intentional. |
| 16 | |
| 17 | ## What the check evaluates |
| 18 | |
| 19 | The check delegates to `scripts/eval-runner.py` (the master eval orchestrator) which calls four sibling scripts: |
| 20 | |
| 21 | | Dimension | Script | What it checks | |
| 22 | |---|---|---| |
| 23 | | **Hallucination** | `hallucination-detector.py` | Unattributed statistics, placeholder URLs (example.com / your-site.com), unsupported superlatives ("best", "#1", "leading"), fabricated citations | |
| 24 | | **Claims** | `claim-verifier.py` (when `--evidence` provided) | Cross-checks specific claims against a user-provided evidence file | |
| 25 | | **Brand voice** | `brand-voice-scorer.py` (when `--brand` provided) | Scores content against the active brand's voice profile (formality, energy, humor, authority, prefer/avoid words) | |
| 26 | | **Structure** | `output-validator.py` (when `--schema` provided) | Validates content matches expected schema (blog_post, email, ad_copy, social_post, landing_page, press_release, content_brief, campaign_plan) | |
| 27 | | **C2PA provenance** (compliance) | `embed-c2pa.py` (presence check) | When the brand's `target_markets` include an EU/EEA jurisdiction AND an accompanying asset is AI-generated: verifies a C2PA provenance manifest is present and valid. Missing or invalid manifest → **CRITICAL / BLOCKED** (EU AI Act Article 50, applies from 2 Aug 2026) | |
| 28 | |
| 29 | Plus content quality and readability scoring (always run). |
| 30 | |
| 31 | ## Subcommands and modes |
| 32 | |
| 33 | ### Default (run-quick) |
| 34 | |
| 35 | ``` |
| 36 | /digital-marketing-pro:check <file-path-or-content> |
| 37 | ``` |
| 38 | |
| 39 | Runs the **quick eval**: hallucination detection + content quality + readability. Fast (~2 seconds), zero external dependencies. Use this for routine checks. |
| 40 | |
| 41 | ### Full eval (run-full) |
| 42 | |
| 43 | ``` |
| 44 | /digital-marketing-pro:check <file-path-or-content> --full |
| 45 | ``` |
| 46 | |
| 47 | Runs all 6 dimensions: hallucination + claims (if evidence provided) + brand voice (if brand provided) + structure (if schema provided) + content quality + readability. Use before publishing anything client-facing or external. |
| 48 | |
| 49 | ### Compliance-focused (run-compliance) |
| 50 | |
| 51 | ``` |
| 52 | /digital-marketing-pro:check <file-path-or-content> --compliance --brand <slug> [--evidence <path>] [--schema <name>] |
| 53 | ``` |
| 54 | |
| 55 | Runs hallucination + claims + brand voice + structure. Best for regulated industries (healthcare, financial services, alcohol, cannabis, gambling) where claim substantiation and brand-voice fidelity matter most. |
| 56 | |
| 57 | ### With evidence file |
| 58 | |
| 59 | ``` |
| 60 | /digital-marketing-pro:check <file-path> --evidence <evidence-file.json> |
| 61 | ``` |
| 62 | |
| 63 | When the content makes specific claims you want to substantiate, provide a JSON evidence file: |
| 64 | |
| 65 | ```json |
| 66 | { |
| 67 | "evidence": [ |
| 68 | { |
| 69 | "claim": "50% increase in conversions", |
| 70 | "source": "GA4 Q4 report", |
| 71 | "date": "2025-12-31", |
| 72 | "verified": true |
| 73 | }, |
| 74 | { |
| 75 | "claim": "Trusted by Fortune 500 companies", |
| 76 | "source": "Customer roster (internal)", |
| 77 | "date": "2026-04-01", |
| 78 | "verified": true |
| 79 | } |
| 80 | ] |
| 81 | } |
| 82 | ``` |
| 83 | |
| 84 | The check will extract every claim from the content and flag any that don't match an evidence entry. |
| 85 | |
| 86 | ### With schema validation |
| 87 | |
| 88 | ``` |
| 89 | /digital-marketing-pro:check <file-path> --schema blog_post |
| 90 | ``` |
| 91 | |
| 92 | Validates the content matches the structural requirements of the named schema. Available schemas: `blog_post`, `email`, `ad_copy`, `so |