digital-marketing-pro
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
Your client wants 30 days of social content across six platforms with brand-faithful imagery, AI-generated video, and provenance signed for EU markets. You have five days.
$ npx -y skills add indranilbanerjee/socialforge --agent claude-code
What's inside
Your client wants 30 days of social content across six platforms with brand-faithful imagery, AI-generated video, and provenance signed for EU markets. You have five days. The last calendar got rejected because the product photo got "AI-enhanced" beyond recognition.
Run /socialforge:new-month → /socialforge:generate-all → /socialforge:review. Asset-first compositing keeps brand photos pixel-faithful while AI generates the scene around them. Per-platform copy adaptation handles Instagram + TikTok + LinkedIn + Threads + X + Facebook + YouTube Shorts in one pass. C2PA signing happens before review. No more "AI enhanced our logo into something else" disasters.
Open-source agency-grade social media production engine — 20 skills · 25 commands · 5 agents · 28 scripts · an opt-in catalog of 10 HTTP connectors (zero auto-connected) · 0 global hooks. AI image (Vertex AI Nano Banana Pro), AI video (WaveSpeed Kling v3.0 Pro), human-in-the-loop review galleries. Built for agencies and in-house teams running monthly content calendars. Installs on Claude Code (CLI + IDE), Anthropic Cowork, OpenAI Codex, Cursor 2.5+, GitHub Copilot CLI, Google Antigravity 2.0, Hermes Agent, and OpenClaw + 35+ Agent Skills platforms. Created by Indranil Banerjee · LinkedIn · X.
🆕 Just shipped — v1.25.1 (August 17, 2026): schema-clean hooks manifest. The
_readmerationale field inhooks/hooks.jsonfailed Cowork's plugin validation (digital-marketing-pro#9); the rationale now lives inhooks/README.md, the manifest is exactly{"hooks": {}}, and a guard pins it. 20 skills, 260 tests. Previously — v1.25.0 (August 17, 2026): Grok (xAI Build CLI) becomes the ninth native platform. A first-class.grok-plugin/manifest pair —plugin.jsonwith the"skills"pointer Grok's loader reads, plus a single-pluginmarketplace.json— makesgrok plugin install indranilbanerjee/socialforgework directly (Grok Build also reads the Claude Code manifests for compatibility; the native pair is what an official xAI marketplace listing points at). Both files are version-locked into the release-consistency suite, and Grok joins every platform-name guard. 20 skills, 258 tests. Previously — v1.24.2 (August 16, 2026): the documentation truth pass. A from-zero audit found the doc-count guard pattern-blind: the README quoted "25 scripts" against 28 shipped and "All 16 SKILL.md files" against 20 skills, and AGENTS.md — the file every non-Claude runtime auto-loads — pinned v1.13.1, eleven releases stale. Every number is now re-derived from the filesystem and the guard grew the exact patterns that escaped it (script counts, SKILL.md-file counts, SocialForge-qualified counts, AGENTS.md currency), each plant-checked against the phrasing it previously missed. 20 skills, 256 tests. Previously — v1.24.1 (August 16, 2026): richer Agent Plugins listing metadata + the directory submission bundle (docs/distribution/). And — v1.24.0: the month-delivery audit — “the tracker says FINAL” is now checked against the disk. Newscripts/delivery_audit.pyre-derives a month's delivery claims before/finalize-monthpackages anything: every status in the vocabulary, revision history landing on the recorded status, no ghost posts the calendar never knew, everyforce_finalizedpost surfaced as a violation (a bypassed gate is a decision the delivery reader must see, not a flag buried in JSON), every FINAL post's referenced file existing and non-empty (the empty-rectangle lesson), the failure log loadable, and cost totals honest about incompleteness. Exit 1 means the delivery claims something the disk does not support — resolve the finding, never package around it. The verdict lands indelivery-audit.jsonbeside the tracker. 20 skills, 253 tests. Previously — Just shipped — v1.23.0 (August 16, 2026): SocialForge travels in Agent Plugins 1.0. OpenAI's vendor-neutral plugin standard (announced Aug 6; adopted by ChatGPT, Codex, Cursor, GitHub Copilot, VS Code, Kiro) reads a rootplugin.jsonon a closed schema and defines${PLUGIN_DATA}as the persistent-data name. Shipped: the root manifest, version-synced and test-guarded, and${PLUGIN_DATA}accepted across all 20 scripts that read a data directory — a compliant non-Claude host previously resolved none at all. 20 skills, 243 tests. Previously — Just shipped — v1.22.0 (August 15, 2026): "nothing fails silently" held where the plugin thought about it, and broke at the seams. A full-pipeline run with no image or video credentials found all of it.render_preview.pyreturned{"status": "success"}for an image that did not exist — exit 0, and a real 600×800 PNG that was blank white, because the missing path became afile://URI and the browser rendered a broken image as nothing. A reviewer approving that gallery was approving an empty rectangle. It now refuses and writes no file;--allow-missing-imagegives a copy-layout preview markedplaceholder, neversuccess.generate_image.pyexited 0 after every provider failed — the failure record was perfect and the exit code said pass, so any&&chain read total failure as success whileprice_book.pyexits 3 in the same situation. Now 0/4/1. The failure record was never written to disk — built, returned, printed, gone; it now appends toshared/failure-log.jsonl. The cost report crashed in exactly the case it was for: summing an unpriced entry raisedTypeError, and unpriced entries are what a run without credentials produces — now counted, surfaced, and every total labelled a LOWER BOUND, because unpriced is not free. And the setup skill quoted six prices from memory against the plugin's own rule; removed and routed toprice_book.py, with a guard test on any dollar figure. 20 skills, 237 tests. Previously — Just shipped — v1.21.0 (August 14, 2026): significance markers stay out of captions. The suite's long-form plugins gained a deterministic AI-tell scan; SocialForge deliberately did not, and now says so in writing. What arrives instead is the rule itself, at the point the caption is written: the copy-adapter never writes a line whose only job is to announce that the next line matters — "here's the thing", "here's the kicker", "that's the part that got me", "let that sink in" — because they read as machine-written to anyone who has scrolled a feed this year, and on a 280-character platform they spend the budget the point needs. Lead with the specific instead ("Approvals went from 14 days to 31" beats "Here's the thing about approval timelines"), and cap stacked soft adverbs at one per caption. No scanner was added, on purpose: caption-length copy has no document structure to measure and per-1000-word metrics are noise at 280 characters — a test now pins that reasoning so the absence reads as a decision rather than a gap. 20 skills, 237 tests. Previously — v1.19.0 (August 13): nothing fails silently anymore. The provider layer's fallback chains now record every abandoned attempt — who was tried, at which stage it stopped, and what to do about it — instead of collapsing a missing key, a retired model, and a content-policy rejection into one bare failure. Video generation became a real three-rung chain (a Veo failure finally falls back; routing reads stored credentials, not just env vars; a live SDK bug that broke every Veo call was caught by the chain's own attempt records on first execution). An adversarial sweep of the untested surface fixed six defects proven live: the compliance gate failed OPEN on unknown severity words and crashed on one bad regex (now fail-closed with rule_errors), the approval ledger minted ghost posts and accepted"FINAL "as a new frozen status (now calendar-validated vocabulary + atomic writes), asset re-indexing minted duplicate ids, a corrupt credentials.json silently destroyed stored keys on the next setup, alias resolution handed retired model ids to SDKs, and the review gallery rendered client-supplied titles unescaped. Plus:/socialforge:ingest-performance— platform analytics exports become per-post records with sample floors and margin rules, so/socialforge:ideate-monthcompounds measured wins (and says "no clear wins" about a flat month) instead of remembered ones. 20 skills, 214 tests. Previously — v1.15.0–v1.18.0 (August 11–12): live pricing + Article 50 + the creator-craft wave.price_book.py(no stored prices, source-URL-required, 24h TTL) +model_book.py(capability kinds, live-discovery ladder), C2PAai-disclosuredefault-on, TikTok/Threads/Bluesky image specs,/ideate-month, mechanism-aware CTAs, vendor-neutral research intake + guard, and video scripts rebuilt hook-first with compliance-before-credits. And — v1.14.2 (July 30): registry re-points + the anonymity guard. Previously — v1.14.1 (July 29): the Line-by-Line Audit. All 134 files — every skill, agent, command, script, reference and doc — read end-to-end by a 5-reader audit fleet and re-verified against July-2026 ground truth. ~180 fixes: retired model ids purged from script defaults and docs (gemini-3-pro-image-preview, gemini-2.5-flash-image), the model registry finally caught up to July (Claude 5 + GPT-5.6 families, 51→57 entries, aliases re-pointed), fictional carousel-template names and creative modes corrected repo-wide, preview HTML now escaped, credential files chmod 600, path/storage split-brain resolved to${CLAUDE_PLUGIN_DATA}, and the self-containment guard extended across the whole repo. 56 tests passing. Full changelog →
# Install in Claude Code:
/plugin marketplace add indranilbanerjee/neels-plugins
/plugin install socialforge@neels-plugins
# Install on Hermes Agent (Nous Research):
hermes plugins install indranilbanerjee/socialforge
# Install on OpenClaw:
openclaw plugins install git:github.com/indranilbanerjee/socialforge
# Install on Grok (xAI Build CLI):
grok plugin install indranilbanerjee/socialforge
If SocialForge saves your team time, give it a star ⭐ — it's the single thing that helps other agencies find it.
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
🌐 Read this in: English · हिन्दी · 中文 · 日本語 · 한국어 · Español · Português · العربية · اردو · தமிழ் · বাংলা · Русский You need to ship 30 articles this quarter that sound human, cite real sources, link into your funnel, and survive an editor who checks.
FAQ
socialforge is a Claude Code plugin with 20 hand-picked skills for marketing work, indexed on Flowy. Install it with the command on its page. It includes adapt-copy, assemble-document, brand-manager. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it