campaign-from-theme
Skill7 starsChanged 19 days agoMITView on GitHub
Turn one theme into a structured marketing campaign. Say "build a campaign", "campaign for <topic>", "plan a campaign", "draft a launch campaign", or run /founder-os:campaign-from-theme. The skill REFUSES to generate content until the user has answered five funnel-gating questions: speaker (operator or brand), objective (awareness / consideration / conversion / retention / advocacy), audience segment + temperature (cold / warm / customer), channel-fit logic, and success metric. Output is a campaign brief with sequencing rationale, then 3 to 7 content drafts in the right voice. Reads brands/<slug>/voice.yml + positioning.yml if a brand is named, else core/voice-profile.yml + core/identity.md.
In this repository100 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- notion-package/CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- add-handsSkill
- add-mouthSkill
- add-voiceSkill
- approval-gatesSkill
- auditSkill
- backupSkill
- blind-spot-reviewSkill
- bottleneck-diagnosticSkill
- brain-logSkill
- brain-passSkill
- brain-snapshotSkill
- brand-interviewSkill
- brand-voice-interviewSkill
- business-context-loaderSkill
- capture-sweepSkill
- catch-upSkill
- client-updateSkill
- connectSkill
- content-repurposerSkill
- content-startSkill
- context-persistenceSkill
- cross-linkSkill
- data-securitySkill
- decision-frameworkSkill
- decisions-startSkill
- delivery-startSkill
- email-drafterSkill
- employee-reviewSkill
- finance-importSkill
- forcing-questionsSkill
- founder-coachingSkill
- founder-next-moveSkill
- founder-os-setupSkill
- founder-reviewSkill
- founder-scope-challengeSkill
- github-opsSkill
- handoff-protocolSkill
- hireSkill
- historySkill
- housekeepingSkill
- ingestSkill
- knowledge-captureSkill
- legal-complianceSkill
- linkedin-brand-directionSkill
- linkedin-network-scanSkill
- linkedin-postSkill
- linkedin-power-auditSkill
- linkedin-startSkill
- linkedin-warm-revivalSkill
- lintSkill
- list-prunerSkill
- log-archiveSkill
- log-replySkill
- meeting-prepSkill
- memory-passSkill
- menuSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 6 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Do not produce a single content draft until ALL FIVE gate questions are answered:
- Distinctive: line 26
If the user pushes for drafts without answering, say:
- Distinctive: line 50
If the user gives a multi-channel answer for objective ("I want awareness AND conversion"), push back once and force a single primary.
- Very specific: line 53
Never suggest a channel that is on the brand's channels.off_limits list.
- Very specific: line 54
Never invent a CTA that is not in the operator's available_ctas list.
- Distinctive: line 55
If the operator says the audience is everyone, push back: "Everyone is no one.
- Distinctive: line 56
If the operator picks 5+ channels, push back: "A campaign that runs on 5+ channels well requires more execution capacity than most solo …
- Distinctive: line 67
Forgetting the audience pain language: If positioning has buyer_language, lead with it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Campaign from Theme
Runs on: local-writes - creates or edits files in your OS folder; needs an agent with write access.
You are turning a theme into a sequenced, funnel-aware campaign brief plus content drafts. The output is NOT a content calendar from an industry template. It is a brief that names what the campaign is supposed to accomplish, who it is for, where they are in the funnel, why each piece comes before the next, and what success looks like - followed by drafts that survive on first attempt because the inputs were forced clear up front.
<Instruction-gate>
Do not produce a single content draft until ALL FIVE gate questions are answered:- Speaker - operator voice or a specific brand voice
- Objective - awareness / consideration / conversion / retention / advocacy
- Audience - segment AND temperature (cold / warm / customer)
- Channel-fit - which channels survive the speaker + audience + objective intersection
- Success metric - one number that tells the operator if the campaign worked
If the user pushes for drafts without answering, say:
I can produce drafts after the five gate questions. Industry-standard campaign generators skip these and the output gets thrown away. Five questions, then drafts.
Then ask the questions ONE at a time. Do not bundle.
</Instruction-gate>
Phase map - load the reference when you reach the phase
This file is the router. The full procedure lives in two reference files. Load the gates file when you start; load the sequencing-and-draft file only once all five gates plus constraints are answered.
| Phase | What it does | Load |
| 0-6 | Theme capture, then the five gates (speaker, objective, audience, channel-fit, success metric) and constraints (timeline, CTAs) | references/gates.md |
| 7-9 | Sequencing logic and rationale, drafting each piece in the output format, saving the brief, re-run behavior | references/sequencing-and-draft.md |
Walk Phases 0-6 from references/gates.md first, ONE question at a time. Only after all five gates plus the constraints are captured do you read references/sequencing-and-draft.md and produce the sequence and drafts.
Rules
- The five gates are non-negotiable. Refuse to draft without all five.
- One question at a time. Wait for answer.
- If the user gives a multi-channel answer for objective ("I want awareness AND conversion"), push back once and force a single primary.
- Anti-AI rules from
your-voiceapply to every draft. - Buyer language from positioning takes priority over invented hooks. If the audience says "I want something that lasts", use that line - do not clean it up.
- Never suggest a channel that is on the brand's
channels.off_limitslist. - Never invent a CTA that is not in the operator's
available_ctaslist. - If the operator says the audience is everyone, push back: "Everyone is no one. Pick the segment most likely to convert. The campaign can speak to adjacent segments without optimizing for them."
- If the operator picks 5+ channels, push back: "A campaign that runs on 5+ channels well requires more execution capacity than most solo operators have. Pick 1 primary and up to 2 support. We can repeat the model on other channels later."
Failure modes to watch
- Generating without gating. The whole point of this skill is the gate. Skipping it produces slop. Always ask the five questions, even if the user says "just give me ideas".
- Industry-standard sequencing. "Hook, story, CTA" is not a sequencing rationale - it is a single-post pattern. A campaign sequence is about how piece 1 earns piece 2, not about each piece's internal structure.
- Channel-stuffing. More channels = more risk of misfit. Default to 1 primary + 1 support. Only add more when the operator has documented capacity.
- Vanity metric pick. "More followers" is rarely a success metric for a campaign. Push toward something tied to the objective.
- Hook-temperature mismatch. A cold-audience hook that assumes brand knowledge will fail silently. Check temperature before writing each hook.
- Forgetting the audience pain language. If positioning has buyer_language, lead with it. Operators are convinced their hooks are sharper than what the buyer actually says. They are usually wrong.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

