content-month
Skill0 starsChanged 6 months agoMITView on GitHub
Use when generating a 30-day Instagram content campaign with 3 stories + 1 carousel + 1 post + 1 reel per day (180 pieces default), value-first 60/30/10 mix across trust/engagement/product buckets, themed weekdays, virality-pattern scoring, and SEO-baked captions. Produces ./growth/02-content/ with calendar.json index + per-day JSONs + dashboard HTML.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- jsath/claude-skillstheir own version, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- jsath/claude-skills★ 14same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- market-validateSkill
- seo-engineSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. About 0 are common, 10 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
If any are missing, ABORT and prompt user to run /growth-market first (or /growth for full pipeline).
- Very specific: line 31
If voice.md already exists, skip this phase (or run with --reset-voice flag to redo).
- Distinctive: line 36
All README files, hero copy, in-repo marketing files, blog posts if any.
- Distinctive: line 37
If live URL was fetched in research phase, use that copy too.
- Very specific: line 47
Write voice.md with: tone profile, do/don't list, signature phrases, sample-sentence canon, taboos list.
- Distinctive: line 58
No Duolingo / bro-marketer hype
- Distinctive: line 59
No fake urgency ("Only X left!")
- Distinctive: line 61
No AI-tell phrases ("In today's fast-paced world", "Let's dive in", "Game-changer", "Level up", "Unlock")
- Distinctive: line 62
No performative hustle / struggle valorization
- Very specific: line 64
Write voice.md with these YAML headers prepended:
- Distinctive: line 81
Ask user language(s) if not already set:
- Very specific: line 83
--auto: use the language(s) inherited from the orchestrator's auto-detection (passed via --lang). - Very specific: line 97
Write initial calendar.json with all days + pieces but with empty file pointers until Phase C completes.
- Very specific: line 116
All 4 agents read the same references/ lib, so ICP + voice + virality stay consistent.
- Distinctive: line 117
After fan-out completes, this skill runs a deduplication + narrative coherence pass:
- Very specific: line 118
Read all 30 day-NN.json files.
- Very specific: line 121
Verify bucket ratio holds (60/30/10 ± 5%).
- Very specific: line 122
Verify every piece has virality_score >= 6.
- Very specific: line 147
Always include: at least 1 brand/campaign hashtag (e.g.
- Very specific: line 161
Every slide gets its own image_description + model-specific prompts.
- Distinctive: line 167
No music/audio specification (explicit user requirement).
- Distinctive: line 172
Use stickers to drive engagement-loop reach.
- Very specific: line 179
No AI-tell phrases (see virality.md § Anti-patterns).
- Very specific: line 180
No Duolingo/neon/bro-marketing language UNLESS voice.md explicitly authorizes (it won't, per typical taboo lists).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
content-month
30-day Instagram content engine. Produces ./growth/02-content/.
When to invoke
- User asks: "generate a content calendar", "write a month of Instagram", "build a launch campaign".
- Invoked by
/growthorchestrator as phase 2 of 3. - Standalone via
/growth-content.
Prerequisites
This skill assumes market-validate has already run OR equivalent context exists:
./growth/references/icp.md— required../growth/references/positioning.md— required../growth/references/competitors.md— required.
If any are missing, ABORT and prompt user to run /growth-market first (or /growth for full pipeline).
Three sub-phases
Phase A: Voice ingestion (first run per project)
Output: ./growth/references/voice.md
If voice.md already exists, skip this phase (or run with --reset-voice flag to redo).
Interactive flow (default)
- Auto-extract from repo + live URL:
- All README files, hero copy, in-repo marketing files, blog posts if any.
- If live URL was fetched in research phase, use that copy too.
- Synthesize a draft voice profile: tone adjectives, sentence rhythm, lexical register, signature phrases, do/don't list.
- Ask user for samples:
AskUserQuestion: "Paste 3-5 sentences that nail your voice. (Bullet list ok.)"
- Ask user for taboos:
AskUserQuestion: "What tones to AVOID? (e.g. 'no Duolingo bro-marketing, no fake urgency, no hustle-porn aesthetic')"
- Synthesize + confirm:
- Write
voice.mdwith: tone profile, do/don't list, signature phrases, sample-sentence canon, taboos list. - Also write a paired
visual_stylesection: palette, type feel, photo treatment, recurring motifs allowed, forbidden visuals. Source this from the codebase design tokens detected in the research phase. AskUserQuestion: "Voice profile drafted at references/voice.md — confirm / edit / regenerate?"
- Write
Under --auto mode
Skip steps 2, 3, and 4's confirmation prompt. Execute:
- Auto-extract voice profile from repo + live URL (same as step 1 above).
- Skip the sample-paste prompt — use ONLY auto-extracted signal.
- Skip the taboos prompt — apply the conservative default taboo set:
- No Duolingo / bro-marketer hype
- No fake urgency ("Only X left!")
- No emoji-spam openings
- No AI-tell phrases ("In today's fast-paced world", "Let's dive in", "Game-changer", "Level up", "Unlock")
- No performative hustle / struggle valorization
- No bait-and-switch hooks
- Write
voice.mdwith these YAML headers prepended:--- auto_mode: true confirmation: pending generated_at: <ISO-timestamp> needs_review: true review_note: "Voice profile auto-extracted in --auto mode without user sample-paste or taboo confirmation. Refine and re-run /growth-content --reset-voice for personalized regeneration." ---
The downstream content-week-writer agents read these headers and add a confirmation: auto_mode_pending flag to each piece's secondary_tags[], surfacing in the final report.md for user review.
Phase B: Calendar skeleton
Output: ./growth/02-content/calendar.json (initial skeleton, fleshed out in Phase C)
- Ask user language(s) if not already set:
- Interactive:
AskUserQuestionwith options he, ar, en, multi. --auto: use the language(s) inherited from the orchestrator's auto-detection (passed via--lang). Never prompt under--auto.
- Interactive:
- Build the day-by-day skeleton. For each day in
--days N(default 30):- Compute
weekdaybased on current date. - Assign
themefrom the weekday × theme map:- Mon → Teaching/data (trust)
- Tue → Pain/story (engagement)
- Wed → Behind-the-scenes (trust)
- Thu → Social proof (trust)
- Fri → Trick/hack (trust)
- Sat → Founder/personal (engagement)
- Sun → Product+CTA (product)
- Assign
bucketper the theme. - Enforce 60/30/10 ratio across the month: count buckets and rebalance by selectively reassigning theme on overflow days. Trust days = 60% target. Engagement = 30%. Product = 10%.
- For each piece type that day (3 stories, 1 carousel, 1 post, 1 reel), assign a primary
patternfrom${CLAUDE_PLUGIN_ROOT}/references/virality.md§ "Weekday × pattern preferences".
- Compute
- Write initial
calendar.jsonwith all days + pieces but with emptyfilepointers until Phase C completes.
Phase C: Parallel content fan-out
For each of 4 weeks (1-7, 8-14, 15-21, 22-N):
Spawn a content-week-writer agent (${CLAUDE_PLUGIN_ROOT}/agents/content-week-writer.md) with these inputs in the prompt:
- Week number + day range.
- Theme + bucket + pattern assignments for each day (from Phase B skeleton).
- Path to
./growth/references/icp.md,voice.md,positioning.md,competitors.md. - Path to
${CLAUDE_PLUGIN_ROOT}/references/virality.md,image-prompt-cookbook.md,output-schemas.md. - Output path:
./growth/02-content/per-day/. - Language(s) from Phase B.
The 4 agents run in parallel (single message, 4 Agent calls).
Each agent generates day-NN.json files conforming to output-schemas.md §3 for its 7 days × 6 pieces = 42 pieces.
Coherence guarantees:
- All 4 agents read the same
references/lib, so ICP + voice + virality stay consistent. - After fan-out completes, this skill runs a deduplication + narrative coherence pass:
- Read all 30
day-NN.jsonfiles. - Detect hook duplication (cosine similarity > 0.85 → regenerate later one).
- Detect repeated
image_descriptionmotifs (same scene > 3x in a month → regenerate). - Verify bucket ratio holds (60/30/10 ± 5%).
- Verify every piece has
virality_score >= 6. Anything below → flag for regeneration; if more than 5% are below, regenerate the failing ones in a final pass.
- Read all 30
Phase D: Assemble + render
- Update
calendar.jsonwith final pattern tags, virality scores, and file pointers. - Write
calendar.md— human-readable day-by-day summary table. - Render
dashboard.html— codebase-styled overview:- Header with campaign meta (product, days, languages, targets 2500 users / 1M impressions).
- Grid of 30 day-cards, color-coded by bucket.
- Click/hover-expand to see the 6 pieces' hooks + virality score.
- Bucket ratio donut chart (rendered as inline SVG, no external libs).
- Write
report.md— summary stats: bucket ratio, virality score distribution, top 5 highest-scoring pieces, lowest 5 with notes.
Per-piece content rules
Anchored on:
voice.md— tone, register, signature phrases.virality.md— pattern grammar + scoring rubric.image-prompt-cookbook.md— two image fields per piece.icp.md— audience, pains, gains.positioning.md— value prop to weave into product+CTA pieces.
Hashtag rules
- 10-20 hashtags per piece.
- Mix: 30% large (>500k posts), 50% medium (50k-500k), 20% niche (<50k).
- Always include: at least 1 brand/campaign hashtag (e.g.
#<product-name>), 2 audience hashtags (e.g.#cs-bagrut-students), 3 topic hashtags. - Language-aware: Hebrew hashtags for Hebrew content, etc.
Caption SEO
- Open with the hook (no preamble).
- Embed primary keyword + 2-3 long-tail variants in the first 125 characters (the visible-before-"more" range).
- End with the CTA.
- For Instagram alt-text (not the caption but the IG accessibility field): emit
personalization_slots: ["{alt_text}"]with a draft alt-text inimage_description.
Carousel rules
- 7-10 slides.
- Slide 1 = hook cover (visual + 1-line hook).
- Slides 2-N-1 = body, one idea per slide.
- Slide N = CTA / save-prompt.
- Every slide gets its own
image_description+ model-specific prompts.
Reel rules
- Duration 15-60 sec target (specify
duration_seconds). - Shot list with 4-8 cuts, timestamped.
- On-screen text mirrors the hook in slide 1 / shot 1.
- No music/audio specification (explicit user requirement).
Story rules (3 per day)
- 3 stories form a mini-arc: hook → reveal → CTA (or hook → poll → CTA).
- Each story may have a sticker_prompt (poll/question/quiz/slider/none).
- Use stickers to drive engagement-loop reach.
Forbidden in output
Strictly enforce:
- No
audio/music_suggestionfields anywhere. - No
posting_time/scheduled_atfields. - No AI-tell phrases (see
virality.md§ Anti-patterns). - No Duolingo/neon/bro-marketing language UNLESS voice.md explicitly authorizes (it won't, per typical taboo lists).
Flags
--auto— unattended mode. Voice ingestion uses auto-extract only (no sample-paste, no taboo prompt, no confirmation). Applies default conservative taboo set. Writesvoice.mdwithauto_mode: true+confirmation: pendingheaders. No language prompt (uses inherited--lang).--days N— campaign length (default 30).--lang he,ar,en— output language(s). Multi-lang = parallel sets per language.--reset-voice— redo Phase A voice ingestion.--reset-calendar— redo Phase B skeleton.--target-users N(default 2500) — used to tune CTA aggressiveness.--target-impressions N(default 1000000) — used to tune virality-score floor.
Verification
After running:
calendar.jsonlists--days × 6pieces, each with virality_score >= 6.- All per-day JSON files validate against schema.
- Bucket ratio is within ±5% of 60/30/10.
- No piece has
audioorposting_timefields. dashboard.htmlrenders without external network requests.- Spot-check 3 random pieces: hook + caption + hashtags + CTA + 2 image fields all present and non-empty.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

