X post engine
Mine the current work session (or a named event) into 2-3 draft X posts using the 6 founder-content formats, keyword-first. Drafts only — Max makes the angle call and posts. Invoke at the end of a build session or with a topic.From its SKILL.md
npx -y skills add seldonframe/seldonframe --skill x-post-engineAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
10.7 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it
x-post-engine — session receipts → post drafts
The playbook (docs/strategy/founder-content — the 6 formats): build log · documented failure · value post · receipt · contrast hook · milestone chapter. Formats are commodity; the INVENTORY is the moat. This skill's job is extracting the inventory from real work and drafting; the angle call stays with Max — that is the one non-delegable step. Never post anything.
VOICE (applies to everything this skill produces): first person singular, always — "I", never "we"; it's Max talking to his audience and it's intimate. The agents are "my agents", the company decisions are "I decided". Written like he talks: contractions, short sentences, direct address ("you"), asides allowed. Read each draft aloud in your head — if a sentence can't be SAID naturally, rewrite it. Best practices still hold underneath (numbers, hooks, receipts); verbal delivery, disciplined structure.
Inputs
The current session's events, or a named event/topic. Best sources: what shipped, what broke, what a number proves, what an agent did that humans find surprising.
Before drafting, read the Patterns section of docs/strategy/x-vault.md if it
exists (only Patterns — the corpus below it is raw evidence, skip it). Patterns are
market-validated structure (hooks, pacing, number use); apply them to the framing,
never let them override Max's voice or the format rules below.
Information gain (optional — value posts + long-form only)
When a draft would land harder with an ORIGINAL founder story or real number
that isn't this session's own receipt, invoke the information-gain skill
(.claude/skills/information-gain) with the topic: it mines a niche YouTube
transcript into a cited source brief (a real figure / failure / decision that
exists nowhere else in writing). Weave in at most one, embed or link the
source video, and only state numbers the transcript actually says. Skip this
for build-logs and scars — those run on this session's own receipts, never mined
material. Never let a mined number become a [FILL]-style fabrication.
Produce (append to docs/strategy/x-drafts/YYYY-MM-DD.md)
2-3 drafts, each tagged with its format + the target keyword. Rules per draft:
- Keyword-first when the post has one (the GSC hack: X posts rank in Google — "GoHighLevel pricing —" as the opening words, not buried). Not every post has a keyword; build-logs and scars often don't. Never force it.
- One number with context beats three numbers. "113 SEO pages in one day" is noise; "I typed 'build #1-8' and twelve AI agents shipped 113 pages to production before dinner" is a post.
- Formats guide:
- Build log: what happened today, present tense, unpolished, ends with what's next (people invest in unfinished things).
- Scar: the failure with the embarrassing specifics kept in; the fix in one line at the end; never explain the lesson — let the reader get it.
- Value post: steps + the WHY behind each step (advice without reasoning is a list); specific beats general ("how I got X" > "how to X").
- Receipt: the screenshot IS the post — one line of text max. GSC/Bing graphs, revenue, the OG-card images from the calculators all qualify. Same graph monthly = a series people follow.
- Contrast hook: two facts side by side, no explanation ("Solo founder. 12 AI agents. 113 pages shipped today."), reader resolves the gap.
- Milestone: only with history to quote — quote the old post, add the new number. Flag candidates for later, don't force early.
- Attach the visual when one exists — every draft gets a CREATIVE block,
one of two types (never blur the line between them):
- GENERATED — concept cards the loop renders itself (quote card, stat
card, loop diagram): write an HTML card in
docs/strategy/x-creatives/YYYY-MM-DD/<slug>.htmland render withnode scripts/x-creative-shot.mjs <html> [--size WxH]. In-feed posts: 1200x675 (16:9). X Article covers and inline images: 5:2 — use--size 1500x600. Styles that earn (from Max's bookmark corpus): document-as-image (a real-looking typeset doc/field-notes page — borrowed authority), workflow diagram with the REAL artifacts embedded and a payoff at the end, vertical phone-screenshot receipt. Dark stat cards for numbers. NEVER generate anything that imitates an authentic capture — no fake terminal windows, no fake analytics UIs, no fabricated numbers. Fabricated receipts break never-lies; that rule outranks engagement. - CAPTURE — real receipts only Max can take (terminal output, GSC/Bing graphs, Stripe, the product). Spec it exactly: which app/window, which content must be visible, what to crop, light/dark, and WHERE it goes (image 1 / image 2 / cover). "Plainness is the receipt" — no beautifying.
- GENERATED — concept cards the loop renders itself (quote card, stat
card, loop diagram): write an HTML card in
- Paste-ready block — after each draft, a
PASTE-READYfenced block Max can copy straight into X: Unicode sans-serif bold (𝗯𝗼𝗹𝗱) applied to AT MOST the hook line or the one key number — never whole sentences (screen readers read Unicode bold as garbage; sparing use is both taste and accessibility). NEVER bold the keyword line — Unicode chars aren't ASCII, bolding the keyword breaks its Google indexing. No underline in posts (renders unreliably). Line breaks exactly as they should post. - Plain words. No hashtags. No "excited to announce". No em-dash chains — X posts read spoken.
- End the file with: "Pick one, adjust the angle, post. Repost winners in 6-8 weeks with updated numbers; quote-tweet anything that runs."
Long-form mode (X Article / blog, 1,500-2,000 words)
When invoked with "article" (or by the weekly loop), ALSO produce ONE long-form
draft in docs/strategy/x-articles/YYYY-MM-DD-<slug>.md. Rules:
- One article = one build with its receipts. Never a listicle of tips; the piece walks through something real we shipped, numbers kept in, failures kept in. The short-post formats scale up: a scar or value post at essay length.
- Structure: hook (a number or a contradiction, first two sentences) → the problem as lived → the build in chronological order → what the numbers say → honest limits (what didn't work / what we don't know yet) → what's next. The honest-limits section is mandatory — it's the never-lies positioning in long form and the section readers quote.
- Vault Patterns apply to the hook, the section openers, and every number
(one number with context per point). Plain words, spoken rhythm, short
paragraphs (X Articles render wide — 2-3 sentences per paragraph max).
The article body must be PASTE-CLEAN plain text: zero markdown symbols —
no #, ##, **, *, backticks, or bullet dashes anywhere in the body (they
don't convert when pasted into the X editor and they scream AI). Section
headings are short plain lines on their own; the FORMATTING MAP lists them
so Max can style them as headings in the editor. Wrap the body between
===== ARTICLE BODY (paste everything between these lines) =====markers; file metadata, the map, and tweets live OUTSIDE the markers. - Title = the article's best number or contradiction in the first six words; keyword up front when one exists (X Articles rank in Google); subtitle carries the second-best hook. Always provide 3 alternates in a comment under the title: A search-first (keyword leads), B feed-first (number or scar leads), C contrarian one-liner. Max picks per surface.
- End with one line pointing at SeldonFrame only if the article earned it — the build IS the pitch; never bolt on a CTA.
- Word count 1,500-2,000. Under 1,200 = make it a post instead; over 2,400 = cut the weakest section. Drafts only — Max posts manually (X Articles need Premium+ and his editorial pass).
- Formatting map + creatives: X Articles have a real rich-text editor, so no Unicode tricks — end the article file with a FORMATTING MAP (exact lines to bold / italicize / underline in the editor, cover image, and where each inline image goes) plus CREATIVE blocks per the post rules above (GENERATED cards rendered to docs/strategy/x-creatives/, CAPTURE specs for receipts).
- Concept visual (the sauce, drawn): every article gets 1-2 GENERATED diagrams that let a reader grasp the core mechanism from the image alone — flowchart of the loop, stack diagram, production line. Rules: (a) REAL specifics embedded (actual file names, numbers, tool names) — a generic boxes-and-arrows chart is AI slop and forbidden; (b) pass the rebuild test: someone could reconstruct the system from the diagram; (c) @themaxthule on the card — screenshots travel without attribution otherwise; (d) 5:2 via x-creative-shot.mjs --size 1500x600; (e) place it right after the section that explains the mechanism. Corpus evidence: the 5-ads workflow diagram with real artifacts did 1.1k likes / 901 replies — the diagram WAS the post.
- Steal-this-prompt block: near the end of the body (before the closing), a plain-text prompt the reader can paste into their own LLM/agent to reproduce the build, delimited by "Copy everything between the lines" lines. Must be honestly runnable — test-shaped, concrete, no pseudo-prompt filler (never-lies applies to giveaways). This converts readers into repliers ("it worked") and is the never-taxes distribution mechanic: give the sauce, sell the platform.
- 3 supporting tweets per article (in the same file, SUPPORTING TWEETS section, paste-ready): these are quote-reposts OF the article across the week — each takes a DIFFERENT door in: one number hook, one scar/insight line, one contrarian or value take. Never three rewordings of the title. Spacing note per tweet (e.g. "day 2 evening", "day 4 morning").
- Cadence: 5 articles/week, each anchored to a real build from the week —
the session logs, docs/learnings/, and the loops Max pastes into Claude Code
daily are all legitimate build material. If a receipt (number, timing, cost)
isn't in the material, mark it
[FILL: what's needed]for Max — never invent a receipt to complete an article.
Cadence memory
Track (top of the drafts file) which formats ran recently — rotate; the receipt series (GSC/Bing graph) is monthly, anchored to real data only. Articles are weekly at most — skip the week if no build earned one; a forced article reads forced.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.