Each social platform has invisible rules. Break them and you get shadowbanned, de-ranked, or ignored — without knowing why. This tool scans your draft post against 30+ platform-specific rules before you publish.
Like a linter, but for social media posts.
bash
# Check a Reddit post
echo "Your post text" | python3 ~/.claude/skills/phy-platform-rules-engine/scripts/platform_rules.py --platform reddit
# Check a LinkedIn post from file
python3 ~/.claude/skills/phy-platform-rules-engine/scripts/platform_rules.py --file draft.txt --platform linkedin
# Check a Twitter/X thread
python3 ~/.claude/skills/phy-platform-rules-engine/scripts/platform_rules.py --text "My tweet..." --platform twitter
# Check a HackerNews submission
python3 ~/.claude/skills/phy-platform-rules-engine/scripts/platform_rules.py --text "Show HN: ..." --platform hackernews
# JSON output
python3 ~/.claude/skills/phy-platform-rules-engine/scripts/platform_rules.py --file draft.txt --platform linkedin --format json
IDRuleWhat It CatchesSeverityR001Self-promo in openingProduct mention in first paragraph → instant downvotesHIGHR002Self-promotion ratio>10% promotional content violates 90/10 ruleHIGHR003External link in bodyReddit tracks link-to-comment ratio; >10% → spam flagMEDIUMR004Post length<50 words = low effort; >500 = TL;DR neededLOWR005No discussion promptNo question = no comments = no algorithm boostMEDIUMR006Clickbait languageCommunity actively downvotes hype/clickbaitMEDIUMR007Cross-posting signal"Also posted on LinkedIn" → mass-distribution flagHIGH
IDRuleWhat It CatchesSeverityL001External link penaltyLinks in body → 60% less reach (LinkedIn 2026)HIGHL002Engagement bait"Comment YES", "Tag a friend" → NLP filter penalizesHIGHL003AI content signals37 AI-flagged words → 360Brew 30% less reachHIGHL004Hashtag count>5 hashtags looks spammy; 0 = no categorizationMEDIUML005Hook strengthFirst 150 chars determine "See more" clicks → dwell timeHIGHL006Post length<30 words = low dwell timeMEDIUML007Long paragraphs>40 words/paragraph = poor mobile readabilityMEDIUML008Engagement pod signalsPod references → aggressive detection in 2026HIGH
IDRuleWhat It CatchesSeverityX001External link depressionLinks → near-zero engagement for non-Premium (since March 2026)HIGHX002Thread hook strengthWeak thread hook = rest of thread never distributedHIGHX003Character count>280 chars = truncated (non-Premium)HIGHX004Link placement strategyTip: author reply with link = 150x multiplierHIGHX005Bookmark potentialNo save-worthy content = misses 10x bookmark boostMEDIUMX006No engagement promptNo question = no replies = misses 27x reply multiplierMEDIUM
IDRuleWhat It CatchesSeverityHN001Clickbait titleModerator (dang) will edit your titleHIGHHN002ALL CAPSExcessive capitalization → title editMEDIUMHN003Show HN missing URLShow HN requires a URLHIGHHN004Show HN content typeShow HN is for runnable things, not blog postsHIGHHN005Tutorial contentTutorials explicitly downranked by moderatorsMEDIUMHN006Self-promotionSelf-promo outside Show HN → flaggedHIGHHN007Technical depthLow technical depth → poor reception on HNMEDIUM
Platform SignalSourceDataLinkedIn external link penaltyLinkedIn 360Brew 2026~60% less reachLinkedIn AI content penaltyLinkedIn 360Brew 202630% less reach, 55% less engagementTwitter/X reply multiplierX algorithm source codeReply = 27x, Author reply = 150x, Bookmark = 10x, Like = 1xTwitter/X link penaltyX algorithm March 2026Non-Premium: near-zero engagement with linksTwitter/X half-lifeX algorithm analysisTweet loses 50% visibility every 6 hoursReddit timing impactUpvote.net 1000-post study730% difference based on posting time aloneReddit self-promoReddit sitewide rules90/10 ratio across total account historyHN tutorial downrankHN moderator policyTutorials "gratify intellectual curiosity less"
text
Score : 20/100 🔴 HIGH RISK
Rules : 2 PASS, 3 WARN, 2 FAIL
🔴 [R001] Self-promo in opening — FAIL
→ Move product mention to a reply comment. Lead with value first.
🔴 [R007] Cross-posting signal — FAIL
→ Remove cross-posting references. Each platform should feel native.
text
Score : 5/100 🔴 HIGH RISK
Rules : 3 PASS, 2 WARN, 3 FAIL
🔴 [L001] External link penalty — FAIL (60% less reach)
🔴 [L002] Engagement bait detection — FAIL (NLP filter)
🔴 [L003] AI content signals — FAIL (8 AI words found)
text
Score : 100/100 ✅ CLEAR
Rules : 8 PASS, 0 WARN, 0 FAIL
--format json for pipeline integrationSkillRelationshipphy-content-humanizer-auditDeep 8-dimension AI signature analysis (this tool = quick rule check)phy-post-forensicsPost-publish analysis (this tool = pre-publish prevention)phy-content-compoundContent atom library (use rules engine before publishing atom combinations)
Canlah AI — Run performance marketing without breaking your brand.