一键导入
generate-weekly-ideas
Saturday 8am scheduled task. Reads trend-sources.md + brand-brief + recent calendar-log entries; produces 10 ranked post ideas to ideas/YYYY-MM-DD-ideas.md. Headless: NEXT MOVE block embedded in the file footer.
Saturday 8am scheduled task. Reads trend-sources.md + brand-brief + recent calendar-log entries; produces 10 ranked post ideas to ideas/YYYY-MM-DD-ideas.md. Headless: NEXT MOVE block embedded in the file footer.
Draft a platform-native Facebook post in your voice. Reads platform-voice.md + brand-brief.md + business-brain.md. 40-80 word sweet spot. Link previews supported. Plan-then-approves, writes to outputs/, optionally schedules via Blotato. Reads pageId from state-social.md.
Draft a platform-native Instagram caption with required image attachment. Reads platform-voice.md + brand-brief.md + business-brain.md + asset-index.md. Image MANDATORY. 125-2200 char caption, 5-10 hashtags. Plan-then-approves, writes to outputs/, schedules via Blotato.
Draft a platform-native LinkedIn post in your voice. Reads platform-voice.md + brand-brief.md + business-brain.md. Generates 3 hook candidates, plan-then-approves, writes to outputs/, optionally schedules via Blotato. Follows the 12-step shared draft-skill spec.
Draft a platform-native Meta Threads post or reply chain in your voice. Reads platform-voice.md + brand-brief.md + business-brain.md. Up to 500 chars per post, reply chain up to 10. Conversational tone (Instagram-but-text). Plan-then-approves, writes to outputs/, schedules via Blotato.
Draft a TikTok video script + caption + hashtags. Reads platform-voice.md + brand-brief.md + business-brain.md + asset-index.md. Video MANDATORY. Hook under 3s -> context -> payoff -> CTA. Caption under 150 chars, 3-5 hashtags. Plan-then-approves, outputs/, schedules via Blotato.
Draft a platform-native Twitter/X post or thread in your voice. Reads platform-voice.md + brand-brief.md + business-brain.md. 280-char enforcement per tweet, thread support up to 12 tweets. Plan-then-approves, writes to outputs/, optionally schedules via Blotato.
| name | generate-weekly-ideas |
| description | Saturday 8am scheduled task. Reads trend-sources.md + brand-brief + recent calendar-log entries; produces 10 ranked post ideas to ideas/YYYY-MM-DD-ideas.md. Headless: NEXT MOVE block embedded in the file footer. |
| when_to_use | ["/generate-weekly-ideas","generate weekly ideas","weekly ideas","Saturday ideas","saturday cron ideas"] |
Saturday 8am scheduled task. Reads the user's trend-sources + brand-brief + recent posts, then drops 10 ranked ideas into projects/social-media-content/ideas/YYYY-MM-DD-ideas.md so Monday's /weekly-content-session has a ready idea bank.
Headless skill. Runs on cron — no live user. No
AskUserQuestioncalls. No chat output beyond a one-line "Saved ideas to " confirmation. The⚡ NEXT MOVEblock lives in the FILE FOOTER (per the headless exception in_shared/foundations.md), not in chat — the user reads it Monday morning when they open the file.
Read on every run:
| File | Why |
|---|---|
projects/social-media-content/trend-sources.md | RSS feeds, sites, keywords, accounts to monitor |
projects/social-media-content/brand-brief.md | Voice + wedge + contrarian belief for ranking |
about-me/business-brain.md | Business context for relevance scoring |
projects/social-media-content/calendar-log.md | Last 30 days of posts — to NOT re-suggest |
_aibos/state-social.md | selected_platforms list for platform-fit tagging |
_shared/hook-patterns.md | Hook pattern library for scoring + assignment |
_shared/foundations.md | Foundation B + C (headless variants) |
If trend-sources.md is missing or empty → write a one-line failure note to projects/social-media-content/memory.md and halt:
<ISO> | /generate-weekly-ideas | headless run — FAILED: trend-sources.md missing or empty. Run /onboard-social Phase 4.
The user will see the failure on next manual invocation of any cowork-social skill that reads memory.md.
AskUserQuestion calls. Not at any step.plan-then-approve: OFF for this skill only.Saved <N> ideas to <path>. Nothing more.memory.md instead of halting visibly. The user finds out at the next manual run.⚡ NEXT MOVE lives in the OUTPUT FILE footer. Not in chat. The user opens the file Monday morning and the file itself tells them what to do next.Walk trend-sources.md category by category. For each entry:
| Source category | How to query (in priority order) |
|---|---|
| RSS feeds | Perplexity: "what's new in this week?" — fall back to direct fetch if available |
| Sites to check | Firecrawl (if available + auth): scrape latest article titles + summaries — fall back to Perplexity |
| Keywords to monitor | Perplexity: "what's trending around this week?" |
| Accounts to watch | VidIQ (for YouTube): channel outliers — IG: vidiq_ig_profile_reels — others: Perplexity "what did post recently?" |
| Podcasts | Skip in v0.1 (deferred — note in output if user had podcasts listed) |
Collect raw signals as a flat list: {source, title, snippet, url}.
Mix angles to match /content-coach's 5 categories. Allow duplicate angles across the 10 (we want range, but the strongest angle can repeat if signals support it):
| Angle | Target count | Pull from |
|---|---|---|
| Contrarian belief / polarizing opinion | 2 | brand-brief.md wedge + contrarian signals |
| Proof story / receipts | 2 | brand-brief.md recent_proof_story + user data |
| Trend commentary | 2 | Step 1 trend signals |
| Personal experience / vulnerable | 2 | Suggested topics user could share |
| Customer transformation / "most people get this wrong" | 2 | Wedge + customer story patterns |
For each candidate, write:
_shared/hook-patterns.md)selected_platforms it works best on)Score each idea on five dimensions. Total = sum, ceiling 100:
| Dimension | Max points | What earns full marks |
|---|---|---|
| Wedge alignment | 30 | Pulls directly from brand-brief.md → contrarian_belief or recent_proof_story |
| Specificity | 20 | Concrete numbers, names, dollar amounts, dates in the hook |
| Recency | 20 | Trend is fresh THIS week (from Step 1 signals); evergreen ideas cap at 10 |
| Hook ceiling | 15 | Fits a HIGH-VIRALITY pattern (#9 Receipts, #10 Reverse, #11 Stolen Lesson) — partial credit for others |
| Recognition trigger | 15 | User's audience will nod on the first sentence (pain point or shared belief) |
Rank 1-10 by total score. Break ties by Wedge alignment, then Specificity.
Read calendar-log.md. For each candidate idea, compare against post_slug rows from the last 30 days:
Final list = exactly 10 ideas. Not more, not less.
Resolve the output path: projects/social-media-content/ideas/<today's-YYYY-MM-DD>-ideas.md.
If the directory doesn't exist, create it.
Write this exact structure:
---
type: cowork-social-weekly-ideas
plugin: cowork-social
plugin_version: 0.1.0
generated_date: <YYYY-MM-DD>
generated_time: <HH:MM ISO>
week_starting: <next Monday's YYYY-MM-DD>
total_ideas: 10
source_skill: /generate-weekly-ideas
---
# Weekly Ideas — Week of <Monday date>
> Generated by `/generate-weekly-ideas` on <ISO timestamp>. Read by `/weekly-content-session` on Monday.
## The 10 ideas (ranked)
| # | Score | Platform fit | Hook | Angle | Source |
|---|---|---|---|---|---|
| 1 | 92 | linkedin, threads | "<hook text>" | Contrarian belief | <url or "user wedge"> |
| 2 | 88 | twitter, threads | "<hook text>" | Proof story | <url or "brand-brief"> |
| 3 | 85 | instagram | "<hook text>" | Trend commentary | <url> |
| 4 | 83 | linkedin | "<hook text>" | Vulnerable | brand-brief |
| 5 | 80 | tiktok | "<hook text>" | Customer transformation | <url> |
| 6 | 78 | linkedin, facebook | "<hook text>" | Trend commentary | <url> |
| 7 | 75 | twitter | "<hook text>" | Most-people-wrong | user wedge |
| 8 | 72 | threads | "<hook text>" | Proof story | brand-brief |
| 9 | 68 | instagram, tiktok | "<hook text>" | Vulnerable | brand-brief |
| 10 | 65 | facebook | "<hook text>" | Recognition pain | <url> |
## Idea detail
### Idea 1 (92/100) — <short title>
- **What:** <1-sentence description>
- **Why it'll go viral:** <1 sentence — name the dimension that earned highest score>
- **Suggested platform(s):** <from platform-fit column>
- **Suggested hook pattern:** #<N> — <pattern_name>
- **Source:** <url or internal reference>
### Idea 2 (88/100) — <short title>
... (repeat for all 10)
---
## How to use this file
Monday morning, run `/weekly-content-session`. It'll read this file, show you the 10 ideas, and walk you through picking 5-7 to draft + schedule for the week.
---
⚡ NEXT MOVE: Run /weekly-content-session Monday at 10am to draft idea #1.
Why: Idea #1 scored 92/100 — highest-virality candidate this week + the trend signal is fresh, the window closes by Friday.
The ⚡ NEXT MOVE block is the FILE FOOTER — not chat output. The user reads it when they open the file.
See _shared/foundations.md → Foundation B. Headless adaptation:
Skip the live question. No user present — can't ask "what would've made this 10% better?"
Log the run. Append to projects/social-media-content/memory.md:
<ISO> | /generate-weekly-ideas | headless run — <N> ideas generated, top score <X>, sources used <count>
Recurrence detection across headless runs. Each Monday's /weekly-content-session reads the picks from the user. After 4 weeks, if the user has consistently picked 0 ideas from the generated files (compare picks in calendar-log.md against rows in the last 4 ideas/*.md files), flag for revision.
Append to projects/social-media-content/skill-improvements.md:
| /generate-weekly-ideas | low-pickup rate across 4 weeks | <first_seen_date> | 4 | re-tune ranking algorithm or trend-source coverage | reviewed: no |
If skill-improvements.md doesn't exist, create it with the canonical header from _shared/foundations.md.
Silent flag for live skills to surface. On the next manual run of any cowork-social skill that reads memory.md, the headless failure or low-pickup flag becomes visible.
⚡ NEXT MOVE block (file-footer variant)See _shared/foundations.md → Foundation C. Headless adaptation:
/weekly-content-session Monday morning), justify in one sentence tied to the highest scoring dimension.⚡ NEXT MOVE: .+ .+ .+\n Why: .+ — applied to the file footer text.Examples by top-idea state:
⚡ NEXT MOVE: Run /weekly-content-session Monday at 10am to draft idea #1. Why: Idea #1 scored 92/100 — highest-virality candidate this week + the trend signal is fresh, the window closes by Friday.⚡ NEXT MOVE: Run /weekly-content-session Monday morning to start with idea #1. Why: Idea #1 hits all 3 high-virality hook patterns — pulling from your contrarian wedge with a fresh proof point.⚡ NEXT MOVE: Pick some ideas later. (no specific subject, no timing — REGENERATE)If the block fails the validation regex → regenerate before writing the file.
calendar-log.md. No repeat slugs.memory.md. Never crash silently — the next live skill surfaces the failure._shared/foundations.md for B + C. Don't duplicate the rules.The output file's prose: short, direct, Monday-morning-friendly. The user is opening this groggy, with coffee. Lead them straight to the action.
The hooks themselves: full creator-voice per _shared/hook-patterns.md. Match the wedge, match the brand-brief — don't AI-flatten them.