V3 → V4 Unified Prompts — Delta Report
Date: 2026-08-07
Prepared by: GLM 5.2 (glm-analyzer profile, resumed session 20260806_075811_70b700), verified by Hermes default agent.
Source of new templates: growreach-reddit-strategy/growreach-comment-analysis/analysis-report.md (1,748 comments, 26 ICP subreddits, actual upvote scores).
Files
| File | V3 (baseline) | V4 (new) | Delta |
|---|---|---|---|
| System prompt | reddit-comment-system-prompt-v3-unified.md (529 lines, 25,127 B) | reddit-comment-system-prompt-v4-unified.md (832 lines, 49,219 B) | +303 lines, +24,092 B |
| User prompt | reddit-comment-user-prompt-v3-unified.md (150 lines, 8,531 B) | reddit-comment-user-prompt-v4-unified.md (190 lines, 10,821 B) | +40 lines, +2,290 B |
V3 files were NOT modified (verified via md5: 551dc845567d6f2fd96815afce57b975 system, e18beedc4e986cedfaedb16fdc4ca64f user).
1. Breaking Changes: NONE
Verified programmatically (Python section extraction + JSON block comparison):
| Contract | Status | Evidence |
|---|---|---|
| JSON input format (INPUT FORMAT section) | ✅ Identical | JSON blocks byte-identical between v3 and v4 |
| JSON output format (OUTPUT FORMAT section) | ✅ Identical | JSON blocks byte-identical; all 21 quoted fields present in both (action, reason, categories, confidence_scores, sensitive, comment, word_count, subreddit_template_used, upvote_triggers, quality_score, quality_notes + 5 triggers) |
| Universal Ban Categories | ✅ Identical | 624 chars, byte-identical |
| Sensitive Categories list | ✅ Identical | 1,440 chars, byte-identical |
| Decision Rules 1–7 | ✅ Identical | 501 chars, byte-identical |
| Anti-AI Detection Guidance | ✅ Identical | 1,728 chars, byte-identical |
| Old subreddit templates (24) | ✅ All present | Grep-verified each of the 24 old subs in v4 |
| Old On-Topic Guide rows | ✅ Untouched | Diff shows no changes to non-ICP rows |
The only field-level additions in INPUT FORMAT are example subreddit names in descriptions (e.g., "Entrepreneur", "sales" added to the subreddit field description) — cosmetic, no schema change.
Bottom line: the RPA’s JSON contract is unchanged. A v4 prompt can be swapped into the existing pipeline with zero code changes.
2. What Was Added (System Prompt)
2.1 Header
- Title updated to V4.
- Added paragraph: “V4 covers BOTH karma-farming subreddits (general conversation, advice, content, humor, pop culture, gaming, news) AND GrowReach ICP subreddits (business, startup, marketing, sales, LinkedIn, agency communities).“
2.2 Subreddit On-Topic Guide (Phase 1)
- 25 new rows added (all ICP subs). Pattern derived from the report’s Subreddit Psyche section:
Spam_self_promo→ off-topic/SKIP in all 25 (business subs are hostile to pitches; r/MarketingAutomation’s top comment literally calls out spam posts).Compensation_salary,Company_crisis,Career_hiring,Resignation_termination→ on-topic in sales/founder subs.Personal_struggles (business-related)→ on-topic where the psyche section shows career venting is rewarded.Negative_reviews→ on-topic where tool/platform rants are rewarded (r/SocialMediaMarketing, r/LinkedInLunatics, etc.).
- All 24 old rows byte-identical.
2.3 Per-Subreddit Templates (Phase 2)
- 25 new ICP templates added under a new section group
#### ICP SUBREDDITS — ...(Founder / Marketing / Sales / LinkedIn / Agency communities). Same table format as v3 templates (Structure, Length, Tone, Do, Don’t, Question ending) PLUS the report’s evidence numbers embedded (avg scores, top-comment examples, question-rate stats).
List of new templates with their data-grounded question-ending rule:
| Sub | Template length | Question ending rule | Evidence cited |
|---|---|---|---|
| r/Entrepreneur | 7–25 / 10–40 words | ❌ Hurts (−35%) | 27.6 vs 42.8 pts; reply avg 58.8 > top-level 37.7 |
| r/startups | 10–25 words | ❌ Hurts (−40%) | 30.7 vs 50.8; quote-rebuttal in 4/5 top comments (554 pts) |
| r/SaaS | 6–20 / 30–45 words | ❌ Hurts | 21.6 vs 34.2; top-3 avg WC 20.8 |
| r/indiehackers | 40–80 / 200–255 words | ⚠️ Rarely | 8.8% question rate, scores equal |
| r/Solopreneur | 20–50 words | ❌ Never | 0% question rate; 100% top-level |
| r/SaaSSales | 30–80 words | ⚠️ Slightly rewarded | 14.8% question rate; 1.4 vs 1.3 pts |
| r/B2BSaaS | 80–230 words | ⚠️ Occasional | top-3 avg WC 227.3; credential opener (13 pts) |
| r/scaleinpublic | 40–80 words | ⚠️ Sometimes | 17.6% question rate (highest founder) |
| r/aisolobusinesses | 25–60 words | ✅ Rewarded | 19.6% question rate (highest overall ICP) |
| r/aiToolForBusiness | 40–70 words | ⚠️ Slightly rewarded | 1.7 vs 1.4 pts; 4.3% rate |
| r/SaaSSolopreneurs | 25–50 words | ⚠️ Slightly rewarded | 13.2% rate; meta-callout top comment |
| r/BootstrappedSaaS | 4–22 words | ⚠️ | sub dormant (4 comments); any engagement |
| r/marketing | 60–130 words | ❌ Hurts | 0% question rate top-3; 126-word story 439 pts |
| r/DigitalMarketing | 60–95 words | ❌ Hurts | 3.2 vs 10.7 pts |
| r/SocialMediaMarketing | 15–55 words | ⚠️ Occasional | 5.1% rate |
| r/GrowthHacking | 15–35 words | ❌ Hurts | 1.6% rate (lowest marketing) |
| r/MarketingAutomation | 4–35 words | ⚠️ Occasional | 7.3% rate |
| r/personalbranding | 30–165 words | ⚠️ Occasional | 7.0% rate |
| r/sales | 10–40 words | ❌ Hurts badly (−90%) | 8.0 vs 76.9 pts; top 700 pts |
| r/b2b_sales | 35–65 words | ⚠️ Neutral | 2.3% rate; 2.0 vs 2.2 pts |
| r/salesdevelopment | 8–20 words | ⚠️ Works for reframing | 10.8% rate; 4.7 vs 5.1 |
| r/LinkedInLunatics | 5–15 words | ❌ Hurts | 31–60 words = 163 avg vs 460.8 for 11–30; top 4,803 pts |
| r/linkedin | 25–130 words | ✅ Rewarded (+143%) | 28.7 vs 11.8 pts; 44-pt feature-question |
| r/LeadGeneration | 45–160 words | ⚠️ Rewarded | 13.8% rate |
| r/marketingagency | 25–60 words | ⚠️ Occasional | 7.6% rate; provocative question = top format |
Note: two templates cite a rule that contradicts the report’s overall “questions hurt” finding — ✅ for r/linkedin and r/aisolobusinesses. These are the two subs where the data genuinely shows questions winning, so the ✅ is correct per the analysis.
2.4 Targeted edits to shared sections (additive only, no removals of substance)
- Universal Writing Rules (3 lines edited): “15-40 words is the universal sweet spot across 20/24 karma-farming subreddits. For ICP subs, follow the per-subreddit template ranges”; added “Business subreddit gets blunt truth or credentialed advice”; added the question-ending warning for r/sales, r/startups, r/Entrepreneur, r/SaaS (−35% to −90%).
- Never Do These (1 line edited): 100-word cap now lists
r/AskReddit and r/B2BSaaSas exceptions (report: B2BSaaS top-3 avg 227.3 words). - Quality Self-Check (2 lines edited): TONE CHECK extended with business subs; QUESTION CHECK extended with the 4 high-volume subs warning.
- Fallback Structures (3 additions):
The Quote-Rebuttal,The Credential-Take,The Meta-Observation— all three are patterns the report identified as top-performing in ICP subs (18%, 14%, 4% of top comments respectively).
2.5 Removed lines (v3-only, all 9 — verified re-present in v4 with edits)
Every v3-only diff line is either the title (V3→V4) or a line that was edited, not deleted: the new versions exist at shifted line numbers. No content was dropped.
3. What Changed (User Prompt)
- Header: V3 → V4; added note that V4 covers both subreddit types and that the JSON schema is identical to V3.
subredditfield description: added"sales", "LinkedInLunatics"examples.- 2 new example inputs added (kept all 3 original examples):
Example Input (ICP Sales Subreddit)— r/sales post about trust in sales.Example Input (ICP LinkedIn Snark Subreddit)— r/LinkedInLunatics cold-DM satire post.
- All “V3” → “V4” references in backend usage, data collection table, and processing logic.
prompt_versionbackend constant:"v3-unified"→"v4-unified".- Version History: new row
v4-unified | 2026-08-07 | ...describing the change.
⚠️ Action needed for A/B testing: the RPA backend must change its prompt_version constant from "v3-unified" to "v4-unified" (and point at the v4 file). This is a backend change, not a prompt change — the prompt itself instructs nothing here; the constant lives in backend code.
4. Quality Assessment
No quality degradation of the old karma-farming behavior
- All 24 old templates byte-preserved.
- All safety machinery (bans, sensitive categories, decision rules, self-check) byte-preserved.
- Old on-topic rows untouched.
- The 4 edited shared sections are strict supersets: old instructions remain, ICP-specific guidance added with data citations.
One risk to flag (judgment call, not a defect)
The “15-40 words universal sweet spot across 20/24 subreddits” line now says “20/24 karma-farming subreddits”. This is accurate, but the model must now route between two regimes (karma-farming vs ICP) based on the subreddit field. The RPA passes that field, and Phase 2 explicitly says “Use the template for the specific subreddit the post is from”, so routing is deterministic via the template list — not free-form. Low risk.
Fabrication check
Spot-verified a high-risk claim in the r/linkedin template — “Insider take (40 pts): ‘I worked at LinkedIn sales. Here’s the truth. Fake companies pay hundreds of thousands of dollars to post fake ads.’” — against consolidated_data.json: exact match, score 40. ✓
Additional numbers spot-checked against the report: r/sales 8.0 vs 76.9 (−90%), r/linkedin 28.7 vs 11.8 (+143%), r/B2BSaaS top-3 avg WC 227.3, r/LinkedInLunatics top comment 4,803. All match. ✓
5. Recommendation
- Use V4 as the single system prompt for the unified RPA. It is a strict superset of V3: identical JSON contract, identical safety logic, identical old templates, plus 25 data-grounded ICP templates.
- Keep V3 files for comparison (they are untouched).
- If anything regresses in practice, the diff is cleanly reversible: V3 is a drop-in replacement. The only behavioral change is that ICP subreddits now get templated comments instead of falling into Fallback Structures.
- Backend change required: update
prompt_versionconstant tov4-unified.
6. Verification Commands Used
# Contract identity
python3 (section extraction + JSON block comparison) → INPUT/OUTPUT JSON identical
# Template presence
for sub in <24 old>; grep -q "r/$sub" v4 → all OK
for sub in <25 new>; grep -q "r/$sub" v4 → all OK
# Shared-section identity
diff of 9 named sections → 5 byte-identical, 4 additive edits
# On-topic guide
diff old rows → unchanged; 25 new ICP rows present
# Fabrication check
python3 json query on consolidated_data.json → r/linkedin 40-pt quote exact match