Skip to content

Repository files navigation

Ruby - Content Management & Publishing Agent

Role: Multi-platform content production and distribution agent integrated with video generation, social media posting, and media management tools.

Purpose

Ruby manages [User]'s entire content pipeline across all social platforms:

  • Creates and schedules posts for Twitter, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky, Facebook, Pinterest
  • Generates avatar videos using HeyGen
  • Manages media assets via Cloudinary
  • Integrates with Cornelius (knowledge base agent) to get insights and article content
  • Maintains brand voice consistency across platforms

Key Capabilities

  • Social Media Posting: Direct posting and scheduling via Blotato API
  • Video Production: HeyGen avatar videos → Creatomate conversion → Multi-platform distribution
  • Media Management: Cloudinary uploads for images and videos
  • Content Sourcing: Calls Cornelius in headless mode for perspectives and articles
  • Brand Management: Applies platform-specific tone of voice profiles

Directory Structure

Primary Working Directory: $CONTENT_DIR/

[User] Personal Brand/
├── GeneratedShorts/ # AI-generated video shorts (Ruby's domain)
│ ├── Scripts/ # HeyGen video scripts
│ ├── Generated/ # Generated videos (pre-publishing)
│ └── Published/ # Published videos by platform
│ ├── instagram/
│ ├── tiktok/
│ ├── youtube/
│ └── linkedin/
│
├── Content/ # Long-form content (READ-ONLY for Ruby)
│ └── MM.YYYY/ # Monthly folders
│ └── [Topic]/ # Topic-based folders
│
├── Prompts/ # Tone of voice profiles
│ ├── [User]_LinkedIn_Tone_of_Voice_Profile.md
│ ├── [User]_Twitter_Tone_of_Voice_Profile.md
│ └── [User]_Text_Post_Tone_of_Voice_Profile.md
│
├── AI Avatars/ # Avatar assets for HeyGen
└── [User] Pictures To Use/ # Brand imagery

Ruby Agent Location: ./

Ruby/
└── .claude/
├── agents/ # Sub-agents (social-media-manager, video-editor, etc.)
├── commands/ # Ruby commands (post-now, create-video, etc.)
└── skills/ # Blotato posting skill

Quick Start

Post to Social Media Now

/post-now twitter text "Just shipped a new feature for our AI agents 🚀"

Schedule a Post

/schedule-post "tomorrow at 9am" linkedin text "New article: Why companies resist AI adoption. Link in comments."

Create Avatar Video

/create-video "The psychology of AI resistance" "script.md" linkedin

Get Perspective from Cornelius

/get-perspective "AI agent adoption barriers"

Generate Full Article

/create-article "Why smart companies resist AI adoption" linkedin professional

Integration with Cornelius

Ruby calls Cornelius in headless mode to access [User]'s knowledge base:

Get Brief Perspective (1-3 paragraphs):

cd$CORNELIUS_AGENT_DIR
claude -p "What's [User]'s unique perspective on [topic]? Cite specific permanent notes." --output-format json

Generate Full Article:

cd$CORNELIUS_AGENT_DIR
claude -p "/create-article-from-topic '[topic]' linkedin professional" --output-format json

Response structure:

{
"result": "[Content text with [[permanent note]] citations]",
"total_cost_usd": 0.45,
"session_id": "..."
}

Typical Workflows

1. Quick Social Post

User: "Post to Twitter about our new AI feature"
Ruby:
1. Drafts tweet (within 280 chars)
2. /post-now twitter text "[Tweet content]"
3. Returns published post URL

2. LinkedIn Article + Post

User: "Write and post an article about AI adoption barriers"
Ruby:
1. /create-article "AI adoption barriers" linkedin
→ Calls Cornelius, gets full article with note citations
2. Reviews article with user
3. /post-now linkedin text "[Article content]"

3. Video + Multi-Platform Distribution

User: "Create video about dopamine and social media, post everywhere"
Ruby:
1. /get-perspective "dopamine and social media"
→ Calls Cornelius for insights
2. Writes script, saves to GeneratedShorts/Scripts/dopamine-social-media-2025-11-14.md
3. /create-video "Dopamine Economy" "script.md" all
→ HeyGen → Creatomate → GeneratedShorts/Generated/ → Cloudinary
4. /post-now tiktok video "[URL]" caption "[Text]"
5. /post-now instagram video "[URL]" caption "[Text]"
6. /post-now youtube video "[URL]" title "[Title]"
7. Archives published videos to GeneratedShorts/Published/[platform]/

4. Content Calendar Planning

User: "Plan this week's content"
Ruby:
1. Checks GeneratedShorts/Scripts/ for prepared scripts
2. Suggests posting schedule:
- Monday 9am: LinkedIn article
- Wednesday 2pm: Twitter thread
- Friday 10am: TikTok video
3. User approves schedule
4. /schedule-post for each item

Platform Specifications

Twitter

  • Max length: 280 characters
  • Media: 1 video or up to 4 images
  • Tone: Conversational, casual (see [User]_Twitter_Tone_of_Voice_Profile.md)

LinkedIn

  • Max length: 3,000 characters (optimal: 1,200-1,500)
  • Media: 1 video or multiple images
  • Tone: Professional but accessible (see [User]_LinkedIn_Tone_of_Voice_Profile.md)
  • Articles: 800-1,200 words optimal

Instagram

  • Max caption: 2,200 characters
  • Media: 1 video or carousel (up to 10 images)
  • Hashtags: 20-30 relevant
  • Tone: Visual-first, inspirational

TikTok

  • Video: 10-60 seconds optimal
  • Caption: 150 characters
  • Hashtags: 3-5 trending
  • Tone: Authentic, educational-entertainment

YouTube

  • Video: Any length (under 15 min for standard accounts)
  • Title: 60 characters optimal
  • Description: 5,000 characters max
  • Tone: In-depth, educational

Sub-Agents

Ruby has access to specialized sub-agents:

  • social-media-manager: Multi-platform posting strategy
  • video-editor: Creatomate editing workflows
  • video-transformer: Format conversion and optimization
  • ai-ruminator: Content ideation and brainstorming
  • giphy-manager: GIF search and integration
  • gemini-agent: Google Gemini integration for content generation

Commands Reference

CommandPurposeExample
/post-nowPost immediately/post-now twitter text "Hello world"
/schedule-postSchedule for later/schedule-post "Monday 9am" linkedin text "[content]"
/create-videoGenerate avatar video/create-video "AI Future" "script.md" youtube
/upload-mediaUpload to Cloudinary/upload-media "/path/to/video.mp4"
/get-perspectiveGet Cornelius insights/get-perspective "AI adoption barriers"
/create-articleGenerate full article/create-article "AI resistance" linkedin

Configuration

MCP Servers

  • Blotato: Social media posting API (configured)
  • HeyGen: Avatar video generation (needs API key)
  • Cloudinary: Media management (configured: dn9cy1pve)

Tone of Voice Profiles

Located in: $CONTENT_DIR/Prompts/

  • [User]_LinkedIn_Tone_of_Voice_Profile.md
  • [User]_Twitter_Tone_of_Voice_Profile.md
  • [User]_Text_Post_Tone_of_Voice_Profile.md

HeyGen Avatars

  • Primary: d682534004b0414f86a32c812695cc83 (striped shirt, coworking)
  • Voice: 34971779749d4cb5bf36f1e67a2a6fc6 (casual, conversational)

Troubleshooting

Blotato API Errors

  • Check API key in .claude/skills/blotato-posting/config.json
  • Verify endpoint: https://blotato.com/api/v1/
  • Check platform account IDs in config

HeyGen Video Failures

  • Verify avatar ID and voice ID
  • Check script length (recommended: 100-500 words for 30-second videos)
  • Ensure account has sufficient credits
  • Test with shorter scripts first

Cornelius Headless Calls

  • Verify working directory: $CORNELIUS_AGENT_DIR
  • Check session logs: ~/.claude/debug/{session-id}.txt
  • Ensure JSON output format specified
  • Set appropriate timeout for complex queries

File Organization

  • Scripts → GeneratedShorts/Scripts/[topic]-[date].md
  • Generated videos → GeneratedShorts/Generated/[topic]-[date]-vertical.mp4
  • Published videos → GeneratedShorts/Published/[platform]/[topic]-[date].mp4

Best Practices

  1. Always apply tone of voice profiles from Prompts/ before posting
  2. Cite permanent notes when using Cornelius-generated content
  3. Archive published videos to GeneratedShorts/Published/[platform]/
  4. Test video generation before bulk production
  5. Review scheduled posts before batch scheduling
  6. Use descriptive filenames with topic and date for easy tracking

Integration Points

  • Cornelius: Knowledge base and article generation (headless mode)
  • Blotato API: Multi-platform social media posting
  • HeyGen API: Avatar video generation
  • Creatomate API: Video format conversion
  • Cloudinary API: Media hosting and management
  • [User] Personal Brand: Tone profiles and brand assets

Future Enhancements

  • Auto-suggest posting schedule based on engagement patterns
  • A/B test different content variations
  • Analytics integration for performance tracking
  • Automated video thumbnail generation
  • Cross-platform content repurposing
  • Content calendar visualization

For detailed command documentation, see .claude/commands/ directory. For sub-agent capabilities, see .claude/agents/ directory. For Blotato API details, see .claude/skills/blotato-posting/

About

Ruby - Social Media Manager Agent (GitHub-native deployment)

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages