Give it a goal, and it produces a full slate of content planning.Humans only review one sheet; the rest is mechanically derived.
This is a dispatcher. The map below tells you which layer each one lives in references/ file,load on demand, do not read it all at once。
Why it is different
Most content tools take the shape of "give me a topic, and I will give you a draft." This set works the other way around:You give me a business goal, and I first tell you who this slate should target, what it should push, and how many pieces it should publish. Only at the end do I write the drafts.
Three ways it is different from others:
- The mix is derived, not copied from ratios. No empirical research supports any content piece-count mix for any funnel stage (80/20, 4-1-1, and 70/20/10 are all assertions, and 70/20/10 is even a risk allocation misquoted as a funnel allocation). So the numbers here come from yourcapacity, yourfunnel diagnosis, and yourrunway, not from a slogan.Capacity caps it, the goal shapes it, diagnosis adjusts the shape, and format lands it in place.
- Humans only review the seed, not the drafts. A seed sheet of 8 to 20 entries is the only manual decision point. The content map of a dozen or so cells is mechanically derived from the seed and can be regenerated.No one reviews those twenty-something cells one by one; scale should serve human judgment, not drown it.
- It will refuse. If follower scale is not enough, it does not produce a mix; it instead produces a reach acquisition task list. If there is no real material on hand, it does not write drafts; it instead produces collection instructions."Not enough material, go get material first" is a legitimate and correct output.
When to use it
- ✅ Want to plan a full slate of content (one month, one launch, one runway)
- ✅ Content keeps being posted but has no effect, and you want to know which segment is leaking
- ✅ Want to know how many videos and how many image-text posts this slate should produce, instead of going by feel
- ❌ Just want to write one piece of copy → no need to run the whole pipeline
- ❌ Mainly paid placement → the mix logic is completely different; this only handles organic
- ❌ No product yet, and no one has bought yet → that is a product validation problem, not a content problem
Four modes
This skill has four ways to enter.First determine which one it is, then proceed.
| Mode | When | What it does | Load |
|---|---|---|---|
| Plan | "Help me plan this month" "How many pieces should this slate publish" | The main line from goal to finished draft, ending with draft revision feedback | modes/plan.md |
| Capture | "I caught a few customer quotes" "I filled in those NEEDS-CAPTURE entries" | Collect real material, sort scene_id, upgrade the barrier evidence level |
modes/capture.md |
| Log | Doorbell roll call, or "note down results" | Pure entry at 3 / 7 / 15 days, done in 30 seconds,no judgment | modes/log.md |
| Review | "Let's debrief," or after a track has run for 6 to 8 weeks | read the data, re-run the diagnostics and ratio,produce a proposal but not a conclusion | modes/review.md |
Capture is the only true evidence entrance for the entire engine. Everything coming in from elsewhere is context.
If you have a second-brain vault
If you can see 99_Meta/structure-doctrine.md then you have one. If so, at the start read references/_vault.md: scan the business wing to get brand context, read theoverlay(numbers the user has calibrated themselves take precedence over factory values), and know where things should live.
🛑 The first action of every mode is orienting(_vault.md §1.5,run the entire section): a single glob finds content-engine-paths.md this address book, and all paths are taken from it;once you have it, then run the doorbell wiring check in the same section. ⛔ Whether it's the first time or the hundredth time, ⛔ don't guess paths from memory: the folder names for the business wing and the brand arechosen by the user themselvesand can't be guessed.
⚠️ What you scan back is context, not evidence. The eight-pillar foundation and brand strategy report read like evidence, even the quotation marks look like it, but in testing a locked 100KB strategy produced 0 confirmed customer barriers. So the first action when scanning the vault is a quotation-source scan; anything unlabeled is treated as fabrication.
It runs the same without a vault, according to 00-intake.md ask those six things. ⛔ A vault is a bonus, not a prerequisite.
Doorbell wiring (do it when orienting, ⛔ not at install time)
If the user has aproduct-generated command-base skill, the engine will go modifythe already-installed copy they have(not the product template; the template only affects future new installs), so that the doorbell recognizes the content-expiry event.
⛔ This does not happen at the moment of installation. npx skills add is a package manager, it doesn't execute a single sentence in the skill; and at the moment of installation nobody knows where this user's home is. ⇒ The trigger point is the step at the start of every mode after orienting is done(_vault.md §1.5's "there's one more step after orienting"), ⛔ not _vault.md §8: §8 only runs when the address book doesn't exist, and users whose address book already exists will never reach it.
⚠️ The product-side doorbell dogma:the bell rings only once, and the bell itself names what has expired, without throwing a multiple-choice question at the owner(the product's modes/maintenance.md "One doorbell, two files" is exactly about this). Sodon't add a second bell, just write "which articles have hit 3 / 7 / 15 days" into a place the existing doorbell can read, and the bell rings once as usual, naming one more thing.
⛔ What you modify is the copy that Claude Code actually loads(~/.claude/skills/<slug>-command-base/SKILL.md); the copy in the vault is just a duplicate for copy installs, and modifying it won't error or take effect. After modifying, grep it back to confirm. ⛔ Don't write into the doorbell block itself; that block gets overwritten wholesale on a product version upgrade.
Which one to find, where to insert, what to insert, how re-runs won't insert twice, and how to record it if the connection can't be made, all five things live in _vault.md §1.5 and §9, ⛔ don't act on the memory of this paragraph.
When running, go through these layers in order
| Layer | What it does | Who does it | file |
|---|---|---|---|
| L0 | Collect objective, deadline, capacity, platform, and follower scale | Ask | 00-intake.md |
| L0.5 | Scale gate: if the scale isn't enough, don't produce a ratio | Gate | 00-intake.md |
| L1 | Funnel diagnosis, produce a stage-pressure profile | Engine suggestion | 01-diagnosis.md |
| L2 | Main-axis suggestions, 2 to 3 cards | Human picks (decision point 1) | 02-mainline.md |
| L3 | Ratio: how many pieces per stage per format, how many platforms | Engine suggestion, human can change the numbers | 03-package-model.md |
| L4 | Seed sheet | Human review (decision point 2, the only time) | 05-seed-sheet.md |
| L5 | Content map, mechanical derivation | Engine | 06-content-map.md |
| L6 | Pick a cell and write the draft | Engine | 07 → 08 → 09 → 10 |
Load on demand
| What the user wants | Which one to read |
|---|---|
| Start a new campaign plan / "help me plan this month" | 00-intake.md |
| "Why is nobody watching my content" / diagnose which stage is stuck | 01-diagnosis.md |
| Set the main axis / "what angle should I talk about" / reframe | 02-mainline.md |
| "How many pieces does this campaign need" / ratio / which platform | 03-package-model.md |
| Pick a content type / "what content can I post" | 04-content-types.md |
| Produce a seed sheet / review seeds | 05-seed-sheet.md |
| Build a content map / how content connects to each other | 06-content-map.md |
| Write one piece / how one piece grows | 07-body-structures.md |
| How to post on a given platform | 08-formats/(pick one by platform) |
| Want a title / opening line / video hook | 09-hooks/(read first _tournament.md) |
| The draft reads like AI / pre-publish check | 10-voice-anti-ai.md |
| "I have no material to write from" | 11-capture-loop.md |
| Run a whole campaign in one go / batch | 12-batch.md |
| Have a vault / override values / where things should live | references/_vault.md |
| Want to change a rule / want to know why a certain rule was cut this way | references/_RULINGS.md(arbitration master copy, ⛔ to change a rule first change the file body, then come back and record the ruling and rationale) |
| The numbers this user calibrated themselves and the things they learned | The vault's 04_Methodology/Playbooks/Content-Engine/ |
A few rules that run through everything
These few rules recur across many files because they really do apply everywhere:
- Cover-the-brand-name test. Cover the brand name; if any peer in the industry could post this content, it fails. If it's obviously yours at a glance, it succeeds.
- Free-teacher trap. Knowledge is cheap, AI can generate it at will;opinions are what's valuable. How-to content falls into this most easily; every piece must carry your own method and stance.
- Deep ≠ unique. Dig down into emotion, dig into identity, and in the end you often dig down to a universal truth that applies to everyone. That isthe highest-grade homogenization, not insight. Differentiation comes from reframe (your perspective), not from digging deeper.
- One pitch in Awareness and the three stages collapse into one. When a product appears in Awareness-stage content, readers swipe away immediately. There are no exceptions to this rule.
- Only real scarcity, never manufactured urgency. Using manufactured urgency at the wrong stage isa category error, not a style choice.
- Real memories have waste material; fabricated memories don't. If every detail in a piece happens to serve the argument, with not a single extra one, then it was most likely made up.And that extra detail must come from the same source as the load-bearing details, otherwise you could just make up an irrelevant detail and pass, and this rule would have been written for nothing.
One sentence
Content is slow work.First there is real material, then there is an angle, then there is content. What this set of tools can do is give every step a basis; it cannot go pick back up that sentence your customer said for you.