Creates Instagram content for a creator or business owner — carousels, reels, or stories — using a decision framework for format, caption, and tone that prioritizes resonance over virality.
Create Instagram content that builds trust and context around your expertise. Instagram works as a support channel for humanizing ideas that live elsewhere (LinkedIn, blog, podcast). The goal is resonance and clarity, not virality or persuasion.
Operating principle: "If it feels like marketing, pull it back. If it feels like a thoughtful person explaining something clearly, it's correct."
Check reference docs first:
If reference/writing-style.md and reference/target-reader.md exist and are filled in, read them before asking questions. Use that context to understand the user's niche, audience, and voice. Only ask for what isn't already covered.
| Field | Description |
|---|---|
| Input | The idea, LinkedIn post, blog post, or raw thought to adapt |
| Content Goal | Reach/Discovery, Resonance/Trust (default), or Conversion/Lead Gen |
| Format Preference | (Optional) Carousel, Reel, or Story — if not provided, the framework will determine this |
| Caption Length | (Optional) Short or Long — if not provided, the framework will determine this |
If the user has provided enough context upfront, skip straight to the framework.
Classify the input into ONE category:
If input is heavily tactical, tell the user Instagram may not be the best fit and suggest Story-only or skipping Instagram.
Once format is determined, identify the right template from templates/:
| Format | Template | Export command |
|---|---|---|
| Carousel (multi-slide) | templates/carousel-clean/ | node tools/screenshot-slides.js templates/carousel-clean/index.html projects/social-[slug]/exports |
| Quote / single image | templates/portrait-quote/ | node tools/screenshot-slides.js templates/portrait-quote/index.html projects/social-[slug]/exports --width=1080 --height=1350 |
| Reel | No template needed — talking head video | — |
| Story-only | No template needed | — |
After generating content, include a Next Steps block at the end of your output telling the user which template to use and the exact export command to run.
Long captions must earn their length.
Before generating, classify into ONE goal:
Reach / Discovery
Resonance / Trust (Default)
Conversion / Lead Gen
Create slide-by-slide content:
Include a long caption (300–600 words) that expands on the carousel idea.
Also output the slide content in a format ready to drop into the template:
Create a short script:
Include one mid-reel CTA. A strong template: "Hey, I'm [Your Name]. I help [your audience] [core outcome]. [Follow / like / check the link in bio if that resonates.]"
Keep it short, direct, and grounded — not hype-driven.
Create 1–2 Story slides:
If a grid post (carousel or reel) was created, also create one Story companion that adds context, not summary.
The Story should answer: "Why did this feel worth sharing today?"
Rules:
After Story creation, evaluate:
Save to Highlight only if:
Otherwise, let it disappear.
Tone:
Voice characteristics:
Preferred framing:
Relationship to your business or product:
Personal content:
Every output must include:
**Format:** Story / Carousel / Reel
**Template:** templates/[name]/ — or: none needed
**Content Goal:** Reach / Resonance / Conversion
**Visual Needs:** text slide, talking head, screenshot, casual photo
**Caption Length:** short / long
**Story Companion:** yes / no
**Highlight Eligible:** yes / no + category (if yes)
Followed by:
Next Steps block — always end with:
## Next Steps
1. Copy slide content into `templates/[name]/index.html`
2. Run: `node tools/screenshot-slides.js templates/[name]/index.html projects/social-[slug]/exports`
3. Run: `python3 scripts/create-buffer-drafts.py [slug]`
(Omit if format is Reel or Story-only.)