Money Content
iamzifei/show-me-the-money
Automated content creation pipeline for business growth. An agent skill from iamzifei/show-me-the-money.
Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check…
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engine --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/content-engine .claude/skills/content-engine && rm -rf skills-srcUse ~/.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/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .claude/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engineType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engine --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/content-engine .agents/skills/content-engine && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .agents/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engine --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/content-engine .cursor/skills/content-engine && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .cursor/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/indranilbanerjee/digital-marketing-pro.git --path skills/content-engine--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engine --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/content-engine .gemini/skills/content-engine && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .gemini/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engineInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/content-engine .github/skills/content-engine && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .github/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro content-engine --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/content-engine .opencode/skills/content-engine && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "content-engine" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/content-engine into .opencode/skills/content-engine/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "content-engine", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
content-engineDraft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check…
Content Engine is an agent skill from indranilbanerjee/digital-marketing-pro. Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check, humanize, voice check, SEO checklist) with numbered working files and a five-gate quality scorecard before copy is publish-ready. Triggers on "/digital-marketing-pro:content-engine", "write a blog post about X", "draft ad copy for this campaign", "create an email sequence", "landing page copy for our product". Takes…
Its SKILL.md is about 8.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files (for example `accessibility.md`, `ad-copy.md` and `ai-content-quality.md`).
It sits in Writing & Content, covering Content marketing, Email marketing and Copywriting. 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.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3343924. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Content Engine loads about 8.9k tokens when it runs. Until then it costs about 198 tokens; SKILL.md has 4,319 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from indranilbanerjee/digital-marketing-pro at commit 3343924, republished under its MIT licence (© indranilbanerjee). 4,319 words, ~8,950 tokens.
.claude/skills/content-engine/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.Activate this module when the user's request involves any of the following:
Trigger phrases: "write a blog post," "ad copy," "email sequence," "social media calendar," "landing page," "content calendar," "brand voice," "content audit," "content decay," "AI content," "accessibility," "translate," "localize," "email deliverability," "subject line," "headline," "CTA," "newsletter"
Before producing any marketing output from this module:
~/.claude-marketing/brands/{slug}/profile.jsonskills/context-engine/compliance-rules.mdskills/context-engine/industry-profiles.md for the brand's industryskills/context-engine/platform-specs.md for character limits and format requirementspython "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action list-campaigns before planning new work~/.claude-marketing/brands/{slug}/guidelines/_manifest.json exists, load and enforce: restrictions.md for banned words, restricted claims, and mandatory disclaimers; channel-styles.md for channel-specific tone overrides (may differ from base voice); messaging.md for approved key messages, taglines, and positioning language; voice-and-tone.md for detailed voice rules beyond the 4 numeric scores. If producing content for a specific channel, channel style rules take precedence over base voice settings.Do not ask the user for information that already exists in their brand profile.
Before executing content work, gather:
For quick requests (e.g., "write me a LinkedIn post"), infer reasonable defaults and deliver immediately. For strategic content work, gather full context.
Primary Workflow: Content Creation
Content Strategy Alignment
Research & Preparation
Content Creation
Quality Assurance
python "${CLAUDE_PLUGIN_ROOT}/scripts/readability-analyzer.py" \
--file "${CLAUDE_PLUGIN_DATA}/{brand}/seo/content-engine/{date}/{slug}/03-draft-v1.md" \
--target b2c_general--text inline or --file path — mutually exclusive, one required; --target one of b2c_general, b2b_professional, b2b_technical, children, academic.)Optimization & Testing Plan
Secondary Workflow: Content Audit & Refresh
seo-content.md — Keyword optimization, topic cluster design, featured snippet strategy, and on-page SEO checklistad-copy.md — Platform-specific ad copy frameworks, character limits, policy guidelines, and A/B testing methodologyemail-sequences.md — Sequence templates (welcome, nurture, abandonment, etc.), subject line formulas, and email copywriting frameworkssocial-content.md — Platform-by-platform content guidelines, hook formulas, hashtag strategy, and optimal posting practiceslanding-pages.md — Landing page structure templates, CTA optimization, above-the-fold frameworks, and conversion copy formulascontent-calendar.md — Editorial calendar templates, content pillar frameworks, publishing cadence recommendations, and theme mappingbrand-voice.md — Voice development methodology, tone spectrum design, vocabulary guidelines, and brand voice audit processcontent-decay.md — Decay detection methodology, content scoring rubric, refresh prioritization framework, and update trackingai-content-quality.md — AI content quality checklist, originality verification, brand alignment review, and human review workflowaccessibility.md — WCAG 2.2 AA content checklist, alt text writing guide, readability standards, and inclusive language guidelinesmultilingual.md — Localization readiness checklist, cultural adaptation framework, translation management, and RTL considerationsemail-infrastructure.md — Authentication setup (SPF/DKIM/DMARC), domain warming plan, deliverability best practices, and list hygieneemail-automation.md — Automation trigger design, workflow mapping, dynamic content rules, and behavioral email logiccase-studies.md — Challenge-Solution-Results framework, customer-hero narrative structure, and case study creation best practicespersonalization.md — Personalization maturity model, segment/rule-based/behavioral strategies, and implementation guidancevideo-scripting.md — Platform-specific video formats and lengths, script structures, and hook and retention techniquesdraft-deliverables.md — Minimum components per deliverable type (incl. press release), the after-drafting follow-up menu, and parallel-dispatch rules when one brief yields several formats| Deliverable | Format | Description |
|---|---|---|
| Blog Post / Article | Document | Complete SEO-optimized content with meta data, headers, and internal link suggestions |
| Ad Copy Set | Document / Spreadsheet | Multiple variations per platform with headlines, descriptions, and CTAs |
| Email Sequence | Document | Full sequence with subject lines, preview text, body copy, CTAs, and send timing |
| Social Media Content | Spreadsheet / Calendar | Posts organized by platform, date, copy, hashtags, and visual direction |
| Landing Page Copy | Document | Section-by-section copy with headline, subhead, body, bullets, CTAs, and form copy |
| Content Calendar | Spreadsheet | Monthly/quarterly editorial plan with themes, topics, formats, channels, and owners |
| Brand Voice Guide | Document | Complete voice system with attributes, tone spectrum, vocabulary, and examples |
| Content Audit Report | Spreadsheet + Document | Inventory with scores, categorization, and prioritized refresh recommendations |
| Accessibility Report | Checklist document | Content-level accessibility assessment with specific remediation steps |
All content-engine outputs go to ${CLAUDE_PLUGIN_DATA}/{brand}/seo/content-engine/{YYYY-MM-DD}/{slug}/:
00-input.md topic, target keyword, intent, format, source brief (from keyword-cluster?)
01-research.md source list, key data points, expert quotes, competitor references
02-outline.md H1, H2/H3 structure with target word counts per section
03-draft-v1.md first complete draft
04-fact-check.md per-claim verification + citations
00-source-draft.md the author's own words, verbatim (ONLY when --source-draft was given)
05-humanize.md AI-pattern detection + rewrite log (flags from scripts/ai-tell-scan.py)
05-scans.json Surface + structural scan output, keyed {"surface":…, "structure":…}
05-authorship.json author-sentence provenance (ONLY when 00-source-draft.md exists)
06-brand-voice-check.md voice score (formality/energy/humor/authority) vs brand profile
07-seo-checklist.md title, meta, schema, internal links, image alt text
08-quality-scorecard.md the gates below
09-publish-ready.md final clean copy + handoff metadata
PLAN.md summary + publish instructions| Gate | What it checks |
|---|---|
| brand_voice_match | 06-brand-voice-check.md shows distance ≤ 0.15 on each axis (formality/energy/humor/authority). The unit is the scorer's 0–1 scale, not the profile's 1–10 scale. This gate previously read "≤ 1.5 point deviation" while brand-voice-scorer.py emits distance bounded at 1.0 — so read literally it could never fail, which is the same hollow-gate defect as a gate with no measurement behind it. 0.15 is the threshold the scorer already uses internally to flag a deviation. Note what this does and does not measure: the target axis values come from brand-setup's mapping of voice descriptors to numbers, and there is no rubric for descriptors it has not seen — so a FAIL here is a prompt to check the profile's targets as much as the copy |
| fact_check_clean | 04-fact-check.md shows 0 unverified claims and ≥ 1 citation per factual statement |
| humanize_passed | python "${CLAUDE_PLUGIN_ROOT}/scripts/ai-tell-scan.py" --file 05-humanize.md reports humanize_passed: true — i.e. flagged_paragraph_pct ≤ the brand threshold (default 10%). Run the script; do not judge this by eye. See "Humanize step" below for what counts as a flag |
| seo_complete | 07-seo-checklist.md shows title ≤ 60 chars, meta 150-160 chars, ≥ 1 schema type, ≥ 3 internal links, all images have alt text. Two criteria take an explicit N/A rather than a pass: internal links when the brand has no published site (a pre-launch brand's first article cannot link internally to anything — record N/A (no site) and the gate ignores it, but never record it as met), and alt text when the piece has no images (0 of 0 is a pass that verifies nothing — record N/A (no images)). An N/A must name its reason; a bare N/A is a FAIL |
| eu_disclosure_if_ai | If the brand has target_markets including EU AND the content is AI-generated, 09-publish-ready.md carries the required Article 50 disclosure (machine-readable + visible) |
status: ready requires all five gates pass — and the run audit re-deriving them:
python "${CLAUDE_PLUGIN_ROOT}/scripts/run-audit.py" --run-dir "${CLAUDE_PLUGIN_DATA}/{brand}/seo/content-engine/{date}/{slug}"Run it after writing 08-quality-scorecard.md and before declaring status: ready. It re-derives what the scorecard claims from the artifacts themselves: every numbered artifact present, the humanize verdict re-measured with a fresh ai-tell-scan.py run (never read off the scorecard), no scan JSON embedded in the file authorship.py measures, the authorship record matching a fresh measurement when a source draft exists, recorded voice distances actually inside the 0.15 gate, and the publish-ready copy free of production placeholders. Exit 1 means the scorecard is claiming something the artifacts do not support — fix the finding, never the wording. The verdict lands in run-audit.json beside the artifacts, so the next reader can see the run was verified rather than trusted.
Beyond the EU gate above, every publish-ready draft applies the brand's ai_disclosure block from profile.json — {"mode": "claude-surfaces"|"always"|"off", "text": null|custom, "author": null|name} (missing block = the default: claude-surfaces, no custom text, no author).
python "${CLAUDE_PLUGIN_ROOT}/scripts/detect_surface.py" --mode {mode} — its disclosure_applies field IS the decision. The fail-safe is deliberate: an uncertain surface applies the disclosure in claude-surfaces mode (skipping requires an AFFIRMATIVE non-Claude fingerprint). Never override the script's answer by guessing.09-publish-ready.md — inside the body, so it survives /digital-marketing-pro:publish-blog — using: no custom text and no author → *Created with AI assistance and reviewed by our editorial team.*; author set → *Created with AI assistance; researched, fact-checked, and edited by {author}.*; custom text → verbatim. The default wording is vendor-neutral (no model or vendor names) and claims only the review this pipeline performs. The author field is OPTIONAL — never invent a name, never block on it being blank.disclosure: {applied, mode, surface} — an unapplied disclosure is a recorded choice, not an omission.05-humanize.md) — what a flag actually isThe humanize_passed gate is measured by scripts/ai-tell-scan.py, not by impression. Run it and work the flags it returns.
05-scans.json holds BOTH scans under named keys — never two JSON documents in one file. Write it as {"surface": {...ai-tell-scan output...}, "structure": {...structural-tell-scan output...}}. Two > redirects into the same path produce a file that json.load rejects; a run doing exactly that is how this was found. On Windows, redirect with PYTHONIOENCODING=utf-8 set — the default cp1252 encodes the em-dash in the advisory note as byte 0x97 and the file then fails to parse.
Keep 05-humanize.md to the article body. scripts/authorship.py --draft 05-humanize.md classifies every sentence in that file, so scan JSON or report prose living there is counted as machine-added text against the author's share. Measured on a real run: appending the scan JSON and a short report moved author_word_share from 0.253 to 0.206 and flipped may_claim_authored from true to false — denying the author credit for work they actually did, on nothing but file layout. Reports go in 05-scans.json; the draft file stays the draft.
python "${CLAUDE_PLUGIN_ROOT}/scripts/ai-tell-scan.py" --file 05-humanize.md [--max-flagged-pct N]Two tells count toward the gate, because they are precise enough to gate on:
significance_marker — a sentence whose only job is to tell the reader what a neighbouring sentence means: "here's the thing", "that's the part that got me", "which is exactly the problem", "let that sink in". → DELETE the sentence. Do not reword it. The specific it points at already does the work; softening a marker into a gentler marker is not a fix. If the moment matters, return to the specific instead of announcing it.soft_adverb_cluster — two or more of honestly / genuinely / truly / literally / actually / basically / quietly in one sentence → delete them. A sentence that needs force needs a specific, not an adverb.Everything else the scan reports is advisory context, not gate material — llm_favored_word, connective openers ("So,", "However,"), participial openers, em-dash density, and short ungrounded one-liners. Those appear in ordinary human writing too, and gating on them would fail good copy and spin the pipeline into pointless rewrites. Fix them where the scan is right; do not chase the number.
llm_favored_word (advisory since 2026-08-15) — delve, leverage, seamless, tapestry, testament, pivotal, myriad… → still worth fixing: use the plain word you would say out loud, or better, a concrete noun from the piece's own subject. It stopped counting toward the gate after measurement: across 272 chunks of prose published before ChatGPT existed, 23 of these words fired and every one fired only on the human writing, none on the model writing. Technical and journalistic English uses "robust", "facilitate" and "leverage" normally, while current models have largely been trained off them — so as a gating signal it could only ever produce false positives.Passing means no dense cluster of the two precise tells. It is a floor, not a verdict. Measured on 39 documents published before ChatGPT existed, the gate failed none of them; measured on 18 documents of unedited model prose, it caught none of them. So a pass is not evidence the piece reads as a person wrote it, and it would not catch a humanize step that did nothing at all. Treat advisory_rating and the structural scan as the editor-facing signal — they do separate the two classes (unedited model prose landed HIGH 83% of the time versus 9% for published human prose) — and treat both as a to-do list for a person, never as proof of authorship.
The fix for any flag is a verified specific from 04-fact-check.md, never a synonym swap and never an invented fact. If no grounding exists for a sentence, cut the sentence or add a defensible caveat — do not invent a number, date, source, or example to make prose sound human.
--source-draft)When the user supplies their own rough draft — a voice-note transcript, bullets, a stream-of-consciousness dump — save it verbatim as 00-source-draft.md and build the piece around their sentences instead of over them. Do not clean it up on the way in; the mess is the signal.
03-draft-v1.md verbatim — typos, run-ons, lowercase and all. Never paraphrase, condense, merge, or grammar-fix them; "improving" their voice is what deletes their authorship.04-fact-check.md. If one of their claims contradicts the research, flag it for the human editor and leave the sentence alone — they decide, not you.python "${CLAUDE_PLUGIN_ROOT}/scripts/authorship.py" \
--source 00-source-draft.md --draft 05-humanize.md --out 05-authorship.jsonExit 3 means author sentences were rewritten or dropped. Restore them verbatim and re-run until it exits 0. This one is not advisory: every AI-tell scan here stays advisory because a detector signal is a probabilistic opinion, but "the author wrote this sentence and it is no longer here" is a checkable fact about a promise this pipeline made.
05-authorship.json reports may_claim_authored: true — which requires both that ≥25% of the finished words are the author's verbatim AND that none of their sentences were rewritten or dropped — the disclosure in 09-publish-ready.md becomes *Written by {author} with AI assistance for research, structure, and fact-checking.* (or, with no author named, *Written from the author's own draft, developed with AI assistance and reviewed before publication.*). Otherwise use the standard wording above. Never infer authorship from anything but this record. The direction is one-way by design: an authorship record may only ever make a disclosure MORE specific about human involvement that demonstrably happened. Overclaiming human authorship is the one form of this statement a reader cannot check.author_word_share exists so the disclosure can be accurate; no number makes text "human enough", and nothing here is aimed at a detector.After 05-humanize.md, run python "${CLAUDE_PLUGIN_ROOT}/scripts/structural-tell-scan.py" --file {draft} — the Tier-2 STRUCTURAL layer (StoryScope-derived: AI text stays detectable on structure even after a perfect surface pass). Where it reports NOTE/ATTENTION (moralizing closers, template symmetry, low specificity, stance absence, uniform rhythm, entity development), apply structural edits grounded in the fact-check file: cut the spelled-out takeaway, break symmetry the content doesn't earn, add specific verified facts (never invented), take a defensible stance.
entity_development deserves its own note because it is easy to fix the wrong way. A NOTE/ATTENTION band means the piece introduces name after name and number after number, each mentioned once and abandoned — a machine establishing a setting rather than an expert making a case. Fix by developing, never by deleting: give a specific the argument already rests on a second substantive mention from 04-fact-check.md — what it implies, who disputes it, what it cost. Cutting specifics to move this number would lower the specificity finding in the same scan, which matters more, and inventing a mention is forbidden outright. The proxy stays silent below 600 words or 12 distinct entities, because a short piece names things once for lack of room. Add the scan JSON to 05-scans.json under the "structure" key, alongside the surface scan's "surface" key (never to 05-humanize.md — see the humanize step: that file is measured sentence-by-sentence by authorship.py) and note the overall band in 08-quality-scorecard.md as ADVISORY — it never gates status: ready, and it measures visible structure only (it cannot see and has no relationship to any statistical watermark).
/digital-marketing-pro:content-brief (preferred — pre-researched) or /digital-marketing-pro:keyword-cluster (06-pillar-pages.md becomes content briefs)/digital-marketing-pro:publish-blog — pushes the publish-ready draft to the CMS/digital-marketing-pro:content-repurpose + /digital-marketing-pro:social-strategy — repurposes the article across platforms/digital-marketing-pro:check — final pre-publish gate/digital-marketing-pro:c2pa-metadata — if AI-generated images accompany the article and EU markets are targetedai-tell-scan.py measures visible text only. For pieces that must minimize AI-sounding patterns, run additional humanize passes and re-score with /digital-marketing-pro:eval-content, iterating until the flagged patterns clear; a final human edit pass remains the strongest signal — and the strongest signal of all is the author's own sentences, which is what --source-draft preserves./digital-marketing-pro:verify-claims against the draft if you didn't have a fact-checker in the loop.This skill's reference docs (skills/<this-skill>/*.md) sum to ~30-50KB. Don't load them eagerly — pick targeted sections:
offset + limit to pull just that range.${CLAUDE_SKILL_DIR} once. Use a single directory listing to see what's there, then Read only the files that match your current step.© indranilbanerjee, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 18 other files in skills/content-engine of indranilbanerjee/digital-marketing-pro.
Open the folder on GitHubat commit 3343924
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.
Content Engine 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Content Engine this skillindranilbanerjee/digital-marketing-pro | 855 | 1 repos | ~8.9k | Automated safety check: Pass | MIT | |
| Money Contentiamzifei/show-me-the-money | 1k | — | ~9.6k | Automated safety check: Pass | Custom licence | |
| Content Creatorthatrebeccarae/claude-marketing | 162 | — | ~1.1k | Automated safety check: Pass | MIT | |
| 37 Social Caption Globalminhnv0807/ai-business-skills | 608 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Content Creatorsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Marketing Campaignaffaan-m/ECC | 275k | 1 repos | ~1.3k | Automated safety check: Pass | MIT |
iamzifei/show-me-the-money
Automated content creation pipeline for business growth. An agent skill from iamzifei/show-me-the-money.
thatrebeccarae/claude-marketing
Comprehensive content marketing toolkit with brand voice analysis, SEO optimization scripts, content frameworks, social media strategy, and content calendar planning.
minhnv0807/ai-business-skills
A skill your agent uses when the user needs ORGANIC social captions for Instagram, LinkedIn, TikTok, Facebook, or X — hook, mobile-readable body, two A/B variants, platform-correct hashtags, written…
sickn33/agentic-awesome-skills
Drafts and reviews audience-specific content from supplied brand examples, with local scripts for brand voice and SEO diagnostics, channel templates and a content calendar.
affaan-m/ECC
End-to-end marketing campaign planning and execution. An agent skill from affaan-m/ECC.
thatrebeccarae/claude-marketing
SEO-optimized content creation with brand voice analysis and platform-specific frameworks.
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…
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…
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)…
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…
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…
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…
Categories
Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check…. Content Engine is an agent skill from indranilbanerjee/digital-marketing-pro. Draft marketing content in brand voice — blog posts, ad copy, email sequences, social posts, landing pages, and brand-voice guides — through a gated pipeline (research, outline, draft, fact-check, humanize, voice check, SEO checklist) with numbered working files and a five-gate quality scorecard before copy is publish-ready.
Content Engine fits situations like: /digital-marketing-pro:content-engine; write a blog post about X; draft ad copy for this campaign; create an email sequence.
Run `npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a claude-code`. Or copy the skill folder (skills/content-engine in indranilbanerjee/digital-marketing-pro) into .claude/skills/content-engine in your project. Claude Code loads it when a task matches its description.
Run `npx skills add indranilbanerjee/digital-marketing-pro --skill content-engine -a codex`. Or copy the skill folder (skills/content-engine in indranilbanerjee/digital-marketing-pro) into .agents/skills/content-engine in your project. Codex loads it when a task matches its description.
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 content-engine -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/content-engine, .gemini/skills/content-engine, .github/skills/content-engine and .opencode/skills/content-engine in your project.
Going by SKILL.md and its folder, Content Engine needs the command-line tools its instructions call (python). Our summary lists: Python 3.
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.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Content Engine is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 8.9k tokens (SKILL.md is roughly 36k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Content Engine: Money Content (iamzifei/show-me-the-money, 1k stars), Content Creator (thatrebeccarae/claude-marketing, 162 stars), 37 Social Caption Global (minhnv0807/ai-business-skills, 608 stars) and Content Creator (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.