agentsclimarketplace

Post studio

Skill himanisharrma/finverge-sales-skills/plugins/finverge-sales-skills/skills/post-studio

Generate ad-hoc FinVerge product-led content (product-feature, positioning, product-launch posts) across LinkedIn / X / Blog / WhatsApp Business with typographic cards and multi-slide carousels. Use whenever Himani (or the marketing team) wants a one-off post that is NOT part of the scheduled 10-week campaign. Triggers on phrases like "draft a LinkedIn post about [feature]", "make a product-feature post for [product]", "positioning post on [topic]", "we're launching [X], draft the announcement", "create a carousel on NACH failure rates", "post for the sales head on [objection]". Inherits voice rules, persona tags, CTA framework, and the 4-criteria filter from content-campaign. Produces ready-to-post drafts + branded visuals + audit report.From its SKILL.md

Install
npx -y skills add himanisharrma/finverge-sales-skills --skill post-studio

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.4 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

Post Studio Skill — FinVerge Ad-Hoc Product Content

Use this skill when you need a one-off post outside the scheduled campaign. Examples:

  • the NACH owner wants to explain NACH ML-scoring to NBFC CFOs this week
  • Swapnesh needs a positioning post about why most PGs can't do hybrid
  • A new partnership just signed — we need a launch announcement today

When to use

Triggering phrases (non-exhaustive):

  • "Draft a post about [product/feature]"
  • "Make a product-feature post for [NACH / PG / Collect / Orchestrate]"
  • "Positioning post on [topic]"
  • "We're launching [X] — write the announcement"
  • "Create a carousel on [topic]"
  • "Post for [owner] on [topic]"

Do NOT use this skill for:

  • Scheduled campaign posts (W1–W10) — use content-campaign + its Friday batch
  • Hiring / event / employer-brand posts — not in scope for v1
  • Bank proposals — use bank-proposal-generator
  • Per-product demo decks — use the relevant product skill

The 7-step conversational flow

When triggered, walk through these 7 questions one at a time. Do NOT ask them all at once — teammates using this for the first time need the steps spaced out.

Step 1 — Post type

Ask:

"What kind of post is this?

  1. Product-feature — explain one product/module (e.g., 'how Lightning Onboarding works')
  2. Positioning — category framing (e.g., 'why hybrid matters for enterprise')
  3. Product-launch — announce a new product, module, or partnership"

Capture choice → sets post_type in the meta scratchpad.

All three post types are fully wired in v1.1 — each has its own structure guide (references/product-feature-patterns.md, positioning-patterns.md, product-launch-patterns.md) and its own carousel template.

Step 2 — Topic

Ask:

"What's the topic or angle? Paste any supporting context (URL, transcript snippet, raw notes) if you have it."

Capture: topic (free text), supporting_context (optional paste).

Step 3 — Owner voice

Ask:

"Whose voice? Default for a product-feature post is the feature owner: the NACH owner (NACH/onboarding), the PG owner (PG/settlement), the Collect owner (Collect/Orchestrate), Chaitanya (FRM), or PruthviRaj (Product Head / architecture). For positioning, default is PruthviRaj or the CBO. For launch, default is the founder or Himani."

Capture owner → pulls voice_tag from content-campaign's OWNER_MAP.

Step 4 — Persona tag

Default per OWNER_MAP[owner]["default_persona"]. Offer to override from the 5-tag taxonomy:

  • [For NBFCs] · [For D2C Founders] · [For Enterprise CFOs] · [For Fintechs] · [For Payments Leaders]

Step 5 — Platforms

Ask:

"Which platforms? LinkedIn is always on. Multi-select: X / Twitter, Internal newsletter / blog, WhatsApp Business."

All four platforms are wired via fanout.py in v1.1:

  • LinkedIn — primary draft (Claude writes against the brief)
  • X / Twitter — auto-compressed from LinkedIn (20-50 words, 1-2 hashtags)
  • Blog / Newsletter — auto-expanded from LinkedIn (H2 sections, email-based CTA, 800-1500 word target)
  • WhatsApp Business — auto-reformatted from LinkedIn (3-5 short lines, plain text, finverge.in link)

Step 6 — Design output

Ask:

"Any visuals? Multi-select:

  • No graphic
  • Quote card (1200×627 typographic)
  • Stat card (big-number hero)
  • Headline card (clean title + subhead)
  • Carousel (5–7 slide deck)"

Design rendering is fully implemented in v1.1:

  • Cards — PIL-based 1200×627 PNGs (quote / stat / headline) with FinVerge brand frame + white logo
  • Carousels — python-pptx decks (1080×1080 square format) + PIL-rendered PNG preview sequence. .pptx is editable in Keynote/PowerPoint; PNGs are LinkedIn-ready
  • Composite — "quote card + positioning carousel" (positioning default) and "launch deck + headline card" (launch default)

For carousel renders you'll need to provide design_inputs.sections in meta.json with the per-slide content. If missing, the script writes a template explaining what's needed.

Step 7 — CTA type

Default per OWNER_MAP[owner]["default_cta_type"] + post-type:

  • Product-feature → Authority CTA ("DM the sales head")
  • Positioning → Soft CTA (open question)
  • Product-launch → Soft CTA
  • Can override: Soft / DM / Authority / Comment

Then: generate

Once inputs are collected, run:

python3 skills/post-studio/scripts/generate_post.py \
    --meta <path-to-scratchpad.json> \
    --output-dir ~/Downloads/ad-hoc-posts/

(Or call it directly from Claude — it's a simple Python module.)

It will:

  1. Load voice rules from content-campaign/campaign_meta.py
  2. Load product KB (for product-feature posts) via shared/kb_loader.py
  3. Write a LinkedIn draft following references/product-feature-patterns.md
  4. Run audit_post.audit() on the draft — block on hard-fail
  5. Render selected graphics (v1: stubbed)
  6. Compress to X / expand to Blog / re-format to WhatsApp (v1: stubbed)
  7. Save everything to ~/Downloads/ad-hoc-posts/YYYY-MM-DD_<topic-slug>/

Output structure

~/Downloads/ad-hoc-posts/
└── 2026-04-21_nach-mandate-failures/
    ├── meta.json           # the 7-step inputs + resolved defaults
    ├── linkedin.md         # the LinkedIn post (ready to copy-paste)
    ├── x.md                # X/Twitter variant (v1: stubbed)
    ├── blog.md             # Long-form blog expansion (v1: stubbed)
    ├── whatsapp.md         # WhatsApp broadcast (v1: stubbed)
    ├── audit.json          # structural + strategy-doc audit results
    ├── graphic.png         # Rendered card (v1: stubbed)
    └── carousel.pptx       # Multi-slide deck (v1: stubbed)

Inherited rules (from content-campaign)

All posts produced by post-studio MUST follow the same rules as campaign posts:

  • Persona tag mandatory — first line of every post
  • No fabricated numbers — approved quantification only (1.4M cash counters, RBI PA-O/PA-P, 10 years, 2× revenue)
  • No weak openers — "I'm excited to announce…" is hard-fail
  • "Hybrid" is the hero word — lead with it when framing FinVerge differentiation
  • "Bharat" for inclusion framing / "India" for regulatory framing
  • Hashtag bounds — LinkedIn 3-5, X 1-2
  • CTA framework — every post closes with one of the 4 CTA types
  • All inbound routes to the sales head — regardless of CTA type, the ultimate destination is a discovery call

These are enforced by scripts/audit_post.py (same module used by content-campaign).

v1.1 status — full feature set

FeatureStatus
Product-feature post → LinkedIn✅ Working
Positioning post → LinkedIn✅ Working
Product-launch post → LinkedIn✅ Working
X / Blog / WhatsApp fanout✅ Working (structural transforms, no LLM)
Quote / Stat / Headline cards✅ Working (PIL, 1200×627, brand frame)
Carousels (feature 5 / positioning 5 / launch 7)✅ Working (python-pptx + PNG preview)
Auditor integration✅ Working
Voice rules inheritance✅ Working

Coming in v1.2+

  • AI-assisted image generation (hero illustrations, not just typography)
  • Canva/Figma MCP integration for per-user template customisation
  • Direct-to-LinkedIn scheduler API (Buffer / native)
  • Additional post types (use-case stories, deal stories, poll posts)

Shared code reused

  • shared/kb_loader.py — product KB access
  • shared/brand.py — design tokens (for when design is implemented)
  • skills/content-campaign/campaign_meta.py — PERSONA_TAGS, CTA_FRAMEWORK, FINVERGE_VOICE_RULES, OWNER_MAP
  • skills/content-campaign/scripts/audit_post.py — the 4-criteria + strategy-doc auditor

What ships with it: 10 files

86.4 KB alongside SKILL.md, 5 of them executable

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.