What Is Olympus
The Mission
Olympus is an AI-powered operating system for building and scaling DTC brands. It's a team of specialized agents working alongside humans to execute marketing, content, analytics, and growth -- around the clock, at superhuman scale.
The goal: Build a best in class agentic operating system that allows us to be 10x more productive, effective and efficient so that we can add more value to our customers than anyone else could possibly imagine creating billions of dollars in value.
The moat: When we build or acquire a new brand, the entire Olympus agent team deploys to that brand in days, not months. World-class specialists, instantly. That's the competitive advantage no one else has.
Executive Team
Mink, CEO
Co-founder of Live Bearded. Visionary, operator, builder. Sets the direction, makes the calls. Moves fast, thinks big, zero patience for anything that slows the mission.
Spencer, COO
Co-founder. The integrator. Takes Mink's vision and makes it operational. Keeps the team aligned and the business moving. The Beard Expert -- 90% of product/education content.
Regina, Executive Assistant
Operational link between leadership and the agent team. Her direction carries full authority from both founders.
Atlas, AIO
Mink's strategic partner. Runs in Claude Code on the laptop for deep work. Manages all agent infrastructure, coordinates across departments, builds the systems. The architect.
Agent Status Dashboard
| Agent |
Phase 0 Design |
Phase 1 Brain |
Phase 2 Bot |
Phase 3 Deploy |
Phase 4 Verify |
Phase 5 Live |
| Apollo |
Done |
Incomplete |
Done |
Done |
Blocked |
Not Ready |
| Midas |
Done |
Done |
Done |
Done |
Not Tested |
Not Ready |
What's Blocking Midas & Apollo
Midas -- Phase 1 Incomplete
Bot and deployment work. The infrastructure is done. The problem is the brain.
- Brand Brain (Layers 1-3) never loaded
- Knowledge files contain AI-generated content instead of real verified data
- CANI best_practices.md built from AI training data, not from $3.58M spend analysis
- Phase 4 verification failed -- agent used generic knowledge, not LB-specific data
Fix: Rebuild Phase 1 from scratch using the playbook. Real Brand Brain, real data, real playbooks. Then re-run Phase 4.
Apollo -- Phase 1 Incomplete
Same problem as Midas. Infrastructure works but the brain has AI-generated content.
- Brand Brain (Layers 1-3) never loaded
- Knowledge files not built from real Klaviyo data
- Phase 4 never run
Fix: Same as Midas. Rebuild Phase 1 properly, then run Phase 4.
The Bottom Line
No agent is "done" until it passes Phase 4. No exceptions. No shortcuts.
Atlas owns this. When in doubt: stop, verify, ask Mink.
The cost of pausing is always lower than the cost of shipping broken.
The Agent Roster
LiveCommander
Atlas
AI Co-CEO. Strategic partner. Manages all infrastructure, coordinates departments, builds systems.
TBDAd Hooks
Ares
Ad Hook Writer. Scroll-stopping hooks for video and static ads.
TBDAd Scripts
TBD
Ad Script Writer. Full video ad scripts with shot-by-shot direction.
TBDCreative Analysis
Iris
Creative Angle Analyst. Identifies winning angles, fatigue, new test opportunities.
TBDCreative Strategy
TBD
Creative Strategist. Winning angles, creative fatigue detection, new test opportunities, performance-to-creative feedback loops.
BuildingCampaign Email
Apollo
Campaign Email Writer. Weekly broadcasts -- promotional, educational, community.
TBDFlow Email
TBD
Flow Email Writer. Automated Klaviyo flows -- welcome, post-purchase, winback.
TBDSMS
Hermes
SMS Campaign Writer. Promotions, launches, automated sequences.
TBDEmail/SMS Optimization
TBD
Email/SMS Optimizer. A/B tests, send time optimization, segmentation.
TBDSEO Content
TBD
SEO Content Writer. Blog posts, landing pages, organic search.
TBDContent Repurposing
TBD
Content Repurposer. YouTube to clips, email to social, cross-channel.
TBDSocial Posts
Aura
Social Post Writer. Instagram, Facebook, TikTok captions.
TBDCommunity
Pan
Community Manager. Brotherhood group, comments, engagement.
TBDSocial Strategy
Agora
Social Strategist. Content calendar, trend analysis, platform strategy.
BuildingMeta
Midas
Meta Media Buyer. Daily performance monitoring, kill/scale/keep decisions.
TBDGoogle
TBD
Google Ads Media Buyer. Search, Shopping, Performance Max.
TBDYouTube
TBD
YouTube Ads Media Buyer. Video campaigns, audience targeting, creative performance.
TBDTikTok
TBD
TikTok Ads Media Buyer. Spark ads, creator content, trend-based campaigns.
TBDAppLovin
TBD
AppLovin Media Buyer. Performance campaigns, audience expansion.
TBDPerformance Analytics
TBD
Performance Analyst. Cross-channel analytics, attribution, MER tracking.
TBDLead Magnets
TBD
Lead Magnet Creator. Quizzes, guides, free resources.
TBDLead Optimization
TBD
Lead Gen Optimizer. Funnel optimization, conversion rate improvement.
How to read the cards: Green border = Live and operational. Gold border = Currently being built. Gray border = Designed but not yet started.
The Infrastructure
Olympus (Mac Mini M4)
The server. Always-on machine that runs all agent bots 24/7. Located on-premise. Accessible via SSH (ssh olympus) from anywhere via Tailscale.
Nightly auto-backup to GitHub. Memory sync every 15 minutes between laptop and Olympus.
How Agents Run
Telegram bots powered by the Anthropic API. Each agent is a Python script running as a macOS LaunchAgent (auto-start, auto-restart). Mink talks to agents via Telegram on his phone.
Data pipelines run via cron ($0 cost). LLM calls only happen when Mink messages or on scheduled analysis.
The Gold Standard
Every Agent Follows This Exact Structure
No exceptions. No shortcuts. This is the definitive file structure for every agent on Olympus. TEMPLATE files are shared across all agents (copy from master). DYNAMIC files are built custom for each agent by Atlas + Mink together.
Shared Protocols Shared
Parent level: atlas/agents/_protocols/ -- one copy for all agents
| File | Purpose | Type |
| cani_research_prompt.md | Shared CANI session prompt | Template |
| agent_onboarding_prompt.md | Shared onboarding prompt | Template |
| Agent_Build_Playbook.html | This document | Template |
Per-Agent Root Paths:
Laptop (source of truth): atlas/agents/{agent-name}/
Olympus (deployed copy): ~/olympus/team/{agent-name}/
Identity Files -- root of agent folder
| File | Purpose | Type |
| SOUL.md | Operating system -- 30 rules, values, communication standards | Template |
| USER.md | How to work with Mink and Spencer | Template |
| IDENTITY.md | Olympus mission, team structure, departments | Template |
| SKILL.md | THIS AGENT'S JOB -- the most important file | Dynamic |
| heartbeat.md | Agent health and status | Auto |
memory/ -- starts empty, grows over time
| File | Purpose | Type |
| episodic.md | Session notes -- what happened, when | Auto |
| semantic.md | Domain knowledge accumulated | Auto |
| procedural.md | How-to knowledge from experience | Auto |
| working/ | Scratch space for in-progress work | Auto |
knowledge/ -- Brand Brain + domain expertise
| File | Purpose | Type |
| brand-voice.md | Layer 1 Brand Voice Bible (VERBATIM copy) | Template |
| channel-guide.md | Layer 2 -- only channels this agent touches | Dynamic |
| agent-brief.md | Layer 3 -- this agent's specific brief | Dynamic |
| brand-profile.md | Business context, verified numbers | Dynamic |
| benchmarks.md | KPI targets with math shown | Dynamic |
| playbooks/ | Decision trees for common scenarios | Dynamic |
| research/ | Research materials, data analysis | Auto |
cani/ -- Constant And Never-ending Improvement
| File | Purpose | Type |
| sources.md | Practitioners to follow (curated by Atlas + Mink) | Dynamic |
| best_practices.md | Proven patterns -- baseline from real data | Dynamic |
| study_log.md | CANI session history | Auto |
| changelog.md | Record of what changed and when | Auto |
| queue.md | Research topics flagged for study | Auto |
tools/ -- what this agent can use
| File | Purpose | Type |
| manifest.json | What tools this agent has access to | Dynamic |
| scripts/ | Agent-specific utility scripts | Auto |
| api_clients/ | API integration code | Auto |
security/ -- permissions and audit
| File | Purpose | Type |
| permissions.yaml | What this agent can and cannot do | Dynamic |
| authorized_contacts.md | Who can give this agent instructions | Dynamic |
| audit.jsonl | Audit trail of actions (auto-populated) | Auto |
data/ and scripts/ -- outputs and automation
| File | Purpose | Type |
| data/reports/ | Generated reports | Auto |
| data/exports/ | Data exports | Auto |
| scripts/daily_pull.py | $0 data pull script (if applicable) | Dynamic |
Template vs Dynamic Breakdown
Template Files (Copy from Master)
These are identical across every agent. Copy once, never customize.
| File | What It Is |
| SOUL.md | Operating system. 30 hard rules. Values. Communication standards. |
| USER.md | Who Mink and Spencer are. How they communicate. What they hate. How to push back. |
| IDENTITY.md | Olympus mission. Department structure. Agent roster. EOS framework. |
| brand-voice.md | Layer 1 Brand Voice Bible. The 6 rules. Emotional blueprint. Verbatim copy. |
Source: Master copies live in atlas/agents/_templates/. When building a new agent, copy these files verbatim. Never modify per-agent.
Dynamic Files (Custom Per Agent)
These are built by Atlas + Mink together for each agent. This is where the real work happens.
| File | Who Builds It |
| SKILL.md | Atlas + Mink. Mink describes the job, Atlas writes it, Mink approves. |
| channel-guide.md | Atlas extracts only the channels this agent touches from Layer 2. |
| agent-brief.md | Atlas extracts from Layer 3 PDF. One brief per agent. |
| brand-profile.md | Atlas builds from verified data. Every number traceable to a source. |
| benchmarks.md | Atlas builds from real financials. Must show the math. |
| playbooks/ | Atlas + Mink. Real decision trees, not theoretical frameworks. |
| permissions.yaml | Atlas defines. Mink approves. What the agent can/can't do. |
| manifest.json | Atlas defines. What tools the agent has access to. |
| sources.md | Atlas + Mink curate practitioners and thought leaders for this domain. |
| best_practices.md | Atlas builds baseline from verified data. CANI adds to it over time. |
Bot Infrastructure (On Olympus)
Bot Script -- ~/olympus/infrastructure/telegram-{agent-name}/
| File | Purpose |
| {agent}_telegram_bot.py | The bot script -- Python, Anthropic API, Telegram integration |
| .env | TELEGRAM_BOT_TOKEN, ANTHROPIC_API_KEY, MINK_CHAT_ID |
LaunchAgent -- ~/Library/LaunchAgents/
| File | Purpose |
| com.{agent}.telegram-bot.plist | macOS auto-start + auto-restart (NEVER nohup) |
The Journey: Zero to Hero
G = Quality Gate. Agent cannot proceed until gate passes.
0
Design the Agent
Atlas + Mink together. Before a single file is created.
Purpose: Define exactly what this agent does, doesn't do, and how it fits into the team. If we can't describe the job in one sentence, we're not ready to build.
Name the agent
Greek mythology name that fits the role.
Define the job in one sentence
If you need two sentences, the scope is too wide. Split it.
Assign department
Ad Creative | Email & SMS | Content & SEO | Social Media | Analytics | Lead Gen
Define what the agent does NOT do
Equally important. Prevents scope creep and agent conflicts.
Identify coordination points
Which agents does it work with? What data flows between them?
Choose the model
Opus for Atlas only. Sonnet 4.6 for all specialist agents.
Define outputs and schedule
Daily reports? On-demand analysis? HTML reports? Cron schedule?
Identify data sources
Meta API? Shopify? Klaviyo? Manual data from Mink? List every source.
Mink confirms: "This is the job. Go."
Do not proceed without explicit approval.
Gate 0: Mink Approval
Mink must confirm the agent's job, scope, and output before ANY files are created.
1
Build the Brain
Atlas + Mink together. Content only. No code. This is where most agents fail.
THE RULE: Every fact must trace to a real, verified source. If you can't point to where a number came from, it doesn't go in the file. AI-generated knowledge = kill on sight.
Step 1A: Identity Files
Copy from Template
SOUL.md
Copy verbatim from template. 30 hard rules, values, communication standards.
Source: atlas/agents/_templates/SOUL.md
IDENTITY.md
Copy verbatim. Olympus mission, departments, agent roster.
Source: atlas/agents/_templates/IDENTITY.md
USER.md
Copy verbatim. Who Mink is, how to work with him.
Source: atlas/agents/_templates/USER.md
SKILL.md -- BUILD TOGETHER
Mink describes the job. Atlas writes it. Mink approves. This is the most important file in the agent.
Source: Built from scratch by Atlas + Mink. Not templated.
Step 1B: Brand Brain
The 3-Layer Brand Voice System
| File | Layer | Source | Rule |
| brand-voice.md | Layer 1: Universal Foundation | Copy VERBATIM from live-bearded/brand/Brand_Voice_Bible_Layer1.md | Verbatim. Never summarize. |
| channel-guide.md | Layer 2: Channel Guides | Extract from Brand_Voice_Bible_Layer2_Channel_Guides.md | Only this agent's channels |
| agent-brief.md | Layer 3: Agent Brief | Extract from LB_Agent_Voice_Briefs_v2.pdf | This agent's brief only |
Quality bar: If Spencer reads what the agent writes and says "that doesn't sound like us" -- the Brand Brain isn't loaded properly.
Step 1C: Knowledge Files
Real Data Only -- Zero AI Generation
brand-profile.md
Revenue, customers, AOV, LTV, product lines, margins, account details.
Source: memory/shopify_data.md + memory/meta_ads_data.md + memory/klaviyo_data.md
benchmarks.md
KPI targets, alert thresholds, breakeven points. Must show the math.
Source: Calculated from real financials (55% margin = 1.82x breakeven ROAS)
playbooks/
Domain-specific decision trees. Actionable, not theoretical.
Source: Real account data + practitioner frameworks Mink approves
Data Sources by Agent Type
| Data | Verified Source | Which Agents |
| Meta creative rules (10 rules) | memory/meta_ads_data.md -- $3.58M spend analysis | Midas, Ares, Iris |
| Shopify customer data | memory/shopify_data.md -- 888K orders | ALL agents |
| Klaviyo email rules (10 rules) | memory/klaviyo_data.md -- 3,275 campaigns | Apollo, Hermes |
| Product catalog + corrections | memory/feedback_product_corrections.md | ALL agents |
| Brand guidelines | memory/lb_brand_guidelines.md | ALL agents |
Step 1D: CANI System
Continuous And Never-ending Improvement
Every agent has a CANI system that allows it to grow smarter over time. The baseline is set at launch from real data. CANI sessions add to it.
sources.md
Curate 5-10 practitioners, blogs, thought leaders for this agent's domain.
Atlas + Mink curate together. Not AI-generated.
best_practices.md
Baseline proven patterns from verified data. CANI sessions add new ones over time.
Initial baseline from real analysis only.
queue.md, study_log.md, changelog.md
Start empty. Fill over time as the agent learns.
Step 1E: Security & Tools
permissions.yaml
Read-only by default. List exactly what this agent can and cannot do.
authorized_contacts.md
Mink, Spencer, Regina + any agent-specific contacts.
manifest.json
Define tools: generate_html_report, any domain-specific tools.
Gate 1: Brain Review
Mink reads SKILL.md, brand-profile.md, and benchmarks.md. If anything smells like AI slop -- generic best practices, numbers with no source, "consider testing" language -- it gets rewritten.
The agent does not proceed to Phase 2 until Mink says the brain is real.
2
Build the Bot
Atlas only. Code from the standard template. No Mink involvement needed.
Telegram Bot Code Requirements
.env loading at top of script
Manual file parsing. No python-dotenv. Parse BEFORE any third-party imports.
max_tokens=8192 on all API calls
4096 is too low for HTML reports. 8192 is the standard.
Correct model assigned
claude-opus-4-6 for Atlas ONLY. claude-sonnet-4-6 for all specialists.
try/except with logger.error in every handler
Text, photo, voice, document -- all wrapped. User-facing error message on failure.
max_tokens fallback
If Claude hits max_tokens during tool_use, retry without tools. Never silently fail.
System prompt loads ALL agent folders
identity/, knowledge/, references/, memory/, cani/, data/ -- all loaded.
Tool use loop with safety limit (loop_count < 5)
Process tool calls, send results back, loop until end_turn.
generate_html_report tool
Uses lb_report_template.py. LB branded design.
Vercel push for reports
push_report_to_vercel() returns public URL.
Data summaries, not raw JSON
Summarize to ~2KB. NEVER dump 200KB of raw JSON into the system prompt.
Conversation history (last 10 messages)
Maintain context within a session.
Telegram Bot Setup
Create bot via @BotFather
Name: {Agent Name} - Olympus. Username: {agent}_olympus_bot
Save credentials to .env
TELEGRAM_BOT_TOKEN, ANTHROPIC_API_KEY, MINK_CHAT_ID
Test locally on laptop first
Send a test message. Verify response. Check logs. Fix issues before deploying.
Data Pipeline (If Applicable)
Build data pull script (Python, no LLM calls = $0)
Saves to data/reports/YYYY-MM-DD.json. Pure API calls.
Credentials in ~/.openclaw/agents/{name}/credentials.json
Never in repo. Never in .env. Separate credential file.
Run manually and verify output
Check the JSON. Verify data is real. All fields populated.
3
Deploy to Olympus
Atlas only. Verified at every single step. One command at a time.
MANDATORY: Verify every step before moving to the next. Mink cannot code. Atlas is 100% responsible for quality. If Atlas doesn't catch it, nobody does.
Deploy Checklist
Rsync brain files to Olympus
rsync -avz atlas/agents/{agent}/ olympus:~/olympus/team/{agent}/
Verify files arrived
SSH in. head -5 on each critical file. Content matches.
Rsync bot script
To ~/olympus/infrastructure/telegram-{agent}/. Include .env separately.
Create LaunchAgent plist
RunAtLoad=true, KeepAlive=true. NEVER nohup.
Load LaunchAgent
launchctl load ~/Library/LaunchAgents/com.{agent}.telegram-bot.plist
Confirm process running
ps aux | grep {agent}. Must show the Python process.
Check logs for clean startup
No errors. Bot logs "Started polling" or equivalent.
Set up cron (if data pipeline)
crontab -e. Verify with crontab -l. Run manually once.
Gate 3: Deployment Verified
Bot process running. Logs clean. Data pipeline confirmed. All files verified on Olympus.
4
End-to-End Verification
Atlas runs every test. Mink does NOT see the agent until this passes.
10-Point Verification Protocol
Send test message in Telegram
Simple greeting. Verify bot receives it (check logs).
Verify Claude API responds
Logs show API response. No errors. Correct model.
Verify reply is coherent and on-brand
Does it say "brother" not "customer"? Does it sound like LB?
Ask a domain-specific question
Answer must reflect verified data, not AI training data.
Test the 3-step system knowledge
Must say: Step 1 Wash & Condition, Step 2 Oil, Step 3 Butter. 4 products. Never skip conditioner.
Ask about its own capabilities
Must know its files, what it can do, what it can't. No "I don't have X" when X exists.
Request an HTML report
HTML generates. Vercel URL returned. Report renders correctly. LB branding present.
Verify CANI system is wired in
Agent knows its CANI files exist and what's in them.
Test error handling
Send something that might cause an error. Verify graceful handling, not a crash.
Run for 24 hours without intervention
No crashes, no memory leaks, no log errors. LaunchAgent keeps it alive.
Gate 4: Launch Approval
Every test above must pass. Every. Single. One.
If ANY test fails: diagnose, fix, re-deploy, re-test. Do not tell Mink the agent is ready until EVERY test passes.
If Atlas declares "ready" and it fails in front of Mink -- that is a trust violation.
5
Handoff to Mink
Only after ALL phases pass. The moment of truth.
Tell Mink the agent is live
"[Name] is live and tested. Here's what it can do."
Show a sample interaction
Screenshot or live demo. Real question, real answer, real data.
Walk through capabilities
What it does, what it doesn't, how to trigger reports, how to run CANI.
Mink sends first real message
Watch it work. If anything breaks, fix it right there.
Kill on Sight -- AI Slop Detector
If You See Any of These, the Agent is NOT Ready
Knowledge files with generic best practices not tied to LB's actual data
Benchmarks that don't show where the numbers came from
Playbooks that say "consider testing" instead of specific actions
References to iOS 14.5, deprecated Meta features, or pre-2025 strategies
Any file that reads like a blog post instead of an operator's handbook
Brand voice that sounds corporate, uses "customers" instead of "brothers", or hedges
Agent saying "I don't have access to X" when X is in its folder
Agent recommending generic strategies instead of LB-specific ones backed by data
Numbers presented as fact without a traceable source
Knowledge that could apply to any DTC brand instead of specifically Live Bearded
Empty or placeholder content ("populate during onboarding", "TBD")
Bot running via nohup instead of LaunchAgent
Raw JSON dumped into system prompt instead of summarized
max_tokens below 8192
Missing .env loading at top of bot script
Missing try/except error handling in any handler