X growth: how content actually works
Rules for a small technical account with a real reach problem, written after a batch of high-volume posting returned almost nothing. Everything below is aimed at that one problem. Where a rule came from research it says so, and where the research is a reported number rather than a confirmed one it says that too.
The four rules that override everything else
1. Three posts a day, maximum. Three hours between them, minimum. The algorithm has an author-diversity rule: it will not serve several posts from one account in a row. Post five in an hour and they do not get five shots at distribution, they split one. The 2026 ranker also takes up to 24 hours to finish distributing a post, so posts stacked close together compete with each other. This is the single most repeated claim across the whole corpus and it is mechanically explained, not folklore.
The batch that failed was built at 12-13 a day with a 45 minute minimum gap. That is the thing to fix before anything else.
2. Zero hashtags. More than one is de-boosted in the algorithm code. One is tolerated. Zero is the recommendation, and it costs nothing.
3. Never post a number you cannot re-derive. House rule, and the research
agrees: a figure that gets fact-checked in the replies costs more reach than the
post earned. Every number in a post must trace to a file, a commit, a
transcript, or a measurement script in scripts/.
4. No em dashes, no en dashes, anywhere. Post text, image text, commit
messages, docs. grep -P '[\x{2013}\x{2014}]' must return nothing.
Content mix: four buckets, and two of them are missing
Every batch needs all four. The batch that failed was 52% tech, 22% opinion, and carried one proof post and no personality posts across its whole run.
| Bucket | What it is | Where it usually breaks |
|---|---|---|
| Value | teaches someone how to do a thing | the backbone, already strong |
| Growth | broader appeal: reacting to a trend, or a contrarian take you genuinely hold | usually present |
| Proof | evidence you are legit: a shipped thing, a milestone, a real result | almost always missing |
| Personality | evidence a person is behind the account | entirely missing |
Proof is what makes a stranger trust you. Personality is what stops the account reading as automated, which for an account posting 12 times a day is exactly how it reads. Target roughly: value 40%, growth 30%, proof 15%, personality 15%.
Stories are the highest-leverage format and the one nobody uses. The strongest claim in the whole corpus is that every framework for building a personal brand is overcomplicated, and the one skill that actually does it is telling stories about what happened to you. Not tied back to a lesson. Just told. Most technical accounts have a year of documented work to draw on and never once use it this way.
What a post looks like
The research definition: high quality content is easy to engage with and contains substance. Both, not either.
Three shapes qualify, and a batch needs all three:
| Shape | What it earns |
|---|---|
| A short powerful statement that causes a reaction | replies, reposts, shares |
| A detailed post that is highly educational | bookmarks, shares, reposts |
| A personal story others can relate to | shares |
The short ones buy exposure and followers. The educational ones build trust with the people who eventually pay. Dropping either is a mistake.
The hook is 10 words or fewer. From his own archive analysis of his top 50
posts: short punchy low word count hooks beat long setups, and his best opening
lines are almost all under ten words. build.py checks this now. the failed batch shipped
at 35% before the check existed.
A long opener is not fatal on an educational post, he says those still do fine, they just rank below the short reaction posts. So when a hook will not compress without losing a claim, move the claim to the second line rather than deleting it.
Never every post a one-line question. Fine occasionally. As a habit it is "purely transactional" and builds no relationship.
Wins and losses both. Milestones are his most reliable topic, cheap to make and consistently landing. Losses are stronger: an audience trusts an account more when it sees the failures too. That is the personality bucket with a shape.
Do not chase an off-niche outlier. One of his posts hit 1M views and 40k likes and moved nothing, because the topic was not his niche.
Humanizer
Run the humanizer skill over any new post text before it ships. It is Wikipedia's
"Signs of AI writing" as a checklist. Your own voice profile is the writing sample and
takes priority over the skill's general style rules, which the skill itself
says to do: keep the two-beat rhythm, the ..?!, the sparse real emoji, and the
habit of stopping rather than concluding.
The batch scanned clean on every pattern at the last check, because the voice rules already ban that vocabulary. The one that still catches things is §27, pretending to reveal a deeper truth: "the real question is", "the real answer is", "at its core", "what really matters".
Stance: report, never instruct
A voice profile that says "never instructional" and "I sound like someone muttering a true thing to himself, not someone addressing an audience." the failed batch drifted off that badly: 27 of 131 posts told the reader what they had got wrong.
The tell is second person plus a verdict. "Your RAG is not failing because of the model." "Most projects ship one and call it reliability." "People keep asking." Read together they sound like a man who has seen everything, and your own reaction to reading them was that it was bad for technical readers and felt AI written.
The fix is one move, applied everywhere: turn a verdict about the world into a report about yourself.
| Instead of | Write |
|---|---|
| Your RAG is not failing because of the model | My RAG was never failing because of the model |
| Everyone builds three | I built three |
| Most projects ship one and call it reliability | I shipped one and called it reliability |
| Check the font before judging a preview | I check the font before judging a preview |
| Everyone writes threads about the third rung | I am on the first rung, writing about the third |
It costs nothing, it is more honest, and it feeds the proof and personality buckets at the same time. A reader takes the lesson from a story about you; they argue with a lesson aimed at them.
Exceptions that are fine: flat aphorisms with no "you" in them, factual counts, and self-deprecation ("I keep giving a bad answer").
The fifth axis: Engage
Score is Hook / Clear / Feel / Worth / Engage. Engage is the research other half, "easy to engage with", which nothing measured before.
It is computed, not hand assigned, and that is deliberate. The other four
were typed once and never revisited: 82 hooks were rewritten and not one score
moved, so the numbers described text that no longer existed. See _engage() in
batches/*/model.py. Short arguable opinions land near 30, numbered reference
posts near 16. That spread is the point: it makes the tradeoff the research names
visible instead of hiding it.
Niche is a problem plus a person
Most technical positioning names the problem well and never names the person. Every batch plan should be able to finish this sentence: "I help ____ to ____." Until it can, content will attract nobody in particular.
Images
Media is worth 5-10x impressions on the same post, because dwell time is ranked. The caveat is that the image must be relevant to the post; a decorative one makes the post perform worse.
The image system is already built and is the one thing the failed batch got right. Write an image SOP and read it before making any figure. Fixed sizes, fixed grid, identity footer, no emoji in the footer. Do not re-derive any of it here.
Articles
Long-form gets read and bookmarked, both heavy signals, and one article breaks down into four to seven short posts for the week.
Do not convert every blog post into an X article. Convert the main ones only. Pick the pieces with a real finding in them, not the reference posts. When in doubt, ask which ones.
Replies: the narrow version only
The research contradicts itself here and the contradiction is worth knowing. The older material teaches "preheat the oven", meaning 15-20 replies before every post. The newer algorithm material says that matters much less now, because promotion moved from early engagement to the content itself. He then ran a separate account to test it and grew it on content alone with almost no replying.
So: replying is not the growth engine. When you do it, do the narrow version.
- Go to a creator with a similar offer and a bigger audience
- Read the replies under their posts, not the posts
- Find people replying genuinely, not AI slop and not restatements
- Do the whole move: reply on one or two of their posts, open their profile, engage with their content, follow
- A drive-by comment converts far worse than the full move
Never mass-reply, never use AI to write a reply, never leave several replies on one post.
TweetCred, and how not to get shadow banned
There is a reputation score that gates whether the account appears at all. Roughly 90% of shadow bans trace to it. What lowers it:
- Replying to accounts sitting under "probable spam" or "show additional replies"
- A bad following-to-follower ratio
- An offensive flag, which reportedly zeroes the score outright
- Posting or interacting with sensitive-labelled content
- Reposting an account that is itself search-banned; the ban is inherited
- Repeated identical actions: mass follow or unfollow, many replies in a row, several replies on one post
- Accounts under 30 days old start low
Diagnostic, five minutes, free. Burner account that follows nobody. Search for the handle. Missing from search means a search suggestion ban. Present means open the replies tab, click into an original post and scroll: a reply under "show additional replies" means shadow banned, a reply that is not there at all means ghost banned.
Run this before blaming content for low reach.
Monetization: not the goal, do not optimise for it
X replaced revenue sharing with an original-content-rewards program requiring 500k verified home-timeline impressions, replies excluded. Reported estimates put roughly 75% of monetised accounts in the sporadic bucket, and one post with 172 million impressions reportedly paid $1,500. The author's own split had X payouts at under 3% of his revenue.
The conclusion he repeats: X supports a business, it is not one. Do not write posts aimed at payouts, do not chase impression thresholds, do not join engagement groups or follow-for-follow schemes. They are against the rules and they poison the account.
Before any batch ships
- 3 posts a day or fewer, 3+ hours apart
- Zero hashtags
- All four content buckets present, proof and personality actually there
- At least one story post that is just a story
- Every hook 10 words or fewer, and none pointing at the post before it
- No post tells the reader what they got wrong
- Run the
humanizerskill over any new text - Every number re-derivable
- No dashes anywhere, post text and image text
- Images follow
IMAGE-SOP.md, footer handle matches the platform - No links in the body of an X post (they suppress reach; put them in a reply)
- Posts written to the vault as
status: draft. Scheduling is your call, never automatic - Read the artifact back yourself before asking for approval. This is the
gate that has caught every real defect. See
WORKFLOW.mdstep 3a
Where the rest lives
| File | What |
|---|---|
| your image SOP | image sizes, grid, type, colour, footer, icons |
WORKFLOW.md |
the batch pipeline end to end |
| your research notes | the full research findings, all 154 transcripts |
storytelling-svg |
what a figure should argue |
The two questions this skill cannot answer for you
- Run the shadow-ban check before blaming content. Five minutes, free, and described above. A penalty and a cadence problem look identical from inside.
- Who is the person in "a problem plus a person"? Until you can finish "I help ____ to ____", the content attracts nobody in particular. This is the single hardest item here and no amount of posting substitutes for it.