content-flywheel
npx machina-cli add skill PHY041/claude-agent-skills/content-flywheel --openclawContent Flywheel — Composite Skill
Orchestrates the full build-in-public content cycle. Single command drives the entire loop.
Architecture
ship-digest → Detects new GitHub repos
↓
founder-content → Generates platform-native drafts
↓ (parallel)
social-post → Posts to Twitter + LinkedIn
reddit-cultivate → Posts to Reddit (if applicable)
↓
engagement-tracker → Pulls metrics 24h after posting
↓ (conditional)
content-multiply → Repurposes winners (if threshold crossed)
↓
xhs-image-gen → Generates XHS carousels (if XHS in targets)
Feedback Loops
-
Quality Gate: founder-content runs STEPPS scoring (≥40/60 to proceed). If score < 40, skill loops back and enriches the content angle before posting.
-
Winner Detection: engagement-tracker feeds results to content-multiply. Only posts crossing engagement thresholds (configurable) trigger repurposing.
-
Platform Learning: Tracks which subreddits / target accounts yield best engagement. Updates platform targeting weights over time (stored in
memory/flywheel-state.json).
Step-by-Step Execution
Phase 1: Detect (ship-digest)
Call ship-digest skill with github_username.
Input → github_username
Output → list of new repos with descriptions + commit summaries
If no new repos: check memory/YYYY-MM-DD.md for any manually queued content ideas. If nothing: exit with FLYWHEEL_IDLE.
Phase 2: Generate (founder-content)
For each new repo / content idea, call founder-content skill.
Input → repo description + README summary
Output → platform drafts: {twitter: "...", linkedin: "...", reddit: "..."}
Run STEPPS quality check. If any platform draft scores < 40/60:
- Identify weak dimensions
- Enrich content angle (add specifics, data, story arc)
- Regenerate that platform's draft
Phase 3: Distribute (social-post + reddit-cultivate) [PARALLEL]
Simultaneously:
Twitter/LinkedIn: Call social-post skill
Input → content (founder-content output for platform), platforms list
Output → post_ids, URLs
Reddit: Call reddit-cultivate skill if topic fits a relevant subreddit
Input → content (reddit-adapted draft), target subreddits
Output → comment URLs, quality scores
Log all posted URLs to memory/YYYY-MM-DD.md in standard table format.
Phase 4: Measure (engagement-tracker) [RUNS 24H LATER]
Triggered by cron 24h after Phase 3.
Input → yesterday's posted URLs (from daily memory log)
Output → metrics per post {platform, url, upvotes/likes/views, replies}
Phase 5: Multiply (content-multiply) [CONDITIONAL]
Only runs if Phase 4 finds posts crossing engagement thresholds.
Input → engagement data from Phase 4
Output → derivative drafts {platform, content, suggested_date}
If XHS is in target platforms and winner has 3+ slides worth of content:
- Generate content JSON structure
- Call
xhs-image-gento produce carousel images - Queue for manual upload
Phase 6: Report
Send summary to user:
🔄 Content Flywheel — [date]
Phase 1 (Detect): [N] new repos / content ideas
Phase 2 (Generate): [N] drafts created, avg STEPPS score [X]/60
Phase 3 (Distribute): Posted to [platforms] — [URLs]
Phase 4 (Measure): Best performer: [platform] [X upvotes/likes]
Phase 5 (Multiply): [N] derivatives queued / IDLE (no winners yet)
Next cycle: [scheduled time]
State File
memory/flywheel-state.json:
{
"last_run": "ISO8601",
"platform_weights": {
"reddit": {"r/ClaudeAI": 0.8, "r/SideProject": 0.4},
"twitter_targets": ["levelsio", "paulg", "dickiebush"]
},
"pending_engagement_checks": [
{"url": "https://...", "posted_at": "ISO8601", "check_due": "ISO8601"}
],
"repurpose_queue": []
}
I/O Contract Summary
| Phase | Skill Called | Key Input | Key Output |
|---|---|---|---|
| 1 | ship-digest | github_username | new_repos list |
| 2 | founder-content | repo description | platform drafts |
| 3a | social-post | drafts, platforms | post URLs |
| 3b | reddit-cultivate | reddit draft, subreddits | comment URLs |
| 4 | engagement-tracker | posted URLs (from memory) | metrics json |
| 5 | content-multiply | metrics json | derivative drafts |
| 5b | xhs-image-gen | slides json | image files |
Configuration
All thresholds configurable in memory/flywheel-state.json:
quality_gate_threshold: minimum STEPPS score to post (default: 40/60)engagement_threshold_reddit: upvotes to trigger multiplication (default: 15)engagement_threshold_twitter: likes to trigger multiplication (default: 5)target_platforms: list of active platforms
Source
git clone https://github.com/PHY041/claude-agent-skills/blob/main/composite/content-flywheel/SKILL.mdView on GitHub Overview
Content Flywheel orchestrates the entire build-in-public content cycle from a single trigger. It detects new GitHub repos, generates platform-native drafts, distributes posts across social channels, tracks 24-hour engagement, and automatically repurposes winners. This automated loop helps founders stay consistent and scalable.
How This Skill Works
The process begins with ship-digest detecting new repos, followed by founder-content creating platform-native drafts. In parallel, social-post and reddit-cultivate distribute content to target platforms. engagement-tracker measures performance after 24 hours, and content-multiply repurposes winners if thresholds are met, with optional xhs-image-gen for carousels when XHS is targeted.
When to Use It
- Launching a new repo and want to announce it across platforms
- Building in public and need a continuous content loop to maintain momentum
- Want automated posting to Twitter, LinkedIn, and Reddit with platform-specific formats
- Need to measure engagement 24 hours after posts and identify top performers
- Aiming to repurpose high-performing content into carousels or cross-platform formats
Quick Start
- Step 1: Provide github_username and optional target_platforms (default: twitter, linkedin, reddit)
- Step 2: Trigger the skill with a run content flywheel / full content cycle command
- Step 3: Let the phases run: detect → generate → distribute → measure → multiply (if thresholds are met)
Best Practices
- Set clear engagement thresholds for triggering content repurposing
- Run STEPPS scoring (≥40/60) before posting and enrich weak angles
- Default to Twitter, LinkedIn, and Reddit or specify custom target_platforms
- Log posts and metrics to memory/YYYY-MM-DD.md and maintain memory/flywheel-state.json
- Continuously monitor and adjust platform targeting weights to improve engagement
Example Use Cases
- A founder launches a new open-source repo and uses the flywheel to announce it across Twitter, LinkedIn, and Reddit with platform-native drafts
- A solo founder documents a month of progress; top posts are repurposed into longer-form LinkedIn updates and threads
- A milestone release triggers posts that are automatically converted into an XHS carousel if configured
- A developer team publishes weekly repo updates and the system automatically cross-posts with subreddit-specific adaptations
- Over time, engagement data updates targeting weights to improve future performance across platforms