RPA Risk Evidence — What Actually Gets Accounts Flagged

Purpose: For each of the 8 risk items on the RPA/commenting layer, present BOTH supporting and contradicting evidence, then a per-layer verdict (BotBouncer/subreddit-level vs Reddit platform-level). This doc feeds the V6 prompt changes and the RPA flow fixes, and answers the open question: “Is always making a fresh top-level comment a reason we are getting flagged?”

Data sources:

Link convention: All links are relative paths inside this repo (rahul-10xers/hermes, branch main) — GitHub resolves them automatically when the doc is viewed. The folder tree: https://github.com/rahul-10xers/hermes/tree/main/reddit-ban-forensics.

Verification evidence (2026-08-17): every linked file was confirmed to exist on disk via ls (BOTBOUNCER-SOURCE-CODE-ANALYSIS.md, cross-account-ban-patterns.md, all 4 surviving-account docs, upstairs-fortune-258-forensic-analysis.md, COMMENTING_TASK_ADV_FLOW.md, Cloudflare_worker.js, v5-delta-report.md, both guides — all present). Line numbers cited (Cloudflare_worker.js:60; BotBouncer analysis lines 186/211/322–324) were verified by direct file read on the same date. No commit SHAs are pinned because the docs evolve; line numbers are valid as-of 2026-08-17.


The two detection layers (established in forensics, confirmed by control group)

LayerWhat detectsSignal typeProven?Effect
1. BotBouncer / subreddit modsComment text & structure patternsContent-basedProven — real report against our account quoted the question-back + vague-answer patternSub bans, cascade bans across participating subs
2. Reddit platform (anti-evil)Unknown — IP/network, account creation batch, RPA session fingerprint, unmeasured signalsNot content-based (tentative)⚠️ Tentative — control group has identical content patterns and survives, BUT uncontrolled confounders (IP, creation batch, timing, flow version) mean this is not proven; see comparability caveatSitewide suspension

Key structural finding: 3 of 6 banned accounts (joycehicks2026, OutcomeAdept315, Ok_Bobcat9406) had zero BotBouncer bans — they were caught by the platform layer without any subreddit-level involvement. The two systems operate independently.


Item 1: 100% top-level comments

What it is: RPA posts every comment as a direct reply to the post (parent_id = t3_), never replies to other commenters. Flow: post-find → comment-generate → type → submit (no reply path exists in the 147-node flow).

Evidence FOR (high risk)

EvidenceSource
All 5 banned accounts: 96–100% top-level (99.4%, 100%, 96.4%, 100%, 100%)Cross-account analysis table
BotBouncer EvaluateBotGroupAdvanced config criteria explicitly include isTopLevel: true as a bot-matching ruleBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §4 (lines 186 & 211 of the repo copy) — describes the open-source bot-bouncer-evaluation repo config format; the live BotBouncer config is reported to be on a private wiki page (per BOTBOUNCER-SOURCE-CODE-ANALYSIS.md; not directly verifiable)
BotBouncer userSummary.ts computes comment depth per userBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §6
Real users reply; r/Entrepreneur data: replies avg 58.8 pts vs top-level 37.7ICP analysis (1,748 comments)

Evidence AGAINST (not the platform trigger)

EvidenceSource
All 4 surviving accounts are equally top-level (99.1%, 94.4%, 97.8%, 98.8%) and are NOT platform-bannedControl group docs
Small-Location7862: 94.4% top-level + 9 sub bans + no platform ban — subreddit detection fired, platform did notControl group doc
The one documented BotBouncer report cited content patterns (question-back, vague answer), not top-level-nessSmall-Location7862 report
isTopLevel appears inside a compound group config (needs ≥3 bodyRegex matches + ≥2 karma-farming subs + top-level) — never a standalone triggerBotBouncer source

Verdict

  • BotBouncer/subreddit layer: MEDIUM — a contributing criterion inside compound rules, but never standalone. The subs where it fires are the karma-farming subs (see Item 5).
  • Platform layer: NOT PROVEN — control group refutes it as the suspension trigger.
  • Action: Not a smoking gun, but add reply capability anyway (see Item 2) — it diversifies the fingerprint and improves karma.

Compound-rule check (steel-man: is top-level part of a combination that separates banned from survivors?)

BotBouncer’s example config requires multiple criteria together. Author’s calculation (not independently verified): thresholds question-back >50%, karma-farming concentration >50%, top-level >95%, applied to the published metric values in cross-account-ban-patterns.md (banned accounts) and the control-group docs (surviving accounts). Input values: hailybarnes37 (70/61/99), Key_Char6482 (72/45/96), joycehicks2026 (27/27/100), OutcomeAdept315 (40/100/100), Ok_Bobcat9406 (75/100/100), Reasonable_Owl (65/45/99), Small-Loc (89/44/94), Affectionate_Pen (76/46/98), No_Anxiety (76/46/99) — (question-back % / karma-farming % / top-level %).

AccountMatches strict compound?
hailybarnes37 (BANNED)
Ok_Bobcat9406 (BANNED)
Key_Character6482, joycehicks2026, OutcomeAdept315 (BANNED)
All 4 surviving accounts

Assessment: The compound separates 2/5 banned from 0/4 survivors — directionally consistent but it misses 3 of 5 banned accounts (including joycehicks2026, who had low question-back and low karma-farming concentration and was still banned). So even the compound rule does not explain the platform bans. It may explain SOME subreddit-level detections; it cannot be the platform trigger.


Item 2: No conversation engagement (fire-and-forget)

What it is: 96–100% top-level across all accounts = zero reply chains, zero thread participation. The RPA never checks for replies to its own comments.

Evidence FOR

EvidenceSource
99%+ top-level across all accounts implies no replies everCross-account table
BotBouncer OpenAI summary sends parent post + comment body + depth — the AI judges whether the comment engagesBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §5a
Warmup guides instruct replying (“Reply to anyone who responds”) as standard human behavior7-day guide Days 3–7; fleet guide §5.3
r/Entrepreneur: replies outperform top-level for karma (58.8 vs 37.7 avg)ICP analysis

Evidence AGAINST

EvidenceSource
Control group has identical 94–99% top-level behavior; 3 of 4 have zero bans at any levelControl group docs
No BotBouncer evaluator specifically tests “never replies” as a standalone ruleBotBouncer source (24 evaluators reviewed)

Verdict

  • BotBouncer/subreddit layer: LOW–MEDIUM — contributes to the “not a real participant” read, no standalone rule.
  • Platform layer: NOT PROVEN.
  • Action: Add a reply capability to the RPA (reply to replies on our own comments, 20–30% engagement). Requires new AdsPower sub-flow — developer work. Benefits: fingerprint diversity + karma (replies outperform) + the guides’ standard behavior.

Item 3: Question-back pattern (70%+)

What it is: Comments ending with ”?” — the single most famous signature of our accounts. Banned rates: 70%, 27%, 72%, 40%, 75%.

Evidence FOR (the strongest item)

EvidenceSource
Real BotBouncer report against our account: reporter described the bot as “asking a question back and a vague answer versus actually providing information” — filed 25 min after a double-commentSmall-Location7862 report, 2026-05-27
The reported comment ended with “what’s the last book you actualy finished?” — quoted verbatim in the reportSame
BotBouncer example group config regexes question patterns: what's.*underrated | what's.*discovered | what.*you.*thinkBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §4
V1 system prompt (Cloudflare_worker.js line 60): “End with a short question if it fits naturally…” — direct instruction that produced the patternCloudflare_worker.js
Natural baseline: 0–8% question endings in top comments of these subs (1,400-comment analysis); ICP post: 3 of 4 of our comments ended with questions vs 0 of 7 naturalSubreddit-comment-analysis; V5 task brief
NOTE (unverified testimony, not repo evidence): V5 is reported in prod by Rahul (PostHog AI-observability check, 2026-08-17 — event log shows V5 responses). This is user testimony — not independently verifiable from the repo (deployment is server-side; the repo holds only prompt specs). Treat the V5-in-prod claim as a hypothesis. The forensic comments analyzed (Mar–Aug 2026) were generated under V1-era prompts; V5 shipped 2026-08-11. Which prompt version generated which specific comment is NOT recorded per-comment — a data gap.v5-delta-report.md; user testimony

Evidence AGAINST (platform-level only)

EvidenceSource
Control group has HIGHER question-back rates: 88.9% (Small-Loc), 76.4% (Affectionate_Pen), 75.6% (No_Anxiety), 65.2% (Reasonable_Owl) — yet 3 of 4 have zero platform bansControl group docs
Small-Loc: 88.9% question-back + 9 sub bans + NO platform ban — question-back predicts subreddit detection, not suspensionSmall-Loc doc

Verdict

  • BotBouncer/subreddit layer: HIGH — PROVEN (n=1 documented case). One documented human report against Small-Location7862 quotes the pattern verbatim; confidence that it CAN trigger BotBouncer is high, but the evidence base is a single detection event, not a rate across accounts.
  • Platform layer: NOT PROVEN — control group refutes.
  • Action: V5 already moved in the right direction. V6 should make question-endings strict per-template (❌ defaults), add a post-generation “question check” like V3’s rule 7, and forbid question-back chains entirely.

Item 4: Min gap between comments < 4 minutes

What it is: Banned accounts’ minimum inter-comment gaps: 2.1, 1.9, 2.2, 3.4, 2.8 min (cross-subreddit). The RPA’s 60s+ waits between steps still allow sub-4-minute bursts.

Evidence FOR

EvidenceSource
BotBouncer userSummary.ts explicitly computes min/10th-percentile/max/avg/median time between commentsBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §6 (lines 322–324 of the repo copy)
r/NewToReddit wiki: “Never post/comment 50+ times in an hour — bots flag it as non-human”7-day guide line 64 (wiki-sourced)
Banned accounts peaked 14–17 comments/day with 1.9–3.4 min gaps → ~18–31 comments/hour burstsCross-account table

Evidence AGAINST

EvidenceSource
Surviving accounts have the SAME min gaps: 2.1, 3.0, 2.1, 2.2 min — distributions overlap completelyControl group docs
BotBouncer computes the metric but no config threshold at <4 min is documented (configs are on a private wiki page)BotBouncer source

Verdict

  • Both layers: LOW–MEDIUM. A hygiene metric, not a discriminator. The daily totals (14–17) are also within the 10–15/day recommended range — the burst profile, not the daily total, is the anomaly.
  • Action: Cheap, harmless hardening: enforce a ≥4–6 min floor between comments, cap ~3–5/hour, spread across ≥3 subs/day. Do it, but don’t expect it to be the ban fix.

Item 5: Karma-farming subreddit concentration

What it is: Share of comments in the 5 BotBouncer-monitored subs (NoStupidQuestions, AmItheAsshole, CasualConversation, TheTopicOfTheDay, Advice). Banned: 61%, 27%, 45%, 100%, 100%.

Evidence FOR

EvidenceSource
BotBouncer karmaFarmingSubsCheck.ts proactively scans accounts commenting in known karma-farming subs — these exact subsBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §karmaFarmingSubsCheck
Example BotGroupAdvanced config requires ≥2 of NoStupidQuestions/AmItheAsshole/CasualConversation/TheTopicOfTheDayBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §4
NUFS wiki: “Please be careful not to spam or post too frequently on these subs; we don’t want them to think you’re a spammer”7-day guide (wiki quote)
100% concentration in 2 accounts (OutcomeAdept315, Ok_Bobcat9406) — all eggs in the monitored basketCross-account table

Evidence AGAINST

EvidenceSource
Control group: 44.6%, 44.4%, 46.1%, 46.3% — same concentration, not platform-bannedControl group docs
Banned Key_Character6482 (45%) ≈ surviving accounts (44–46%) — concentration alone doesn’t separateComparison tables
Key_Character6482’s only BotBouncer ban was from r/GirlDinnerDiaries — NOT a karma-farming subCross-account table

Verdict

  • BotBouncer/subreddit layer: MEDIUM–HIGH as a watchlist factor — it determines WHICH accounts get proactively scanned, and it’s an element of the compound config.
  • Platform layer: NOT PROVEN.
  • Action: Expand the subreddit pool beyond the 5–6 monitored subs (use the Tier 1–3 lists + NUFS list), cap per-sub daily counts, rotate. Rahul’s warmup tier system (Tier 1 → 2 → 3) already exists — the issue is run-level concentration within a day.

Item 6: Duplicate post detection (current_comments array)

What it is: RPA pushes each commented post URL into current_comments and the post-finder rejects posts already in it. Prevents re-commenting the same post within a run.

Evidence FOR (why it’s good)

EvidenceSource
Double-commenting directly caused the only documented detection event: BotBouncer report filed 25 min after a double-comment (two near-identical comments, 4.7 min apart)Small-Location7862 report
Double-comments existed in older flows: 6 (hailybarnes37), 11 (Key_Char), up to 14 (Reasonable_Owl) — the array didn’t exist or was per-run onlyCross-account + control tables

Evidence AGAINST (limitations)

EvidenceSource
The array is per-run only (browser session variable) — a comment from yesterday’s run isn’t in today’s arrayFlow doc §Global Variables
No persistence across runs → same post can be re-commented on a later runFlow analysis

Verdict

  • Risk: LOW. Value: HIGH — keep and harden. Make dedup persistent (backend DB check via /check-comment, which already exists and covers cross-account dedup). This is the cheapest real fix on the list.

Item 7: Human-like typing (typo simulation + variable speed)

What it is: Burst typing 2–6 chars, 3 speed tiers, 2.5% typo rate per burst with correction, stop-start rhythm, thinking pauses, punctuation pauses.

Evidence FOR (why it’s good)

EvidenceSource
RPA-session fingerprint (keystroke timing) is a real detection surface; burst/variable typing is the right counterFlow doc §Human-Like Behavior
The typing engine is a meaningful improvement over the older flowsFlow doc §Key Differences

Evidence AGAINST (caveat)

EvidenceSource
Prompt-instructed typos are also a signal: the reported Small-Loc comment contained “everythng” and “actualy” — V1 prompt said “intentionally mistype a word to make it sound human.” A fixed 2.5%-per-burst typo rate is itself a pattern; natural humans typo sporadicallySmall-Loc report; V1 prompt
The reporter did NOT cite typos (contradicting evidence: typos alone did not trigger the documented report) — but consistent typo placement is the kind of thing an AI evaluator (gpt-5.4-mini) can notice; a fixed 2.5%-per-burst rate is itself a statistical pattern vs sporadic natural typosBOTBOUNCER-SOURCE-CODE-ANALYSIS.md §5

Verdict

  • Risk: LOW. Keep the typing engine. V6 should remove “intentionally mistype” from the prompt (V5 already has “allow natural imperfections” — keep that, softer). Optionally decay typo probability per comment. Minor.

Item 8: Check-comment API pre-check

What it is: POST /check-comment?acc={name} with {post_author, post_url, profile_username} before generating — prevents duplicate comments across accounts.

Evidence

EvidenceSource
The only cross-account dedup guard in the flow — prevents the same post receiving comments from multiple fleet accounts (a coordinated-swarm signal)Flow doc §External Integrations
Fleet guide: “Min delay between accounts on the SAME post: 10–15 minutes (hours apart preferred) — never looks like a coordinated swarm”Fleet guide §Anti-Detection

Evidence AGAINST (limitations)

EvidenceSource
Depends on the backend DB being updated after each comment — the browser saves the URL locally; the backend write path is external and unverifiedFlow doc + API architecture

Verdict

  • Risk: LOW. Value: HIGH — keep. Verify the backend records every comment (if it doesn’t, the check silently passes everything). Add per-post fleet cooldown (one account per post, period) as the strongest anti-swarm measure.

Direct answer: “Is always making a fresh top-level comment a reason we are getting flagged?”

Short answer: we don’t know what triggers platform bans. Top-level-only behavior is a proven contributing fingerprint for subreddit-level detection, and it MAY or MAY NOT be a platform factor — the control group suggests content patterns alone don’t explain suspensions, but uncontrolled confounders (IP, batch, timing) mean the control group cannot prove either way.

  • What we KNOW was detected (the one documented event): content patterns — question-back + vague answer, on a top-level comment. Not top-level-ness itself.
  • BotBouncer lists top-level as a criterion only inside compound configs that also require question regexes + karma-farming sub usage (Items 1+3+5 together = the real recipe). The compound-rule check above shows the strict compound catches only 2/5 banned accounts — even combined, it misses most platform bans.
  • The platform bans hit accounts with and without BotBouncer involvement — the platform trigger is elsewhere (unmeasured), and content patterns don’t explain it.

Recommendation: add reply capability anyway — it diversifies the fingerprint, raises karma (replies outperform top-level in r/Entrepreneur), and is standard human behavior per both guides. It’s insurance, not a proven fix.

Control-group comparability caveat (steel-man)

The control group’s power as proof (“content patterns don’t cause platform bans”) rests on an assumption: that surviving accounts are otherwise comparable to banned ones. Known confounders we did NOT control for:

ConfounderStatus
Different IP ranges/proxies per accountPresent — each profile has a unique proxy (Webshare HTTP for most; Decodo SOCKS5 for Affectionate_Pen9685)
Account creation date/batchMixed — hailybarnes37 + joycehicks2026 created 2026-03-12 (same batch); Upstairs-Fortune-258/OutcomeAdept315/Ok_Bobcat9406 created ~Aug 8–9 (batch, banned in days); survivors created Jun 13, Jun 17, Jul 5, Mar 8
Activity timing (time-of-day, session length)Not measured in this analysis
RPA flow version at time of activityNot known per account — flows changed over time (V2 → ADV)

Assessment: The content-pattern equivalence between banned and surviving accounts is solid (same RPA, same prompts, same behavior). But “content patterns are NOT the platform trigger” should be read as: “if the control group is comparable on non-content dimensions (IP, batch, timing), then content patterns don’t explain platform bans.” The batch-creation observation (3 accounts created within days of each other, all banned within days) remains the strongest unexplored lead.


Platform-layer hypotheses: what has been tested vs. what remains open

HypothesisStatusEvidence / why
Content patterns (question-back, top-level, velocity, karma-sub concentration) cause platform bansNOT SUPPORTED by current evidenceControl group matches on every content metric and survives — but see comparability caveat; absence of evidence is not proof of absence
Double-commenting causes platform bansNOT SUPPORTEDSurvivors double-comment at equal or higher rates (up to 14) — not a discriminator
Subreddit diversity protects against platform bansNOT SUPPORTEDSurvivors use FEWER subreddits (10 vs 25, 13) — diversity is not protective
Proxy provider (Webshare vs Decodo) discriminatesPARTIALLY TESTED — inconclusiveAffectionate_Pen9685 (Decodo) survives; banned accounts mostly Webshare — directionally interesting but sample too small to separate from other factors
Account creation batch detectionNOT TESTED — STRONGEST LEAD3 banned accounts created Aug 8–9, banned within days; survivors created on distinct dates
IP/network reputation (residential vs flagged ranges)NOT TESTEDWe have no evidence on whether the specific proxy IPs were flagged
AdsPower browser fingerprint consistencyNOT TESTEDEach profile has a unique fingerprint per setup; no detection-side data
RPA session fingerprint (navigation cadence, scroll patterns, mouse events)NOT TESTEDThe human-like behaviors are our own simulation; we have no evidence on what Reddit sees
Cross-account content similarity (same prompt → near-identical comments across fleet accounts)NOT TESTED as a ban triggerConvergence documented (V5 task brief: 115x Jaccard vs natural commenters) — a coordinated-inauthentic-behavior surface; we have no evidence Reddit links accounts by content, but the fleet guide’s persona-pool rule exists precisely because of this risk

Implication: The platform-ban trigger is in one of the NOT TESTED rows. Content fixes (V6 prompt, RPA flow changes) will reduce subreddit-level detection but are not expected to prevent platform bans. The fleet guide’s isolation rules (unique proxy per profile, staggered activity, persona pool) are the only existing countermeasures; proving which row matters requires either (a) view-count ban-window analysis on the remaining banned accounts, or (b) a controlled experiment on fresh accounts varying one factor at a time — both are separate workstreams.


Volume question: how many comments/day is ideal?

Sources of the 10–15/day figure:

  1. guides/reddit-karma-7day-guide.md line 101: “Days 3–7: Ramp Up (10–15 Comments/Day)” — the routine (lines 103–110): 2–3 comments per sub, 3–5 subs/day, reply to responders.
  2. That number is derived from the r/NewToReddit wiki (NUFS guidance: “Please be careful not to spam or post too frequently on these subs”) — the wiki warns against spam, it does NOT publish a number. The 10–15/day is our own conservative interpretation.
  3. guides/reddit-profile-fleet-guide.md line 268: “Comments per account per day: 10–15 (ramp phase), 5–10 (steady state) — Below spam thresholds; sustainable.” Lines 187–189: cold start 1–2/day, ramp 5–10/day, comment-only 10–15/day, “never 50+/hour”.
  4. Gojiberry reference (fleet guide line 194): ~50/day works for small fleets; we deliberately run 10–15/day because fleet size provides aggregate volume.

What the forensic data says: banned accounts peaked at 14–17/day — at the top of the recommended range. The anomaly is the burst profile (1.9–3.4 min gaps ≈ 18–31/hour), not the daily total.

Recommendation (my suggestion): steady state 8–12/day, per-hour cap 3–5, min gap 4–6 min, spread across ≥3 subs, stagger across local-timezone day parts, and add reply-chain activity on 20–30% of days. Never exceed 50/hour (wiki hard line).

Caveat (steel-man): This is a precautionary measure, not an evidence-backed fix. The burst profile (1.9–3.4 min gaps) is shared by surviving accounts, so the evidence does NOT prove that burst pacing causes bans. The recommended caps follow the fleet guide’s own numbers (10–15/day, 5–10 steady state, never 50+/hour) and are deliberately conservative; they cost nothing but reduce an unproven risk surface.


What this means for the V6 prompt + RPA flow work

A. Evidence-backed fixes (supported by documented detection events)

Prompt V6 (server-side, backend team):

  1. Question endings: strict per-template; ❌ becomes the default; add a post-generation question-check (revive V3 rule 7). Supported by: the Small-Location7862 report quoting “asking a question back”; BotBouncer question regexes.
  2. Remove any remaining “mistype a word” instruction; keep “natural imperfections” only.
  3. Add optional per-account persona steering (interests/voice) — the single highest-leverage fix for cross-account convergence; fleet guide §5.2 already specifies a 100–200 persona pool, drawn once per account, never reused.
  4. Keep all V5 changes (top_comments, thread engagement, anti-convergence) — they’re correct.

RPA flow (AdsPower, developer work):

  1. Persistent dedup: extend current_comments to a backend record via /check-comment (verify the write path exists first). Supported by: the only documented detection event (a double-comment) triggered the report 25 min later.
  2. Subreddit pool: expand beyond the 5–6 BotBouncer-monitored subs using the Tier 1–3 lists + NUFS list; cap per-sub daily counts. Supported by: BotBouncer’s proactive karma-farming scan targeting these exact subs.

B. Precautionary hardening (plausible, but NOT proven to prevent bans)

Treat these as cheap insurance — the control group shows surviving accounts share the same behaviors, so none of these is evidenced as the ban trigger:

  1. Reply capability (new AdsPower sub-flow): check for replies to our comments; reply 20–30% of the time. Improves karma (replies outperform in r/Entrepreneur) and diversifies the fingerprint. Insurance, not a proven fix.
  2. Pacing caps: min gap ≥4–6 min, per-hour cap 3–5, per-day cap 8–12. Follows the fleet guide’s own numbers; evidence does NOT prove burst pacing causes bans.
  3. Question-check in prompt V6: reduces subreddit-level detection risk (the only documented report cited it) even though it doesn’t explain platform bans.

C. Out of scope (platform layer)

The suspension trigger remains unidentified (candidates: account creation batch, IP/network reputation, fingerprint/session signals — all NOT TESTED per the hypotheses table). Content-level fixes will NOT prevent platform bans. Countermeasures that exist today: fleet guide isolation rules (unique proxy per profile, staggered activity, persona pool). Proving the trigger requires either (a) view-count ban-window analysis on the remaining banned accounts, or (b) a controlled experiment on fresh accounts varying one factor at a time — both separate workstreams.