Appearance
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
- John's work doesn't stop — Sam continues operating normally during migration
- No big-bang cutover — each specialist agent is validated before Sam is removed from that domain
- Start with what's broken — fix the cron job and version update first (quick wins)
- 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.
| Task | What | Why |
|---|---|---|
| Disable broken cron job | Remove funnel-github-watch from cron/jobs.json | Stops 90s timeout errors every 30min |
| Fix npm permissions | sudo chown -R ubuntu:ubuntu /usr/lib/node_modules + npm i -g openclaw@latest | Updates from 2026.3.2 to 2026.3.13 |
| Approve Christian's pairing | Accept pending Slack pairing for U0A5ZP3MW9E | Christian needs access for this project |
| Add heartbeat config | Add agents.defaults.heartbeat.every to openclaw.json | Enforce schedule at runtime, not just in a file |
| Add model fallback | Add fallback provider to openclaw.json | If 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.
| Skill | Source | Priority |
|---|---|---|
posthog-funnel | MEMORY.md PostHog section + POSTHOG-RULES.md | 🔴 High |
braze-ops | braze-audit.js scripts + MEMORY.md Braze sections | 🔴 High |
github-funnel-watch | scripts/github-funnel-monitor.sh | 🟡 Medium |
sanity-funnel | MEMORY.md Sanity CMS section | 🟡 Medium |
meta-ads-reporting | MEMORY.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:
- Reporting is the most frequently broken workflow
- It has clear boundaries (PostHog, Looker, NorthBeam only)
- John will notice the improvement immediately (daily reports get more reliable)
- No approval workflows required (read-only data)
| Task | What |
|---|---|
| Create workspace | .openclaw/workspace-data/ |
| Configure agent | Add to agents.list in openclaw.json |
| Install skills | posthog-funnel, looker-dashboard, northbeam-spend |
| Create MEMORY.md | Data-domain only context (no creative, no Braze) |
| Create HEARTBEAT.md | 3×/day reporting schedule |
| Test in parallel | Run Data Agent and Sam in parallel for 3 days |
| Add Slack routing | Route metric queries from sam-chat to Data Agent |
| Validate | Compare Data Agent reports to Sam's reports |
| Remove from Sam | Once 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.
| Task | What |
|---|---|
| Create workspace | .openclaw/workspace-funnel/ |
| Install skills | posthog-funnel (read), sanity-funnel, github-funnel-watch |
| Migrate cron job | Create proper cron job with 3×/day schedule (not 30min), longer timeout |
| A/B test tracking | Move active test state (order bump, SMS, express pay, etc.) to Funnel Agent |
| Validate | Run Funnel Agent alongside Sam for 1 week |
| Remove from Sam | Remove 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.
| Task | What |
|---|---|
| Create workspace | .openclaw/workspace-prospect/ |
| Install skills | braze-ops, braze-canvas-health, zendesk-support-summary |
| Migrate scripts | Move braze-audit.js scripts into braze-ops skill |
| Fix 25% gap | Implement 3-layer fix using Prospect Agent |
| Validate | Run for 1 week, compare coverage metrics |
| Remove from Sam | Remove 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).
| Task | What |
|---|---|
| Create workspace | .openclaw/workspace-creative/ |
| Install skills | higgsfield-video-gen, shotstack-compose, micro-bucket-hook-generator |
| Migrate assets | Move creative library references, customer survey data |
| Build compliance gate | Slack-based approval flow before any content goes live |
| Validate | Have Sean (video team) test the brief-to-video pipeline |
| Remove from Sam | Remove 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.
| Task | What |
|---|---|
| Media Buying Agent | Create with Meta Ads API skills, connect TikTok when ready |
| Master Agent = Sam | Sam's remaining context is pure orchestration: routing, approvals, high-level status |
| Slack routing | Update channel bindings to route to correct specialist |
| Cross-agent protocols | Define how agents hand off to each other |
What Stays in Sam During Migration
Sam doesn't lose everything at once. The migration is additive.
| Phase | Sam Loses | Sam Keeps |
|---|---|---|
| Phase 0 | Broken cron | Everything else |
| Phase 1 | Technical details from MEMORY.md | All workflows |
| Phase 2 | Daily metric reporting | Creative, Braze, Funnel, GitHub |
| Phase 3 | Funnel CVR monitoring, GitHub watching | Creative, Braze, Meta |
| Phase 4 | Braze, Zendesk | Creative, Meta, orchestration |
| Phase 5 | Creative pipeline | Meta, orchestration |
| Phase 6 | Meta Ads management | Orchestration only |
Risk Management
| Risk | Mitigation |
|---|---|
| Specialist agent misses context Sam had | Extract skills thoroughly in Phase 1; transfer MEMORY.md section by section |
| John gets confused with multiple bots | Each specialist has a distinct name and Slack presence; Master routes transparently |
| Parallel running causes duplicate Slack posts | Use Slack channel bindings to route each channel to correct agent |
| API credentials exposure increases | Implement credential segregation per agent (see Integration Mapping) |
| Approval workflows break | Keep Sabrina in the loop explicitly at each creative output gate |
See also: Proposed Agents | Proposed Skills | Known Issues