Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand)…

MITAuto-check: notesWriting & Content

Install Check

skills CLI
$ npx skills add indranilbanerjee/digital-marketing-pro --skill check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install indranilbanerjee/digital-marketing-pro check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/check .claude/skills/check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
check
GitHub stars
855
Used in
1 other repo
Token cost
~4.4k tokens
SKILL.md length
1,494 words
Files
1
Skills in repo
162
Repo updated
First seen
Licence
MIT

At a glance

Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand)…

  • Works in 2 steps: The active (or --brand) profile's… → An accompanying asset is declared…
  • /digital-marketing-pro:check
  • SKILL.md covers Context efficiency, Why this skill exists, What the check evaluates and Subcommands and modes, plus 10 more sections
  • Calls python

What it does

Check is an agent skill from indranilbanerjee/digital-marketing-pro. Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand), structure (with --schema), content quality, and readability, plus a C2PA provenance check for AI assets in EU-targeted campaigns; returns a composite score with a PASS / WARN / BLOCKED decision and per-issue fix suggestions. Reports only — it never edits the content. Triggers on "/digital-marketing-pro:check", "is this…

Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Brand voice and tone, Quality gates and Plain language and style rules. The repository describes itself as: An open-source AI marketing operating system for strategy, SEO, AEO/GEO, paid media, content, CRM, and analytics - grounded in brand context, human approval, and verifiable… The licence is MIT.

When your agent uses it

  • /digital-marketing-pro:check
  • Is this safe to publish
  • Run a hallucination check on this draft
  • Validate this copy against the brand voice

Example prompts

  • “/digital-marketing-pro:check”
  • “is this safe to publish”
  • “run a hallucination check on this draft”
  • “/check”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read, Bash, Glob, Grep

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. The active (or --brand) profile's target_markets include any EU/EEA jurisdiction, and
  2. An accompanying asset is declared AI-generated — either the file metadata says so, or the --evidence JSON declares ai_generated: true for…

What it can do on your machine

Read from SKILL.md and the folder at commit 3343924. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Check loads about 4.4k tokens when it runs. Until then it costs about 195 tokens; SKILL.md has 1,494 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~195
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from indranilbanerjee/digital-marketing-pro at commit 3343924, republished under its MIT licence (© indranilbanerjee). 1,494 words, ~4,364 tokens.

Download SKILL.mdSave it as .claude/skills/check/SKILL.md (or your agent's skills folder).
name
check
description
Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand), structure (with --schema), content quality, and readability, plus a C2PA provenance check for AI assets in EU-targeted campaigns; returns a composite score with a PASS / WARN / BLOCKED decision and per-issue fix suggestions. Reports only — it never edits the content. Triggers on "/digital-marketing-pro:check", "is this safe to publish", "run a hallucination check on this draft", "validate this copy against the brand voice", "pre-publish quality gate". Resolves the active brand profile automatically; pairs with /digital-marketing-pro:c2pa-metadata to fix missing manifests.
allowed-tools
Read, Bash, Glob, Grep
user-invocable
true
argument-hint
<file-or-content> [--full|--compliance] [--brand <slug>] [--evidence <path>] [--schema <name>]

/digital-marketing-pro:check — Unified Pre-Publish Quality Gate

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

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.

/digital-marketing-pro:check replaces that automatic gate with an explicit user-invoked gate. The work is the same; the trigger is intentional.

What the check evaluates

The check delegates to scripts/eval-runner.py (the master eval orchestrator) which calls four sibling scripts:

DimensionScriptWhat it checks
Hallucinationhallucination-detector.pyUnattributed statistics, placeholder URLs (example.com / your-site.com), unsupported superlatives ("best", "#1", "leading"), fabricated citations
Claimsclaim-verifier.py (when --evidence provided)Cross-checks specific claims against a user-provided evidence file
Brand voicebrand-voice-scorer.py (when --brand provided)Scores content against the active brand's voice profile (formality, energy, humor, authority, prefer/avoid words)
Structureoutput-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)
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)

Plus content quality and readability scoring (always run).

Subcommands and modes

Default (run-quick)
/digital-marketing-pro:check <file-path-or-content>

Runs the quick eval: hallucination detection + content quality + readability. Fast (~2 seconds), zero external dependencies. Use this for routine checks.

Full eval (run-full)
/digital-marketing-pro:check <file-path-or-content> --full

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.

Compliance-focused (run-compliance)
/digital-marketing-pro:check <file-path-or-content> --compliance --brand <slug> [--evidence <path>] [--schema <name>]

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.

With evidence file
/digital-marketing-pro:check <file-path> --evidence <evidence-file.json>

When the content makes specific claims you want to substantiate, provide a JSON evidence file:

json
{
  "evidence": [
    {
      "claim": "50% increase in conversions",
      "source": "GA4 Q4 report",
      "date": "2025-12-31",
      "verified": true
    },
    {
      "claim": "Trusted by Fortune 500 companies",
      "source": "Customer roster (internal)",
      "date": "2026-04-01",
      "verified": true
    }
  ]
}

The check will extract every claim from the content and flag any that don't match an evidence entry.

With schema validation
/digital-marketing-pro:check <file-path> --schema blog_post

Validates the content matches the structural requirements of the named schema. Available schemas: blog_post, email, ad_copy, social_post, landing_page, press_release, content_brief, campaign_plan. Use --schema list to see all schemas with their requirements.

With brand voice check
/digital-marketing-pro:check <file-path> --brand acme

Scores the content against the brand voice profile at ~/.claude-marketing/brands/acme/profile.json. Reports per-dimension breakdown (formality, energy, humor, authority) plus deviation from prefer/avoid word lists.

Output format

The check returns a unified report:

DM CHECK REPORT — <file or content snippet>
=============================================

Composite Score: 73.4 / 100  (Grade: B-)
Auto-Reject: NO

Dimensions:
  Hallucination ............ 96/100  PASS  (weight 0.40)
  Content Quality .......... 78/100  PASS  (weight 0.35)
  Readability .............. 65/100  PASS  (weight 0.25)

Issues Found:
  CRITICAL: None
  WARNING (2):
    - Line 14: Unattributed statistic "76% of buyers prefer..."
      Suggestion: cite source or rephrase as observation
    - Line 22: Superlative "best in class" without substantiation
      Suggestion: replace with measurable claim or proof point

Decision: PASS — safe to publish but address WARNINGs first

If any CRITICAL issue is found, decision = BLOCKED and the user is asked to fix before publishing.

Decision rules
  • PASS — no CRITICAL issues and the composite score is above the auto-reject threshold (auto_reject_threshold, default 40)
  • WARN — no CRITICAL issues but at least one WARNING; the user should address it before publishing
  • BLOCKED — at least one CRITICAL issue (e.g. placeholder URL, fabricated statistic in a headline, missing required disclaimer for a regulated industry, missing C2PA provenance manifest on an AI-generated asset in an EU-targeted campaign); the content cannot publish until fixed

AI-tell scans (advisory section, never scored)

Alongside the eval-runner scorers, run both tell scans and report them as a single ADVISORY section of the check output:

bash
python "${CLAUDE_PLUGIN_ROOT}/scripts/ai-tell-scan.py"          --file <input>   # Tier 1: surface
python "${CLAUDE_PLUGIN_ROOT}/scripts/structural-tell-scan.py"  --file <input>   # Tier 2: structure
  • Tier 1 (surface) — LLM-favored vocabulary, significance markers, soft-adverb clusters, connective and participial openers, em-dash density, ungrounded one-liners. Report the overall LOW/MODERATE/HIGH rating and the flagged sentences with their suggested fix. Significance markers are reported with "fix": "Delete this sentence; do not reword it." — pass that through verbatim, because rewording is the wrong remedy.
  • Tier 2 (structure) — the overall OK/NOTE/ATTENTION band plus each NOTE/ATTENTION finding with its spans (moralizing, section symmetry, parallel headings, specificity, stance, paragraph evenness, entity development). For entity_development, always carry through that the fix is to develop an existing specific, never to delete specifics.

This whole section NEVER affects the PASS/WARN/BLOCKED decision. Both scripts keep their thresholds inside themselves, deliberately outside the eval config, because these are editorial judgment calls for a human editor, not publish gates — and because a detector proxy has a real false-positive rate on genuinely human writing. (The one place a tell scan does gate is the content-engine's humanize_passed, and only on the two tells precise enough to gate on: significance_marker and soft_adverb_cluster. llm_favored_word was dropped from that set on 2026-08-15 after it was measured firing only on prose published before ChatGPT existed and never on model prose. That gate is a density floor — measured, it fails no published human writing and catches no unedited model prose — so never report a pass as evidence that a piece reads human.) Both scans measure visible text only; neither can see, and neither has any relationship to, any statistical watermark.

Show full SKILL.md (651 more words)Show less

EU AI Act Article 50 — C2PA provenance gate

The check gains a compliance dimension for AI-generated assets in EU-targeted campaigns. It fires when both conditions hold:

  1. The active (or --brand) profile's target_markets include any EU/EEA jurisdiction, and
  2. An accompanying asset is declared AI-generated — either the file metadata says so, or the --evidence JSON declares ai_generated: true for it.

When both hold, the gate runs a C2PA manifest presence check on the asset via embed-c2pa.py (presence/verify mode — it does not modify the asset). A missing or invalid C2PA provenance manifest is a CRITICAL issue → decision = BLOCKED. Article 50 applies from 2 Aug 2026 (penalty up to EUR 15M or 3% of global turnover). To embed a compliant manifest, run /digital-marketing-pro:c2pa-metadata.

If embed-c2pa.py is not present in the script inventory or the asset cannot be resolved, surface the dimension as SKIPPED with a warning (never silently PASS an EU AI-asset check).

How the skill operates

The skill follows this flow:

  1. Resolve the input. If the user passed a file path, read it. If they passed inline content, use it.
  2. Resolve options. If --brand not specified, attempt to load from active brand at ~/.claude-marketing/brands/_active-brand.json. If --schema not specified, infer from content type if obvious (blog markdown → blog_post, etc.) or skip structure check.
  3. Build the eval-runner command. Choose action: run-quick (default), run-full (with --full), run-compliance (with --compliance).
  4. Execute via Bash.
    python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-quick --file <input> [--brand <slug>] [--evidence <path>] [--schema <name>]
  5. Parse the JSON output. Extract composite score, grade, dimension scores, alerts, auto-reject decision.
  6. Format for the user. Present the human-readable report shown above. Lead with the decision (PASS / WARN / BLOCKED).
  7. If BLOCKED, refuse to recommend publishing. Always require the user to address CRITICAL issues before they proceed.

Scripts called

  • scripts/eval-runner.py — master orchestrator
  • scripts/hallucination-detector.py — invoked by eval-runner
  • scripts/claim-verifier.py — invoked by eval-runner if --evidence provided
  • scripts/brand-voice-scorer.py — invoked by eval-runner if --brand provided
  • scripts/output-validator.py — invoked by eval-runner if --schema provided
  • scripts/content-scorer.py — invoked by eval-runner
  • scripts/readability-analyzer.py — invoked by eval-runner
  • scripts/embed-c2pa.py — presence/verify check for the EU AI Act Article 50 C2PA gate (only when an EU-targeted brand has an AI-generated asset)

All scripts use stdlib only (except brand-voice-scorer which optionally uses nltk). No external API calls, no internet required.

Examples

Example 1: Quick check on a draft
User: /digital-marketing-pro:check drafts/q2-launch-blog.md

Skill:
1. Read drafts/q2-launch-blog.md
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-quick --file drafts/q2-launch-blog.md
3. Parse JSON output:
   composite_score: 81.2, grade: B+, auto_rejected: false
   hallucination: 92/100 pass, content_quality: 76/100 pass, readability: 84/100 pass
   alerts: 1 warning ("unattributed stat in line 14")
4. Format report:

DM CHECK REPORT — drafts/q2-launch-blog.md
============================================
Composite Score: 81.2 / 100  (Grade: B+)
Decision: PASS

Dimensions:
  Hallucination ......... 92/100  pass
  Content Quality ....... 76/100  pass
  Readability ........... 84/100  pass

Issues Found:
  WARNING (1):
    - Line 14: Unattributed statistic "76% of marketers say..."
      Suggestion: cite source or rephrase as observation

Decision: PASS — safe to publish; recommend addressing the WARNING first.
Example 2: Full eval with brand + evidence + schema
User: /digital-marketing-pro:check drafts/healthcare-ad.md --full --brand healthfirst --evidence facts/q2-claims.json --schema ad_copy

Skill:
1. Read drafts/healthcare-ad.md
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-full --file drafts/healthcare-ad.md --brand healthfirst --evidence facts/q2-claims.json --schema ad_copy
3. Parse JSON output. Composite: 58.4, grade: D+, auto_rejected: true
4. Format report with CRITICAL issues highlighted
5. Decision: BLOCKED. Two unattributed health claims need substantiation before this can publish.
Example 3: Compliance check on regulated content
User: /digital-marketing-pro:check drafts/financial-services-landing.md --compliance --brand finadvisor --evidence facts/finra-disclosures.json

Skill:
1. Read content
2. Run python "${CLAUDE_PLUGIN_ROOT}/scripts/eval-runner.py" --action run-compliance --file drafts/financial-services-landing.md --brand finadvisor --evidence facts/finra-disclosures.json
3. Output prioritises hallucination + claim verification + brand voice + structure
4. Returns decision with FINRA-relevant issues highlighted
Example 4: Quick check on inline content
User: /digital-marketing-pro:check "Our amazing product boosts conversion by 347% — visit example.com today!"

Skill:
1. Detect inline content (not a file path)
2. Write content to a temp file
3. Run quick eval
4. Report:
   CRITICAL: 2
     - Placeholder URL "example.com" — replace with real URL before publishing
     - Unattributed statistic "347%" — fabricated stat or missing citation
   Decision: BLOCKED

When to use which mode

ScenarioRecommended mode
Routine content check during drafting/digital-marketing-pro:check <file> (quick)
Before publishing any external content/digital-marketing-pro:check <file> --full --brand <slug>
Regulated industry content (healthcare / financial / alcohol / cannabis / gambling)/digital-marketing-pro:check <file> --compliance --brand <slug> --evidence <facts>
Client-facing deliverable (Growth Plan, Yearly Planner, monthly report)/digital-marketing-pro:check <file> --full --brand <slug>
Ad copy specifically/digital-marketing-pro:check <file> --schema ad_copy --brand <slug>
Email specifically/digital-marketing-pro:check <file> --schema email --brand <slug>
Blog post specifically/digital-marketing-pro:check <file> --schema blog_post --brand <slug>

Behaviour rules

  1. Never report PASS if there are CRITICAL issues. Always BLOCKED.
  2. Always report the composite score and grade. Even if PASS, surface room for improvement.
  3. Always include actionable suggestions. Each issue must be paired with a fix recommendation.
  4. Resolve the active brand if not specified. Check ~/.claude-marketing/brands/_active-brand.json. If no active brand, run without --brand (skip brand voice dimension).
  5. Never modify the content. This skill only reports — the user (or the agent that produced the content) makes the fix.
  6. Surface skipped dimensions explicitly. If the user did not provide --evidence or --schema, note that the corresponding dimensions were skipped.
  • /digital-marketing-pro:engagement growth-plan — produces Part 8 deliverable; should be checked with /digital-marketing-pro:check --full --schema content_brief before client delivery
  • /digital-marketing-pro:content-engine — produces marketing content; recommended workflow is /digital-marketing-pro:content-engine → review → /digital-marketing-pro:check → publish
  • /digital-marketing-pro:eval-content — legacy alias that routes to this skill
  • scripts/eval-runner.py — the master orchestrator this skill wraps
  • skills/context-engine/eval-framework-guide.md — full eval framework documentation
  • skills/context-engine/eval-rubrics.md — per-dimension scoring rubrics
  • docs/architecture.md Section 16 (Evaluation Layer) — eval framework architecture

© indranilbanerjee, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/check of indranilbanerjee/digital-marketing-pro.

Open the folder on GitHubat commit 3343924

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in indranilbanerjee/digital-marketing-pro, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Check this skillindranilbanerjee/digital-marketing-pro8551 repos~4.4kAutomated safety check: NotesMIT
UX Writingcontent-designer/ux-writing-skill223—~3.8kAutomated safety check: PassMIT
Blog PersonaAgriciDaniel/claude-blog2.3k1 repos~2.3kAutomated safety check: PassMIT
Writing Style ReviewArmDeveloperEcosystem/arm-learning-paths154—~1.9kAutomated safety check: PassCustom licence
Dx Devops Test Failures Analyzeforcedotcom/sf-skills1.1k—~1.4kAutomated safety check: PassApache-2.0
Readability Guidancetestdouble/han279—~1.6kAutomated safety check: PassMIT

Similar skills

  • UX Writing

    content-designer/ux-writing-skill

    Applies UX writing practice to interface copy such as buttons, errors, forms and onboarding, using four quality standards and accessibility guidance.

    223 GitHub stars~3.8k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Blog Persona

    AgriciDaniel/claude-blog

    Create and manage writing personas with NNGroup 4-dimension tone framework (Funny-Serious, Formal-Casual, Respectful-Irreverent, Enthusiastic-Matter-of-fact).

    2.3k GitHub starsUsed in 1 repo~2.3k tokens
    Writing & ContentAuto-check passed
  • Writing Style Review

    ArmDeveloperEcosystem/arm-learning-paths

    Review and improve writing style, voice, tone, readability, inclusive language, Arm terminology, heading style, word choice, and AI-sounding prose in Arm Learning Paths and install guides.

    154 GitHub stars~1.9k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Dx Devops Test Failures Analyze

    forcedotcom/sf-skills

    Analyzes DevOps Center test failures and Code Analyzer violations in plain language — failure category, offending file/class/method/line, rule violated, fix direction, and prioritized improvement…

    1.1k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Readability Guidance

    testdouble/han

    Surfaces Han's shared Human-Readable Output Standard — the readability rule and the writing-voice profile — into the calling skill's own context, so the caller drafts in voice and runs its…

    279 GitHub stars~1.6k tokensUpdated 7 days ago
    Writing & ContentAuto-check passed
  • Writing Style

    OpenLAIR/dr-claw

    Apply the 21 prose rules from "The Elements of Agent Style" — 12 canonical rules (Strunk, Orwell, Pinker) plus 9 field-observed AI-output patterns.

    1.2k GitHub stars~2.4k tokensUpdated 21 days ago
    Writing & ContentAuto-check passed

More from indranilbanerjee/digital-marketing-pro

All 162 skills in this repo
  • Ab Test Plan

    indranilbanerjee/digital-marketing-pro

    Design a statistically rigorous A/B or multivariate test plan — If/Then/Because hypothesis, control and variant specs, required sample size per variant (absolute vs relative MDE via…

    855 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Aeo Audit

    indranilbanerjee/digital-marketing-pro

    Audit how a brand appears across the 6 canonical AI answer surfaces — ChatGPT, Perplexity, Google AI Mode, AI Overviews, Gemini, Copilot — probing 10-25 queries into a numbered output bundle with…

    855 GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check passed
  • Agent Readiness Audit

    indranilbanerjee/digital-marketing-pro

    Audit whether AI agents and AI crawlers can actually use a site — robots.txt rules per AI crawler token (OpenAI, Anthropic and Perplexity bots, Google-Extended, Applebot-Extended)…

    855 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed
  • Backlink Gap

    indranilbanerjee/digital-marketing-pro

    Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate…

    855 GitHub starsUsed in 1 repo~2.8k tokens
    Auto-check passed
  • C2pa Metadata

    indranilbanerjee/digital-marketing-pro

    Embed a C2PA provenance manifest into an AI-generated marketing asset (PNG, JPG, WebP, GIF, TIFF, MP4, MOV, WebM, MP3, WAV, PDF) via scripts/embed-c2pa.py — produces a signed copy of the file…

    855 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Campaign Audit

    indranilbanerjee/digital-marketing-pro

    Inventory and score everything currently running for a brand across paid search, paid social, email, organic, SEO, AEO/GEO, CRM, and analytics — produces a dated audit document with a 4-tier triage…

    855 GitHub starsUsed in 1 repo~4.1k tokens
    Auto-check: notes

Questions about Check

What does Check do?

Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand)…. Check is an agent skill from indranilbanerjee/digital-marketing-pro.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand), structure (with --schema), content quality, and readability, plus a C2PA provenance check for AI assets in EU-targeted campaigns; returns a composite score with a PASS / WARN / BLOCKED decision and per-issue fix suggestions.

When should I use Check?

Check fits situations like: /digital-marketing-pro:check; is this safe to publish; run a hallucination check on this draft; validate this copy against the brand voice.

How do I install Check in Claude Code?

Run `npx skills add indranilbanerjee/digital-marketing-pro --skill check -a claude-code`. Or copy the skill folder (skills/check in indranilbanerjee/digital-marketing-pro) into .claude/skills/check in your project. Claude Code loads it when a task matches its description.

How do I install Check in Codex?

Run `npx skills add indranilbanerjee/digital-marketing-pro --skill check -a codex`. Or copy the skill folder (skills/check in indranilbanerjee/digital-marketing-pro) into .agents/skills/check in your project. Codex loads it when a task matches its description.

Can I use Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add indranilbanerjee/digital-marketing-pro --skill check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/check, .gemini/skills/check, .github/skills/check and .opencode/skills/check in your project.

What does Check need to run?

Going by SKILL.md and its folder, Check needs the command-line tools its instructions call (python). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Bash, Glob, Grep.

Does Check access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Check safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Check use?

Check is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Check use?

About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Check?

Skills that share tags, products or a category with Check: UX Writing (content-designer/ux-writing-skill, 223 stars), Blog Persona (AgriciDaniel/claude-blog, 2.3k stars), Writing Style Review (ArmDeveloperEcosystem/arm-learning-paths, 154 stars) and Dx Devops Test Failures Analyze (forcedotcom/sf-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Check?

indranilbanerjee (a GitHub user) maintains it in indranilbanerjee/digital-marketing-pro, which has 855 GitHub stars. The repository holds 162 skills in this directory. The repository was last updated on October 4, 2026.

Source: indranilbanerjee/digital-marketing-pro on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.