agentleFS
sofyanjamilsofyanjamil/growth-engine/skills/content-month/SKILL.md

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

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    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.

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
  1. Very specific:

    If any are missing, ABORT and prompt user to run /growth-market first (or /growth for full pipeline).

    line 23
  2. Very specific:

    If voice.md already exists, skip this phase (or run with --reset-voice flag to redo).

    line 31
  3. Distinctive:

    All README files, hero copy, in-repo marketing files, blog posts if any.

    line 36
  4. Distinctive:

    If live URL was fetched in research phase, use that copy too.

    line 37
  5. Very specific:

    Write voice.md with: tone profile, do/don't list, signature phrases, sample-sentence canon, taboos list.

    line 47
  6. Distinctive:

    No Duolingo / bro-marketer hype

    line 58
  7. Distinctive:

    No fake urgency ("Only X left!")

    line 59
  8. Distinctive:

    No AI-tell phrases ("In today's fast-paced world", "Let's dive in", "Game-changer", "Level up", "Unlock")

    line 61
  9. Distinctive:

    No performative hustle / struggle valorization

    line 62
  10. Very specific:

    Write voice.md with these YAML headers prepended:

    line 64
  11. Distinctive:

    Ask user language(s) if not already set:

    line 81
  12. Very specific:

    --auto: use the language(s) inherited from the orchestrator's auto-detection (passed via --lang).

    line 83
  13. Very specific:

    Write initial calendar.json with all days + pieces but with empty file pointers until Phase C completes.

    line 97
  14. Very specific:

    All 4 agents read the same references/ lib, so ICP + voice + virality stay consistent.

    line 116
  15. Distinctive:

    After fan-out completes, this skill runs a deduplication + narrative coherence pass:

    line 117
  16. Very specific:

    Read all 30 day-NN.json files.

    line 118
  17. Very specific:

    Verify bucket ratio holds (60/30/10 ± 5%).

    line 121
  18. Very specific:

    Verify every piece has virality_score >= 6.

    line 122
  19. Very specific:

    Always include: at least 1 brand/campaign hashtag (e.g.

    line 147
  20. Very specific:

    Every slide gets its own image_description + model-specific prompts.

    line 161
  21. Distinctive:

    No music/audio specification (explicit user requirement).

    line 167
  22. Distinctive:

    Use stickers to drive engagement-loop reach.

    line 172
  23. Very specific:

    No AI-tell phrases (see virality.md § Anti-patterns).

    line 179
  24. Very specific:

    No Duolingo/neon/bro-marketing language UNLESS voice.md explicitly authorizes (it won't, per typical taboo lists).

    line 180

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 /growth orchestrator 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)

  1. 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.
  2. Ask user for samples:
    • AskUserQuestion: "Paste 3-5 sentences that nail your voice. (Bullet list ok.)"
  3. Ask user for taboos:
    • AskUserQuestion: "What tones to AVOID? (e.g. 'no Duolingo bro-marketing, no fake urgency, no hustle-porn aesthetic')"
  4. Synthesize + confirm:
    • Write voice.md with: tone profile, do/don't list, signature phrases, sample-sentence canon, taboos list.
    • Also write a paired visual_style section: 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?"

Under --auto mode

Skip steps 2, 3, and 4's confirmation prompt. Execute:

  1. Auto-extract voice profile from repo + live URL (same as step 1 above).
  2. Skip the sample-paste prompt — use ONLY auto-extracted signal.
  3. 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
  4. Write voice.md with 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)

  1. Ask user language(s) if not already set:
    • Interactive: AskUserQuestion with options he, ar, en, multi.
    • --auto: use the language(s) inherited from the orchestrator's auto-detection (passed via --lang). Never prompt under --auto.
  2. Build the day-by-day skeleton. For each day in --days N (default 30):
    • Compute weekday based on current date.
    • Assign theme from 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 bucket per 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 pattern from ${CLAUDE_PLUGIN_ROOT}/references/virality.md § "Weekday × pattern preferences".
  3. Write initial calendar.json with all days + pieces but with empty file pointers 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.json files.
    • Detect hook duplication (cosine similarity > 0.85 → regenerate later one).
    • Detect repeated image_description motifs (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.

Phase D: Assemble + render

  1. Update calendar.json with final pattern tags, virality scores, and file pointers.
  2. Write calendar.md — human-readable day-by-day summary table.
  3. 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).
  4. 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 in image_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_suggestion fields anywhere.
  • No posting_time / scheduled_at fields.
  • 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. Writes voice.md with auto_mode: true + confirmation: pending headers. 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.json lists --days × 6 pieces, 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 audio or posting_time fields.
  • dashboard.html renders without external network requests.
  • Spot-check 3 random pieces: hook + caption + hashtags + CTA + 2 image fields all present and non-empty.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.