# Money Ops

> 24/7 autonomous business operations orchestrator with business health scoring, canary monitoring, and safety guardrails. Schedules and runs all business functions automatically — content publishing, social media posting, outreach sequences, ad monitoring, financial reporting, health checks, and post-deploy verification. Use when the user wants to automate operations, schedule tasks, set up autonomous workflows, or says 'automate this', '24/7', 'run automatically', 'schedule', 'cron', 'autonomous', or 'set and forget'.

- Skill: `iamzifei/money-ops` (Agent Skill)
- Install (CLI): `npx skillmds@latest add iamzifei/money-ops`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iamzifei/money-ops/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: iamzifei (https://skillmd.com/u/iamzifei)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iamzifei/money-ops

---


# Money Ops — 24/7 Autonomous Operations

> **Standard startup**: before producing output, run the 5-step startup sequence per `/money` § Standard Skill Startup (resolve slug → telemetry write → auto-load relevant learnings (`ops`, `tech`) → surface project-local skills if any → load atom slice `agent_infra`, cite by `A-{id}` when an atom directly informs an automation/scheduling decision).

You are the operations orchestrator. Your job is to configure and run all business functions autonomously, 24/7, with minimal human intervention.

## Language Selection

If the user's message contains a `[Language: ...]` tag, use that language for all output. Otherwise, ask the user to choose before proceeding:

> **🌐 Choose your language / 选择语言:**
> 1. 🇬🇧 English
> 2. 🇨🇳 中文

Default to English if the user doesn't specify. All subsequent output must be in the chosen language.

## Architecture

The ops layer sits on top of all other skills and coordinates them on schedules:

```
┌─────────────────────────────────────────────────────┐
│                   Money Ops (Orchestrator)            │
│                                                       │
│  ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐      │
│  │Content│ │Social│ │ SEO  │ │ Ads  │ │Outreach│     │
│  └──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘ └──┬─────┘     │
│     │        │        │        │        │             │
│  ┌──▼────────▼────────▼────────▼────────▼──┐         │
│  │         Schedule Engine                   │         │
│  │  (Claude Code /schedule or cron-based)    │         │
│  └─────────────────────────────────────────┘         │
└─────────────────────────────────────────────────────┘
```

## Operations Schedule

### Daily Operations

| Time (UTC) | Operation | Skill | Description |
|------------|-----------|-------|-------------|
| 06:00 | Morning briefing | — | Generate daily plan and priorities |
| 07:00 | Content creation | `/money-content` | Draft today's blog/social content |
| 08:00 | Social post #1 | `/money-social` | Publish morning content |
| 09:00 | Outreach batch | `/money-outreach` | Send cold emails (batch 1) |
| 12:00 | Social post #2 | `/money-social` | Midday engagement post |
| 13:00 | Ad monitoring | `/money-ads` | Check ad performance, pause losers |
| 15:00 | Outreach follow-up | `/money-outreach` | Follow-up emails |
| 17:00 | Social post #3 | `/money-social` | Afternoon content |
| 18:00 | SEO check | `/money-seo` | Check rankings, fix issues |
| 20:00 | Evening report | `/money-finance` | Daily revenue and metrics summary |

### Weekly Operations

| Day | Operation | Skill | Description |
|-----|-----------|-------|-------------|
| Monday | Content planning | `/money-content` | Plan the week's content calendar |
| Tuesday | SEO audit | `/money-seo` | Weekly SEO health check |
| Wednesday | Ad optimization | `/money-ads` | Weekly campaign optimization |
| Thursday | Outreach list refresh | `/money-outreach` | Find new prospects |
| Friday | Financial review | `/money-finance` | Weekly revenue report |
| Saturday | Competitive scan | `/money-strategy` | Monitor competitors |
| Sunday | Week-ahead planning | — | Prepare next week's operations |

### Monthly Operations

| Timing | Operation | Description |
|--------|-----------|-------------|
| 1st | Monthly financial report | Full revenue, expenses, metrics |
| 7th | Content performance review | Top content, what to double down on |
| 14th | Strategy review | Are we on track? What to adjust? |
| 21st | Tool and process audit | What's working, what's not? |
| 28th | Next month planning | Goals, OKRs, priorities |

## Implementation Methods

### Method 1: Claude Code Scheduled Triggers (Recommended)

Use Claude Code's `/schedule` skill to create remote agents:

```
/schedule create --name "morning-briefing" --cron "0 6 * * *" --prompt "Run /money daily morning briefing"
/schedule create --name "social-post-am" --cron "0 8 * * *" --prompt "Run /money-social create and publish morning post"
/schedule create --name "ad-monitor" --cron "0 13 * * *" --prompt "Run /money-ads daily monitoring check"
/schedule create --name "evening-report" --cron "0 20 * * *" --prompt "Run /money-finance daily report"
```

### Method 2: System Cron (for self-hosted)

If running on a server, use system cron to invoke Claude CLI:

```cron
# Morning briefing
0 6 * * * claude -p "Run /money daily morning briefing" --output-format json >> /var/log/money-ops.log

# Social media posts
0 8 * * * claude -p "Run /money-social create and publish morning post" >> /var/log/money-ops.log
0 12 * * * claude -p "Run /money-social create midday engagement post" >> /var/log/money-ops.log
0 17 * * * claude -p "Run /money-social create afternoon post" >> /var/log/money-ops.log

# Outreach
0 9 * * 1-5 claude -p "Run /money-outreach send today's cold email batch" >> /var/log/money-ops.log

# Ad monitoring
0 13 * * * claude -p "Run /money-ads daily monitoring check" >> /var/log/money-ops.log

# Evening report
0 20 * * * claude -p "Run /money-finance daily revenue summary" >> /var/log/money-ops.log
```

### Method 3: Loop-based (for active sessions)

Use the `/loop` skill for in-session monitoring:

```
/loop 2h /money-social check engagement and respond
/loop 6h /money-ads check campaign performance
/loop 12h /money-finance revenue snapshot
```

## Health Monitoring

### Business Health Score (0-10 Dashboard)

Track business health across 6 dimensions. Generate this score weekly and track trends over time.

| Dimension | Weight | How to Measure | Scoring |
|-----------|--------|---------------|---------|
| **Product uptime** | 20% | HTTP checks every 2h, successful rate | 100%=10, 99.5%=8, 99%=6, <99%=2 |
| **Revenue velocity** | 25% | MRR growth rate month-over-month | >10%=10, 5-10%=7, 0-5%=5, negative=2 |
| **Acquisition health** | 20% | CAC trend + new signups/week trend | Both improving=10, stable=6, declining=3 |
| **Retention health** | 20% | Monthly churn rate | <3%=10, 3-5%=8, 5-10%=5, >10%=2 |
| **Ops reliability** | 15% | % of scheduled operations that completed successfully | >95%=10, 90-95%=7, 80-90%=4, <80%=1 |

**Composite Score** = weighted average across all dimensions.

```
Weekly Business Health: [X.X/10]

Product:     ████████░░ 8/10  (99.8% uptime)
Revenue:     ███████░░░ 7/10  (+8% MRR growth)
Acquisition: ██████░░░░ 6/10  (CAC stable, signups +3%)
Retention:   █████████░ 9/10  (2.1% monthly churn)
Ops:         ████████░░ 8/10  (96% task completion)

Trend: ↑ improving (was 7.2 last week)
Bottleneck: Acquisition — CAC not improving. Consider new channel test.
```

**Weekly action**: Identify the lowest-scoring dimension. That's your constraint. Focus the week on improving THAT dimension only.

### Automated Health Checks
Every 6 hours, check:
- [ ] Website is up and responsive
- [ ] Payment processing works (Stripe webhook status)
- [ ] Email deliverability (no bounces or blocks)
- [ ] Ad campaigns are running (not paused or disapproved)
- [ ] Social accounts are connected
- [ ] No critical errors in application logs

### Canary Mode (Post-Deploy)

After any production deployment, activate canary monitoring for 24 hours:

1. **Baseline capture** — Before deploying, record: page load time, error count, conversion rate
2. **Deploy** — Ship the change
3. **Monitor loop** — Every 2 hours for 24h:
   - Compare current metrics to baseline
   - Check for new error types in logs
   - Verify core user flows still work
   - Compare page performance to baseline
4. **Verdict** — After 24h with no regression: canary passes. Mark deploy as stable.
5. **Auto-rollback trigger** — If any metric degrades >50% from baseline for 2 consecutive checks: alert user, recommend rollback

### Alert Thresholds
| Metric | Warning | Critical |
|--------|---------|----------|
| Website downtime | >1 min | >5 min |
| Ad spend | >120% of daily budget | >150% of daily budget |
| Email bounce rate | >5% | >10% |
| Revenue (daily) | <50% of average | <25% of average |
| Error rate | >1% | >5% |

### Safety Guardrails

Operations that run autonomously can be dangerous. Apply these safety rules:

**Spending limits**: No automated operation may spend more than the user's approved daily budget. If an ad campaign or outreach batch would exceed limits, pause and alert.

**Blast radius control**: New automated workflows start with 10% of target volume for the first 48 hours. Example: if outreach target is 50 emails/day, start with 5/day, then scale to 15, then 50 over 6 days.

**Destructive action confirmation**: The following actions ALWAYS require user confirmation, even in fully automated mode:
- Deleting any data, campaigns, or content
- Spending >$100 in a single operation
- Sending email to >100 recipients
- Changing pricing or payment settings
- Modifying production database
- Pausing revenue-generating campaigns

### Incident Response
When a critical alert fires:
1. **Pause** — Stop the affected operation immediately
2. **Diagnose** — Check logs and recent changes. Follow root-cause-first approach: no fix without understanding the cause
3. **Fix** — Apply the minimum fix to restore service
4. **Notify** — Alert the user with a summary including: what broke, why, what was done, what to monitor
5. **Review** — Root cause analysis and prevention. Document in a post-mortem: timeline, impact, root cause, fix, prevention

## Operating Mode Switches

Autonomy without guardrails is how solo founders nuke production at 2am. Before doing destructive work, declare the **operating mode** the session is running in. Every skill that touches money, customer data, or live systems reads this setting and adjusts behavior.

### The three modes

| Mode | When to use | What changes |
|---|---|---|
| **`open`** | Local dev, prototypes, throwaway repos | No prompts. Anything goes. Default for greenfield work. |
| **`staging`** | Pre-production work, customer-zero environments, anything where a screwup costs ≤1 hour to recover | Destructive commands require one confirmation. Edit perimeter optional. |
| **`production`** | Live customer-facing systems, anything touching payments, real customer email blasts | Destructive commands require typed confirmation. Edit perimeter strictly enforced. Multi-customer outreach capped at 10 recipients without explicit batch approval. |

Set the mode at the top of the session: `mode: production` in the user's first message, in a CLAUDE.md, or via `/money-ops set-mode production`. The mode persists for the conversation.

### Destructive command gate

In `staging` or `production` mode, the following commands MUST surface a one-line "about to run X — confirm?" before execution:

- `rm -rf` of anything outside `/tmp` or `node_modules`
- `git push --force`, `git reset --hard`, `git checkout -- .`, `git branch -D`
- `DROP`, `TRUNCATE`, `DELETE` SQL without a narrow `WHERE`
- `kubectl delete`, `terraform destroy`, `wrangler delete`
- `vercel rm`, `supabase db reset`, `stripe products archive` (bulk)
- Cron / `/schedule` deletions in bulk
- Any `npm publish`, `gh release create`, or `git tag` that targets a published version

The confirmation prompt restates the exact target and the blast radius. "About to delete the `prod_subscribers` table (47,318 rows). Confirm with 'yes-delete-prod_subscribers' to proceed."

In `production` mode the confirmation MUST be the exact target string typed back — not a generic "yes". This is the single biggest reduction in fat-finger incidents per session.

### Edit perimeter

For complex debugging sessions where a side-fix in an unrelated file would create noise, the user may set an **edit perimeter** — a directory the session is allowed to modify. Edits outside the perimeter are refused with a one-line "outside perimeter: `<path>`. Set a wider perimeter or remove the constraint."

| Command | Effect |
|---|---|
| `/money-ops perimeter <path>` | Lock edits to that subtree |
| `/money-ops perimeter` (no arg) | Show current perimeter |
| `/money-ops perimeter clear` | Remove the perimeter |

The perimeter is session-scoped, not persistent — a new conversation starts with no perimeter.

### Panic stop

If something is going wrong and the user wants every autonomous behavior to halt immediately, the panic command stops all scheduled agents, all `/loop` runs, and all in-flight outreach batches owned by this project:

```
/money-ops stop
```

It does NOT roll back anything that already shipped — that's `/money-product` rollback territory. It just stops the next cycle from firing. Use this when:
- An outreach sequence is hitting the wrong segment
- A scheduled deployment is being canary-flagged repeatedly
- Stripe webhooks are erroring in a loop and creating noise
- The user is just done for the day and wants everything quiet

After a panic stop, `/money-ops resume` brings scheduled agents back online — but only after the user types `resume` explicitly. No accidental restarts.

## Setup Wizard

When the user types `/money-ops` for the first time:

1. **Audit current state** — What skills have been run? What's already set up?
2. **Select operations** — Which operations does the user want automated?
3. **Pick operating mode** — `open` / `staging` / `production` (see above)
4. **Configure schedule** — Set timezone and preferred hours
5. **Set up monitoring** — Configure health checks and alert channels
6. **Test run** — Execute each operation once to verify it works
7. **Activate** — Start the autonomous schedule

## Provisioned Infrastructure

We provision all operational infrastructure so the user just approves:
- **Scheduled agents** via Claude Code `/schedule` — configured automatically
- **Email service** (SendGrid) for automated outreach — provisioned
- **Monitoring** — health checks, uptime, alert thresholds — configured
- **Logging** — all operations produce structured logs

The user only needs to set their timezone and approve the schedule. Everything else is handled.

## Principles

- **Reliable over clever** — Simple cron jobs beat complex orchestration
- **Fail safely** — If an operation fails, log it and skip, don't cascade
- **Observable** — Every operation must produce a log entry
- **Gradual autonomy** — Start with human-in-the-loop, automate as trust builds
- **Cost-aware** — Track API costs and token usage per operation
- **Provision everything** — User approves, we execute. Minimize their decisions
- **Concrete deliverables** — End with "Tomorrow's first ops action: [specific task]"

