The single highest-leverage feature of the AI CMO. The VP of Marketing opens this email at 7am every weekday before standup. It tells them what to push on TODAY.
Scanned 9/20/2026
Install to Claude Code
npx -y skills add unempyd/revenueos --skill daily-ideas --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Daily Ideas?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/unempyd-daily-ideas)More formats (shields.io, HTML) on the badges page.
---
name: daily-ideas
trigger: cron, 07:00 (your timezone), Monday to Friday
load-context: identity, current-projects, goals-and-priorities, preferences-and-constraints
inputs: Today's metric_snapshots + delta from yesterday, CORRECTIONS.md, last 5 days of audit_log
sub-skills: hallucination-guard, messaging-rules-check
ends-with: Email sent via Resend (from cmo@your-company.com) to VP of Marketing + draft row written
model: claude-haiku-4-5 (cheap, runs daily, prompt is bounded)
---
# daily-ideas
The single highest-leverage feature of the AI CMO. The VP of Marketing opens this email at 7am every weekday before standup. It tells them what to push on TODAY.
## When to invoke
- 07:00 (your timezone), Mon-Fri only (skip weekends and holidays)
- If metric_snapshots for today missing: wait 15 min, retry once, fall back to yesterday with flag
- If `pause_daily_ideas = true` in `companies.voice_overrides`, skip
## Inputs
| Input | Source | If missing |
|---|---|---|
| Today's metrics | metric_snapshots row from today's daily-refresh cron | Retry, fall back to yesterday with flag |
| Delta vs yesterday | Calculated | Fall back to "no comparison available" |
| Delta vs last week | Calculated | Optional |
| Open items | notion_task where status in (new, in_triage, in_progress) AND urgency = this_week | Continue without |
| Pending drafts | draft where status = queued | Continue without |
| Event horizon | Next 3 rows from event_pipeline ordered by event_date | Continue without |
| Recent meeting context | Last 3 meeting_log rows | Continue without |
| Competitive moves | competitive_intel rows from last 7 days | Continue without |
| Founder decision queue | Open items where awaiting_founder = true | Continue without |
## Process
1. Load context layer: OPERATOR.md + the 4 company-context files + CORRECTIONS.md
2. Gather inputs from Postgres
3. Compose prompt using `prompts/daily-ideas.md` template, injecting all numbers
4. Diagnose first: identify which of the 4 Ps is the binding constraint TODAY
5. Generate 3 to 5 ideas. Each must be:
- Concrete: named channel + audience + message OR named experiment
- Achievable in <2 hours
- Tied to The One Number
- Stage-appropriate (no Series B tactics)
6. Run sub-skill hallucination-guard. Every number must trace to ground truth ±2%.
7. If hallucination guard fails twice: flag for review, do NOT send. Write draft.status = needs_revision.
8. Compose email. Subject: `[AI CMO] {weekday}, {top_idea_one_liner}`
9. Send via Resend from `cmo@your-company.com`
10. Write to draft table (kind=daily_ideas, status=sent) + audit_log
## Hard gates
- Hallucination guard passes
- No banned terms (messaging-rules-check)
- At least one idea tied to The One Number
- Diagnosis section identifies the binding P explicitly
- No idea proposes a Series B tactic at PMF 1 to 2
- Subject line under 70 chars
## Output format
```markdown
**Subject:** [AI CMO] {Day}, {top idea}
# {Day, Date} — Daily Ideas
## Today's diagnosis
- **Binding constraint:** {Persona | Problem | Promise | Product} — {one sentence why}
- **The number that moved:** {metric}: {old} → {new} ({+/- delta})
- **What's queued for review:** {N drafts, link to dashboard}
## What I'd do today
### 1. {Action title, verb-first}
**Why:** {one sentence tie to The One Number}
**How:** {2 to 4 concrete steps}
**Time:** ~{XX min}
**Success looks like:** {observable result}
### 2. ... (3 to 5 total)
## What I'd say no to
{1 to 2 things you might be tempted to do that don't fit the stage}
---
*Generated by AI CMO at 07:00. Grounded in last refresh: {timestamp}. Hallucination guard: PASS. Reply with corrections, they update CORRECTIONS.md.*
```
## Failure modes
| Failure | Recovery |
|---|---|
| Hallucination guard fails twice | Don't send. draft.status = needs_revision. Slack-DM with link. |
| Postgres unreachable | Retry with exponential backoff. If still failing, send "infrastructure issue" email. |
| Resend bounces | Log to audit_log. Slack-DM. Do NOT retry to same address. |
| Claude API error | Retry once with Sonnet as fallback. Log degradation. |
| OPERATOR.md missing | Hard stop. Slack-DM with the path. Unrecoverable until fixed. |
## Feedback loop
When the VP replies to the email with corrections:
1. Reply is captured (Resend inbound webhook to Postgres)
2. Reply text appended to CORRECTIONS.md under the timestamp
3. Next morning's prompt loads the updated CORRECTIONS.md
4. The agent learns the pattern
This is the compounding loop. Without it the agent stays at day-1 quality forever.
## Why Haiku, not Opus
The prompt is bounded (~3K tokens of context), the output is bounded (~600 words), and it runs daily. Opus would cost ~10x for no quality lift on this task. Reserve Opus for exec memos, board decks, and final founder posts.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!