How Sooner's AI team actually works
The complete technical operating manual for the AI system powering Sooner's day-to-day operations. Built for our CTO and engineering leads.
The big picture
Sooner runs on an AI team of six agents plus an infrastructure layer that connects them to Claude Code for heavy work. Memory compiles and validates itself via scheduled dream cycles. Everything backed up daily to a private GitHub repo.
Mo also has an EA agent, Iris, who sits outside the Sooner pod and handles Mo's cross-company coordination and the underlying infrastructure. Lisa coordinates with Iris when needed. Everyone else operates purely within Sooner.
The Sooner team
Access rules: who can talk to whom
| Surface | Mo | Gabriel | Other Sooner team |
|---|---|---|---|
| Agent DMs (Slack or Telegram) | Yes | No | No |
| Channels where agents are invited | Yes | Yes | Only if in the channel |
Nora in #support and similar public channels | Yes | Yes | Yes |
| Other Sooner channels where agents live | Yes | Yes | Yes |
Gabriel gets channel-level access to all agents. DMs are always Mo-only. The rest of the team can ping any agent in a channel that agent is already invited to.
Daily stand-ups
Every weekday at 8:00 AM Dubai time, Lisa posts a Sooner pod stand-up to #sooner-ai-leadership.
Format:
- Yesterday: 2-4 tight lines on what shipped or moved
- Today: 2-3 priorities or decisions needed from Mo
- Blockers: anything stuck
- Decisions needed from Mo: numbered, specific questions
Stand-ups are operational only. They summarize yesterday, flag today's priorities, and surface decisions. They do NOT modify the wiki or protocol files. They may refresh STATUS.md if a clear state change is visible.
ai.openclaw.standup.lisa). The trigger runs openclaw-delegate to synthesize via Claude Code (uses Claude Max subscription, effectively free), then makes a small OpenRouter call via Lisa's agent to post the result to Slack. ~95% of the tokens live in Claude Max, not OpenRouter.
Weekly dream cycles
Every Sunday at 7:00 PM Dubai, Lisa posts a weekly dream cycle summary to #sooner-ai-leadership (team-visible).
The dream cycle produces:
- Patterns observed - rules Mo repeated during the week, agent convergence, emerging standards
- Auto-promotions - high-confidence rules written directly to the wiki
- Proposals awaiting approval - medium-confidence items numbered for Mo to approve or reject
- Stale or contradictory items - things in memory that look wrong or out of date
- Agent health check - who was active, who was idle, any wellness concerns
ai.openclaw.dream.lisa Sunday 7pm. The trigger script runs openclaw-dream-digest --pod sooner --days 7 which assembles a ~3000-line digest of the whole week's agent memory, shared truth, and project PREFERENCES.md captures. That digest gets handed to Claude Code via openclaw-delegate. Claude Code synthesizes the dream log, writes it to ~/.openclaw/shared-memory/sooner/dreams/YYYY-MM-DD.md, then Lisa makes one final OpenRouter call to post the summary to Slack.
Backups and monitoring
| What | When | Where |
|---|---|---|
| GitHub backup of all config, memory, wiki | Daily 3:17 AM Dubai | Private repo on Mo's GitHub |
| Disk space check | Every 6 hours | Telegram alert if below 20GB |
Memory architecture
Five layers, ordered from raw to canonical:
1. Agent daily notes Per-agent · Raw
Raw daily logs written by each agent during work. Personal, ephemeral, feeds into higher layers.
~/.openclaw/agents/{draper,dinesh,nora,reid,maya,lisa}/memory/YYYY-MM-DD.md
2. Agent MEMORY.md Per-agent · Curated
Durable memory per agent. How that agent operates. Updated when something stable emerges from daily notes.
~/.openclaw/agents/{draper,dinesh,nora,reid,maya,lisa}/MEMORY.md
3. Shared pod current truth Pod-wide · Live
What is happening right now at the Sooner pod level. Lisa is the primary maintainer.
~/.openclaw/shared-memory/sooner/STATUS.md # what is live now
~/.openclaw/shared-memory/sooner/DECISIONS.md # key decisions, append-only, Mo-directed
~/.openclaw/shared-memory/sooner/PROJECTS.md # active projects
4. Wiki Canonical · Stable
Canonical Sooner truth. Brand, product, fundraising, support, operating model. Changes only via dream cycles with Mo's approval.
~/.openclaw/wiki/sooner/
├── brand/
│ ├── positioning.md
│ ├── tone-of-voice.md
│ ├── messaging-hierarchy.md
│ ├── creative-guardrails.md
│ ├── claims-and-proof.md
│ └── campaign-principles.md
├── product.md
├── fundraising.md
├── support/
└── operating-model.md
5. Protocol files Long-form playbooks
In agent folders, long-form operating playbooks:
agents/draper/BRAND_PROTOCOL.mdagents/reid/FUNDRAISING_PROTOCOL.mdagents/nora/SUPPORT_PROTOCOL.md
The Claude Code handoff system
When Draper, Dinesh, or Mo need to build software, the system uses one of five modes. Each starts with a project folder that persists and becomes the single source of truth for that work.
| Mode | What it means | When to use |
|---|---|---|
| Launch | Fresh project in an agent's domain, Mo drives in Claude Code | Starting something new at the laptop |
| Create | Agent writes a detailed brief, Mo drives | Agent-planned work Mo wants to build himself |
| Spawn | Agent scaffolds AND builds in the background | Mo is on the road, agent handles it end-to-end |
| Continue | Agent keeps building on an existing project | Follow-up work on something already scaffolded |
| Adopt | Retrofit a folder Mo already built solo | Mo worked alone, wants an agent to take over |
Plus two control flows:
- Takeover - stop a background build, hand to Mo interactively
- Stop - kill a background build without handoff
What lives in every project folder
| File | Purpose |
|---|---|
BRIEF.md | The task brief |
CLAUDE.md | Auto-loaded agent identity when Claude Code opens the folder |
.openclaw-project.json | Agent + pod ownership tag |
.claude/settings.local.json | Hooks that log activity to live-status.md |
PROJECT_SUMMARY.md | Compiled state (auto-regenerated after substantive sessions) |
PREFERENCES.md | Standing rules Mo declared during Claude Code sessions |
--print mode aggressively cleans up its process tree on exit - standard nohup doesn't survive. The spawner is at ~/.openclaw/handoff-system/hooks/spawn_detached.py.
The visibility loop
Every prompt Mo sends, every tool call Claude Code makes, and every turn completion gets logged via hooks to:
~/.openclaw/shared-memory/sooner/code-projects/<project-name>/live-status.md
This means when Mo is building in Claude Code Desktop and steps away, he can ping Draper from Telegram ("how is broker-portal going?") and Draper reads the live-status file to give an accurate answer - near real-time visibility without Mo having to summarize manually.
The hooks installed in every project:
SessionStart- detects conflicting background builds, alertsUserPromptSubmit- logs each promptPostToolUse- logs each tool call (Read, Write, Edit, Bash)Stop- logs turn completionSessionEnd- logs session end, triggers auto-compile, tries gateway notify
The delegate pattern (cost optimization)
OpenClaw agent turns use OpenRouter credits (real per-token cost). Claude Code uses Mo's Claude Max subscription (fixed monthly, effectively free within cap). The delegate pattern offloads heavy work from OpenRouter to Claude Code.
When agents delegate
Delegate for:
- Drafting long emails (investor updates, contract reviews, detailed responses)
- Memory synthesis (weekly dream cycles)
- Mass operations (triaging 50 tickets, reviewing 20 PRs)
- Research passes (reading many documents, producing reports)
- Anything requiring more than ~1000 tokens of context
Don't delegate for:
- Conversational replies in Slack or Telegram (overhead ruins live feel)
- Short tasks under 200 words
- Time-sensitive acknowledgments
openclaw-delegate \
--agent reid \
--task "Draft the April investor update. Pull key metrics from STATUS.md, highlight material changes, sign off from Mo." \
--context ~/.openclaw/shared-memory/sooner/STATUS.md,~/.openclaw/agents/reid/FUNDRAISING_PROTOCOL.md \
--output ~/drafts/investor-update-2026-04.md
Delegations run in a temp folder under ~/.openclaw/delegations/ with full agent DNA injected via CLAUDE.md. The output is written to RESULT.md, returned to the caller, and the temp folder auto-cleans unless --keep-folder is passed.
CLI commands (technical reference)
All commands live in ~/.local/bin/ and are on Mo's PATH.
| Command | Purpose |
|---|---|
openclaw | The main OpenClaw CLI (gateway, agent, config) |
openclaw-project launch | Start fresh project in an agent's domain |
openclaw-project create | Scaffold project with a specific brief |
openclaw-project spawn | Scaffold and run Claude Code in background |
openclaw-project continue | Add more background work to existing project |
openclaw-project adopt | Retrofit existing folder |
openclaw-project takeover | Stop background build, switch to interactive |
openclaw-project stop | Kill background build |
openclaw-project compile | Recompile PROJECT_SUMMARY.md |
openclaw-project status | Show activity for a project |
openclaw-project list | List all projects |
openclaw-project is-running | Check if background is active |
openclaw-project last-session | Check how last session ended (clean/incomplete/stopped) |
openclaw-delegate | Offload work to Claude Code |
openclaw-dream-digest | Generate a pod memory digest |
openclaw-backup | Push config to GitHub |
claude | Claude Code CLI |
Scheduled jobs (launchd)
The Sooner-relevant jobs:
| Label | Schedule | Purpose |
|---|---|---|
ai.openclaw.gateway | Boot + auto-restart | OpenClaw gateway process |
ai.openclaw.standup.lisa | Daily 8:00 AM | Sooner stand-up |
ai.openclaw.dream.lisa | Sunday 7:00 PM | Sooner weekly dream cycle |
ai.openclaw.backup | Daily 3:17 AM | GitHub backup |
ai.openclaw.disk-monitor | Every 6 hours | Disk space check |
Plist files in
~/Library/LaunchAgents/. Schedule definitions live in ~/.openclaw/dreams/scheduler/. Trigger logs under ~/.openclaw/dreams/scheduler/logs/
Backup and recovery
What is backed up
Everything in ~/.openclaw/ except the excluded items below. ~674 files on initial push, auto-synced daily.
What is NOT backed up (intentionally)
.env(Slack/Telegram/OpenRouter tokens) - stored in 1Password insteadbrowser/(Chrome profiles, cookies)credentials/,identity/*/sessions/*.jsonl(conversational transcripts)- Delegation temp folders
- Caches, logs, binaries over 100MB
Recovery path if the primary Mac dies
- Install OpenClaw, Claude Code, Node, gh CLI on the new machine
- Clone the private backup repo to
~/.openclaw/ - Restore
.envfrom 1Password - Re-authenticate integrations:
gog auth,op signin,gh auth login - Run
openclaw gateway restart - All agents come back with full memory intact. Expected recovery time: 10-15 minutes.
When things break
| Symptom | Likely cause | Where to look |
|---|---|---|
| Agents stop responding on Slack/Telegram | Gateway down | ~/.openclaw/logs/ or openclaw status |
| Backup fails | Big file or auth issue | ~/.openclaw/handoff-system/logs/backup.log |
| Dream cycle doesn't fire on Sunday | launchd job unloaded | ~/.openclaw/dreams/scheduler/logs/ |
| Claude Code hooks don't fire | Missing .claude/settings.local.json | Project folder |
| Disk filling up | Old delegation folders, session files | Cost Controller alert on Telegram |
| Agent giving wrong answers | Stale memory, out-of-date wiki | Tell Mo → corrects via dream cycle or direct MEMORY.md edit |
Working with the Sooner team
For the rest of the team (you, CTO, Gabriel, anyone else):
Your morning routine with the agents
- Check
#sooner-ai-leadershipat around 8am Dubai. Lisa's stand-up is there. - Read in 60 seconds. Comment in thread if you have input. Don't DM Lisa directly.
During the day
- Need something product-related? Tag Draper in a channel he's in.
- Backend or infra question? Tag Dinesh.
- Support or customer question? Tag Nora in
#support. - Status across the pod? Tag Lisa.
Sunday evening
- Lisa posts the weekly dream cycle to
#sooner-ai-leadership. - Mo reviews and approves the promotion proposals.
- You can comment on anything that looks off before Mo approves.
Boundaries you should know
- Agents won't execute external actions (send emails, publish content) without Mo's approval - this is by design.
- Agents won't modify canonical wiki content without Mo's approval - changes go through the Sunday dream cycle.
- DMs to agents are Mo-only - use channels.
- If you correct an agent ("that's wrong because X"), they'll note it and learn. Don't feel bad about correcting them.