brand-content-ideation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited brand-content-ideation (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
For Sage brand work in Pi, use the paste-ready prompt at docs/prompts/pi-sage-brand-gen-full-pipeline.md. It routes Pi through the typed brand_* tools, the brand-orchestrator subagent, exact-text gates, v2/DSPy review, GEPA-ready disagreement fields, and typed mutation loops. Keep this link instead of copying the full prompt into skill bodies.
Turn brand truth into publishable content. This skill bridges the gap between "we have a brand identity" and "we have content worth posting."
brand-gen generates visuals. But before generating a content card or carousel, you need to decide: what is the card about? What headline, what body text, what CTA? This skill answers that question.
1. Gather brand context (auto — from brand identity)
2. Ask discovery questions (interactive — 3-5 questions)
3. Generate content brief (structured — topic + angle + copy + format)
4. Map brief to material type (auto — content-card, editorial-card, carousel-slide)
5. Feed to brand-gen pipeline (auto — prompt_seed + material_type + copy)Before asking the user anything, load stored context:
bgen show-session-summary --format jsonExtract:
identity_core.tone_wordsmessaging.tagline, messaging.elevator, messaging.value_propositionsmessaging.voice.description, messaging.voice.tone_wordsmessaging.approved_copy_bank (headlines, subheadlines, slogans)brand.summaryAsk 3-5 questions to narrow the content brief. Ask one at a time, respond, then ask next.
Purpose: What should the audience understand or do after seeing this? Is this awareness, consideration, or decision? Educating existing users or attracting new ones?
Audience: Who sees this? What do they already know? What's their biggest misconception or pain point?
Content: Do you have a specific topic, stat, or announcement? Part of a series or standalone? What's the surprising take you can offer?
Format: Single card, carousel, or article header? Primary platform? Photo inset, pure typography, or illustration + text?
Tone: Educational, provocative, celebratory, or urgent? Speaking as a brand or as a person behind the brand?
| Platform | Best format | Material type |
|---|---|---|
| LinkedIn (single) | Editorial card with CTA | editorial-card |
| LinkedIn (carousel) | 4-8 slide series | carousel-slide |
| Instagram (carousel) | 4-10 portrait slides | carousel-slide |
| Instagram (single) | Content card with photo | content-card |
| X/Twitter | Square or landscape card | content-card-square or x-card |
| Blog header | Editorial headline card | editorial-card |
| Newsletter | Content or info card | info-card |
After discovery, produce a structured brief:
{
"content_type": "carousel",
"platform": "linkedin",
"material_type": "carousel-slide",
"topic": "Why [key concept] matters for [audience]",
"angle": "Most [audience pain point]. Here's why that's about to change.",
"audience": "Technical founders and engineers",
"funnel_stage": "awareness",
"slide_count": 6,
"slides": [
{
"slide": 1,
"role": "hook",
"headline": "[Bold attention-grabbing statement]",
"subhead": "[Consequence or contrast]",
"body": "",
"visual": "typography-only, bold display font on brand background"
},
{
"slide": 2,
"role": "empathy",
"headline": "",
"subhead": "The problem",
"body": "[Validate the pain point in 2-3 sentences]",
"visual": "text on branded field"
},
{
"slide": 3,
"role": "value",
"headline": "[Key value proposition]",
"subhead": "",
"body": "[How the product solves the problem]",
"visual": "text + subtle brand illustration"
},
{
"slide": 4,
"role": "proof",
"headline": "[Evidence or stats]",
"subhead": "",
"body": "[Concrete numbers or testimonials]",
"visual": "stat highlight on brand accent"
},
{
"slide": 5,
"role": "cta",
"headline": "[Clear call to action]",
"subhead": "[URL or next step]",
"body": "",
"visual": "CTA card with brand mark"
}
],
"voice_notes": "Direct, confident, no hype. Speak to builders who want reliable tooling."
}Each slide or card becomes a pipeline call:
# Single content card
bgen pipeline \
--material-type content-card \
--prompt-seed "Headline: [headline]. Subhead: [subhead]. Visual: typography-only, bold display font on brand background, brand mark bottom-left." \
--mode hybrid \
--format jsonGenerate each slide separately with slide numbering:
bgen pipeline \
--material-type carousel-slide \
--prompt-seed "Slide 1/6 — Hook. Headline: '[headline]'. Visual: typography-only, bold display font on brand background." \
--mode hybrid \
--format jsonSee references/content-card-specs.md for platform dimensions, typography rules, and carousel narrative arc patterns.
After generation, evaluate:
Use bgen pipeline --base-image ... to refine existing cards (add photo insets, adjust text placement).
Typography-only card:
Large headline in display font: [Title]. Subhead: [Subtitle] in accent color. Brand mark bottom-left. Background: [brand color] solid field. No images — pure typography card.Text + photo inset card:
Subhead: [Topic] in bold accent. Body: [1-2 sentences]. Bullet list with colored bullets: [items]. Bottom-right: circular photo inset. Brand mark bottom-left. Background: [brand light color].Stat highlight card:
One large number: [stat]. Context: [what it means in one sentence]. Brand accent background, brand mark bottom-left.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.