$npx -y skills add PHY041/claude-agent-skills --skill content-flywheelFull content automation loop for founders building in public. Detects new GitHub repos, generates platform-native content, distributes to social media, tracks engagement, and automatically repurposes winners. One trigger → entire content cycle. Triggers on "run content flywheel",
| 1 | # Content Flywheel — Composite Skill |
| 2 | |
| 3 | Orchestrates the full build-in-public content cycle. Single command drives the entire loop. |
| 4 | |
| 5 | ## Architecture |
| 6 | |
| 7 | ``` |
| 8 | ship-digest → Detects new GitHub repos |
| 9 | ↓ |
| 10 | founder-content → Generates platform-native drafts |
| 11 | ↓ (parallel) |
| 12 | social-post → Posts to Twitter + LinkedIn |
| 13 | reddit-cultivate → Posts to Reddit (if applicable) |
| 14 | ↓ |
| 15 | engagement-tracker → Pulls metrics 24h after posting |
| 16 | ↓ (conditional) |
| 17 | content-multiply → Repurposes winners (if threshold crossed) |
| 18 | ↓ |
| 19 | xhs-image-gen → Generates XHS carousels (if XHS in targets) |
| 20 | ``` |
| 21 | |
| 22 | ## Feedback Loops |
| 23 | |
| 24 | 1. **Quality Gate**: founder-content runs STEPPS scoring (≥40/60 to proceed). If score < 40, skill loops back and enriches the content angle before posting. |
| 25 | |
| 26 | 2. **Winner Detection**: engagement-tracker feeds results to content-multiply. Only posts crossing engagement thresholds (configurable) trigger repurposing. |
| 27 | |
| 28 | 3. **Platform Learning**: Tracks which subreddits / target accounts yield best engagement. Updates platform targeting weights over time (stored in `memory/flywheel-state.json`). |
| 29 | |
| 30 | ## Step-by-Step Execution |
| 31 | |
| 32 | ### Phase 1: Detect (ship-digest) |
| 33 | |
| 34 | Call `ship-digest` skill with `github_username`. |
| 35 | |
| 36 | **Input →** github_username |
| 37 | **Output →** list of new repos with descriptions + commit summaries |
| 38 | |
| 39 | If no new repos: check `memory/YYYY-MM-DD.md` for any manually queued content ideas. If nothing: exit with `FLYWHEEL_IDLE`. |
| 40 | |
| 41 | ### Phase 2: Generate (founder-content) |
| 42 | |
| 43 | For each new repo / content idea, call `founder-content` skill. |
| 44 | |
| 45 | **Input →** repo description + README summary |
| 46 | **Output →** platform drafts: {twitter: "...", linkedin: "...", reddit: "..."} |
| 47 | |
| 48 | Run STEPPS quality check. If any platform draft scores < 40/60: |
| 49 | - Identify weak dimensions |
| 50 | - Enrich content angle (add specifics, data, story arc) |
| 51 | - Regenerate that platform's draft |
| 52 | |
| 53 | ### Phase 3: Distribute (social-post + reddit-cultivate) [PARALLEL] |
| 54 | |
| 55 | Simultaneously: |
| 56 | |
| 57 | **Twitter/LinkedIn:** Call `social-post` skill |
| 58 | **Input →** content (founder-content output for platform), platforms list |
| 59 | **Output →** post_ids, URLs |
| 60 | |
| 61 | **Reddit:** Call `reddit-cultivate` skill if topic fits a relevant subreddit |
| 62 | **Input →** content (reddit-adapted draft), target subreddits |
| 63 | **Output →** comment URLs, quality scores |
| 64 | |
| 65 | Log all posted URLs to `memory/YYYY-MM-DD.md` in standard table format. |
| 66 | |
| 67 | ### Phase 4: Measure (engagement-tracker) [RUNS 24H LATER] |
| 68 | |
| 69 | Triggered by cron 24h after Phase 3. |
| 70 | |
| 71 | **Input →** yesterday's posted URLs (from daily memory log) |
| 72 | **Output →** metrics per post {platform, url, upvotes/likes/views, replies} |
| 73 | |
| 74 | ### Phase 5: Multiply (content-multiply) [CONDITIONAL] |
| 75 | |
| 76 | Only runs if Phase 4 finds posts crossing engagement thresholds. |
| 77 | |
| 78 | **Input →** engagement data from Phase 4 |
| 79 | **Output →** derivative drafts {platform, content, suggested_date} |
| 80 | |
| 81 | If XHS is in target platforms and winner has 3+ slides worth of content: |
| 82 | - Generate content JSON structure |
| 83 | - Call `xhs-image-gen` to produce carousel images |
| 84 | - Queue for manual upload |
| 85 | |
| 86 | ### Phase 6: Report |
| 87 | |
| 88 | Send summary to user: |
| 89 | |
| 90 | ``` |
| 91 | 🔄 Content Flywheel — [date] |
| 92 | |
| 93 | Phase 1 (Detect): [N] new repos / content ideas |
| 94 | Phase 2 (Generate): [N] drafts created, avg STEPPS score [X]/60 |
| 95 | Phase 3 (Distribute): Posted to [platforms] — [URLs] |
| 96 | Phase 4 (Measure): Best performer: [platform] [X upvotes/likes] |
| 97 | Phase 5 (Multiply): [N] derivatives queued / IDLE (no winners yet) |
| 98 | |
| 99 | Next cycle: [scheduled time] |
| 100 | ``` |
| 101 | |
| 102 | ## State File |
| 103 | |
| 104 | `memory/flywheel-state.json`: |
| 105 | |
| 106 | ```json |
| 107 | { |
| 108 | "last_run": "ISO8601", |
| 109 | "platform_weights": { |
| 110 | "reddit": {"r/ClaudeAI": 0.8, "r/SideProject": 0.4}, |
| 111 | "twitter_targets": ["levelsio", "paulg", "dickiebush"] |
| 112 | }, |
| 113 | "pending_engagement_checks": [ |
| 114 | {"url": "https://...", "posted_at": "ISO8601", "check_due": "ISO8601"} |
| 115 | ], |
| 116 | "repurpose_queue": [] |
| 117 | } |
| 118 | ``` |
| 119 | |
| 120 | ## I/O Contract Summary |
| 121 | |
| 122 | | Phase | Skill Called | Key Input | Key Output | |
| 123 | |-------|-------------|-----------|------------| |
| 124 | | 1 | ship-digest | github_username | new_repos list | |
| 125 | | 2 | founder-content | repo descr |