Skip to content

Migration Plan

Principle: Don't break what's working. Sam is currently running and producing value. The migration adds capability without dismantling the existing setup until replacements are validated.

Guiding Constraints

  1. John's work doesn't stop — Sam continues operating normally during migration
  2. No big-bang cutover — each specialist agent is validated before Sam is removed from that domain
  3. Start with what's broken — fix the cron job and version update first (quick wins)
  4. Skill extraction before agent creation — package existing patterns as skills before creating new agents

Phase 0: Stabilize Sam (1–2 days)

Fix the acute problems that are causing immediate pain.

TaskWhatWhy
Disable broken cron jobRemove funnel-github-watch from cron/jobs.jsonStops 90s timeout errors every 30min
Fix npm permissionssudo chown -R ubuntu:ubuntu /usr/lib/node_modules + npm i -g openclaw@latestUpdates from 2026.3.2 to 2026.3.13
Approve Christian's pairingAccept pending Slack pairing for U0A5ZP3MW9EChristian needs access for this project
Add heartbeat configAdd agents.defaults.heartbeat.every to openclaw.jsonEnforce schedule at runtime, not just in a file
Add model fallbackAdd fallback provider to openclaw.jsonIf myclaw goes down, Sam has a backup

Outcome: Sam is stable, version is current, Christian can access the system.


Phase 1: Extract Skills (3–5 days)

Package Sam's existing behavior patterns into proper skills. This doesn't change anything about how Sam works — it just structures the knowledge for reuse.

SkillSourcePriority
posthog-funnelMEMORY.md PostHog section + POSTHOG-RULES.md🔴 High
braze-opsbraze-audit.js scripts + MEMORY.md Braze sections🔴 High
github-funnel-watchscripts/github-funnel-monitor.sh🟡 Medium
sanity-funnelMEMORY.md Sanity CMS section🟡 Medium
meta-ads-reportingMEMORY.md Meta Ads section + TOOLS.md🟡 Medium

These go into Sam's workspace skills directory: .openclaw/workspace/skills/

Sam begins using them immediately, reducing its reliance on MEMORY.md for technical details.

Outcome: MEMORY.md shrinks. Skill files hold integration details. Sam's context improves.


Phase 2: Create Data Agent (1 week)

The Data Agent is the best first specialist to build because:

  1. Reporting is the most frequently broken workflow
  2. It has clear boundaries (PostHog, Looker, NorthBeam only)
  3. John will notice the improvement immediately (daily reports get more reliable)
  4. No approval workflows required (read-only data)
TaskWhat
Create workspace.openclaw/workspace-data/
Configure agentAdd to agents.list in openclaw.json
Install skillsposthog-funnel, looker-dashboard, northbeam-spend
Create MEMORY.mdData-domain only context (no creative, no Braze)
Create HEARTBEAT.md3×/day reporting schedule
Test in parallelRun Data Agent and Sam in parallel for 3 days
Add Slack routingRoute metric queries from sam-chat to Data Agent
ValidateCompare Data Agent reports to Sam's reports
Remove from SamOnce validated, remove PostHog/Looker/NorthBeam from Sam's context

Outcome: Reliable 3×/day funnel reporting. Sam's context shrinks. Data Agent handles all metric queries.


Phase 3: Create Funnel Agent (1 week)

Funnel Agent replaces Sam's CRO and GitHub monitoring work.

TaskWhat
Create workspace.openclaw/workspace-funnel/
Install skillsposthog-funnel (read), sanity-funnel, github-funnel-watch
Migrate cron jobCreate proper cron job with 3×/day schedule (not 30min), longer timeout
A/B test trackingMove active test state (order bump, SMS, express pay, etc.) to Funnel Agent
ValidateRun Funnel Agent alongside Sam for 1 week
Remove from SamRemove Sanity + GitHub + funnel CVR from Sam's scope

Outcome: Funnel changes are monitored by an agent that understands funnel context. A/B test tracking is accurate.


Phase 4: Create Prospect Agent (1 week)

Prospect Agent takes over Braze operations and email/SMS coverage.

TaskWhat
Create workspace.openclaw/workspace-prospect/
Install skillsbraze-ops, braze-canvas-health, zendesk-support-summary
Migrate scriptsMove braze-audit.js scripts into braze-ops skill
Fix 25% gapImplement 3-layer fix using Prospect Agent
ValidateRun for 1 week, compare coverage metrics
Remove from SamRemove Braze + Zendesk from Sam's context

Phase 5: Create Creative Agent (1–2 weeks)

Creative Agent is the most complex because it has an approval workflow (Sabrina compliance).

TaskWhat
Create workspace.openclaw/workspace-creative/
Install skillshiggsfield-video-gen, shotstack-compose, micro-bucket-hook-generator
Migrate assetsMove creative library references, customer survey data
Build compliance gateSlack-based approval flow before any content goes live
ValidateHave Sean (video team) test the brief-to-video pipeline
Remove from SamRemove creative context from Sam

Phase 6: Create Media Buying Agent + Master Agent (ongoing)

By this phase, Sam's context has shrunk dramatically. The Media Buying Agent takes over campaign management. Sam evolves into the Master Agent role.

TaskWhat
Media Buying AgentCreate with Meta Ads API skills, connect TikTok when ready
Master Agent = SamSam's remaining context is pure orchestration: routing, approvals, high-level status
Slack routingUpdate channel bindings to route to correct specialist
Cross-agent protocolsDefine how agents hand off to each other

What Stays in Sam During Migration

Sam doesn't lose everything at once. The migration is additive.

PhaseSam LosesSam Keeps
Phase 0Broken cronEverything else
Phase 1Technical details from MEMORY.mdAll workflows
Phase 2Daily metric reportingCreative, Braze, Funnel, GitHub
Phase 3Funnel CVR monitoring, GitHub watchingCreative, Braze, Meta
Phase 4Braze, ZendeskCreative, Meta, orchestration
Phase 5Creative pipelineMeta, orchestration
Phase 6Meta Ads managementOrchestration only

Risk Management

RiskMitigation
Specialist agent misses context Sam hadExtract skills thoroughly in Phase 1; transfer MEMORY.md section by section
John gets confused with multiple botsEach specialist has a distinct name and Slack presence; Master routes transparently
Parallel running causes duplicate Slack postsUse Slack channel bindings to route each channel to correct agent
API credentials exposure increasesImplement credential segregation per agent (see Integration Mapping)
Approval workflows breakKeep Sabrina in the loop explicitly at each creative output gate

See also: Proposed Agents | Proposed Skills | Known Issues

FuturHealth Internal — Confidential