The heart of Content Engine. NOT a rigid calendar — for each slot of the week it pulls from the Idea Pool 2-3 best options with a score and an explanation of "why this now". The user approves in 5 min. This solves the pain: "I sit and choose from a rigid plan with bad topics".
Input: $ARGUMENTS — client (default — the only active one) + week-start (default — the nearest
Monday). Structured input/output (n8n-callable via SDK).
We read
- Strategy (Notion
🧭 {Client} · Strategy): Section 4 — pillars (funnel, day), rhythm (N posts/week, days); Section 7 — viral levers (weights, calibrated09-track; no calibration → defaults methodology §5); Section 6 — voice. - Idea Pool (
${CLAUDE_PLUGIN_ROOT}/reference/notion-schema.md): all cardsStatus∈ {new, recommended}, з pillar/funnel/format/hook/competence/score/source/Last used. - Posts DB (filled by
09-track): performance priors by pillars/topics/formats/angles — weight in the score. No priors yet (little data) → the score runs on defaults, and this is stated in the rationale. - Rules:
${CLAUDE_PLUGIN_ROOT}/reference/methodology.md§2.5 (rhythm), §2.6 (recirculation), §4 (distribution cadences).
Step 1 · Resolve the week's slots
From the strategy rhythm, build a grid of slots (day → funnel → pillar → format). Apply the calendar rules (example for a personal brand, take from the specific client strategy):
- Tue MOFU · P1 (expertise)
- Wed MOFU↔BOFU · П1 — even week = BOFU (case / hand raiser), odd = MOFU milestone-lesson
- Thu MOFU · P2↔P3 alternating by weeks. The only slot where a lead magnet and comment gate are allowed ("write the WORD in the comments"). On Tue, Wed and Fri the post's ending is a directive command.
- Fri TOFU · П4 — first Fri of the month = fitness P&L (build-in-public), the rest = a person's story (see "Personal test" below)
- Personal test for Friday (hard gate, 17.09.2026). Friday is Viktor as a person, NOT work, told through "I".
Question: will a person who doesn't know the words GTM, outreach, retainer, scoring understand the post? If the topic rests on a method,
tool, pricing or a work metric — it does NOT pass, even with the tag
Pillar = Personal(examples of rejected ones: “raised the check $500→$4000 to manage demand”, “first workshop for the client’s team”, “recalibrated post length across 214 posts”). What actually holds Friday (analysis of 80 Friday posts 2025–2026): the path and money in the story (quitting, zero clients, failures, started at 36) · the wife’s fitness studio and the wife as an entrepreneur · the decision about one’s own life model (why not an agency, fired a client, turned down conferences) · lessons and looking back (advice to myself 5 years ago, the most valuable thing from hiring) · doubts, fears, the price of freedom · one’s own path on LinkedIn. Every strong post has a moment where something went wrong, it was scary, or a decision had to be made. Closed arcs (do not repeat without a new angle): “quitting → own business”, “not building an agency”, “check $0 → $25k”. If the pool has < 2 cards that passed the test — flag “pool is poor in real Personal” and do NOT fill it with work topics. - Cadence limits: carousel ≤ 1×/2 weeks; we do NOT use comment-to-get (bait risk 2026 — see distribution §6); fitness exactly 1×/month.
Step 2 · Candidates for the slot
For each slot, filter the Idea Pool: Pillar = pillar of the slot · Funnel compatible · Status ∈
{new, recommended} · reuse pause: Last used empty or > 1-3 months · format compatible with the slot
(or flexible). If there are < 2 candidates for the slot — flag “pool is poor in {pillar}”, suggest
content-engine:03-research --source=... or matrix-expansion fill.
Step 3 · Score and ranking → top 2-3
Candidate rank = base Score (Idea Pool) × coefficients:
- viral lever (weight from Section 7, calibrated on own data — with Viktor vulnerability/personal beats theory);
- performance prior (Posts DB: has this pillar/topic/format/angle historically landed? +/−; segments with n < 4 — signal, not weight);
- freshness (call-insight / reddit-pain / fresh signal > matrix-expansion);
- balance-penalty: minus if the topic/angle is already chosen this week or was last week (diversity);
- competence gate (no proof and no backup strategy → cut). Take the top 2-3 for the slot. If one strongly dominates — put it first, but give ≥1 alternative.
Step 4 · The gist of the post + rationale
⚠️ Headline + "why this now" — NOT ENOUGH. It's impossible to write a post from the card title alone: neither a human nor a model that's handed a screenshot of the slot. Each option gets FOUR blocks:
- What the post is about (3–6 sentences) — the thesis, what exactly is inside the body (steps / breakdown / comparison /
what was done), and how it differs from neighboring cards. This is the main block: it alone should
be enough to hand the option off to
05-creative→06-writewithout additional explanations. - Numbers in the body — concrete number-bullets that will go into the post (without them, engagement doesn't happen at all).
- Ending — 1–2 sentences, an aphoristic conclusion in the author's voice (Section 6 of the strategy).
- Why right now — 1 line: which lever it pulls, why it's fresh/timely, what proof backs it up, and which penalties are applied.
Reason for the rule (feedback from Viktor 31.08.2026): he screenshots the slot and throws it into Claude — and from the screenshot "headline + why now" the model doesn't understand what to write the post about.
Step 5 · Output (Notion + Telegram)
- Page in 📅 Weekly Plans (
{Client} · Тиждень N (дата-дата), Status=draft→sent): slot table — day · funnel · format · 2-3 options (relation to Idea Pool) · a rationale line for each · column Selection (checkbox/user mark). - Telegram digest to the configured channel: a short list of slots with the top option + a link to the Notion plan page (chat_id — from the config; reuse of the content-delivery channel).
Step 6 · Approval (loop)
The user marks their choice (in the Notion column "Selection" or by replying). On the next call /
by command: selected ideas → Status = approved in the Idea Pool (the rest remain recommended);
plan → Status = approved. Then 05-creative → 06-write take approved by slots.
Definition of Done
- The week's slots are resolved according to the rhythm + calendar rules (fitness/BOFU/alternation/carousel).
- Each slot has 1-3 variants with a score and a FULL description: "What the post is about" + "Numbers in the body" + "Ending" + "Why now". A slot with only a headline and rationale is considered NOT done. Weak slots are marked.
- Reuse and balancing pauses observed (no repetition of topic/angle).
- The plan page in Weekly Plans is created (Status sent); the Telegram digest has been sent.
- The approval mechanics are explained; after selection — promotion to the Idea Pool works.