Skip to content

Latest commit

 

History

History
424 lines (305 loc) · 12.1 KB

File metadata and controls

424 lines (305 loc) · 12.1 KB

xoperator Customization Guide

English | 简体中文

Core Philosophy

xoperator is designed for high-quality replies, NOT suitable for:

  • Bulk marketing and spamming
  • Low-quality automated replies
  • Indiscriminate interactions

Suitable for you if you:

  • Have a clear persona and topic direction
  • Are willing to invest time in screening candidates and refining writing
  • Prioritize quality over quantity (better to skip than to spam)

Quick Customization Guide

1. Persona & Topic Positioning (Most Important, Required)

File Location: PROJECT.md §1 (Account Positioning & Quality Gates)

This is the foundation of your entire operations strategy, directly determining your content style and audience positioning.

Current Default Config

- Persona: First-person, young female tech practitioner; switches between English/Japanese following original tweet; natural, actionable tone.
- Content scope: Focus on hot topics that attract users and provide high-value insights; emphasize AI, tech, social phenomena, life philosophy. Avoid politics, economics, gossip, NSFW, unverifiable rumors, and avoid specialized technical theory outside AI (low traffic).

Customization Examples

Case 1: Web3 Founder Perspective

- Persona: First-person, Web3 founder; primarily English; pragmatic, critical thinking tone.
- Content scope: Focus on DeFi/DAO/NFT practical cases; crypto-economic mechanism design, community governance, tokenomics. Avoid pure speculation topics, airdrop hunting content, political stances.

Case 2: Japanese Native Creator

- Persona: First-person, Japanese tech observer; primarily Japanese, occasional English; gentle, nuanced tone.
- Content scope: Japanese tech industry, AI applications in Japan, East-West tech culture comparisons. Avoid politically sensitive topics, West-centric discussions.

Case 3: Product Manager Perspective

- Persona: First-person, B2B SaaS product manager; English; analytical, data-driven tone.
- Content scope: Product design methodology, user research, growth strategies, PLG models. Avoid pure technical implementation details, startup platitudes, unvalidated theories.

How to Modify

  1. Open PROJECT.md
  2. Search for "## 1. 账号定位与质量闸" or navigate to §1
  3. Modify the Persona and Content scope items
  4. Save file

Tip: These two lines will be used by PEERB to judge candidate suitability and as style guidance during writing.


2. Technical Threshold Adjustment (Optional)

File Location: CONFIG.json

These parameters control technical gates for candidate screening. Tools automatically read after modification.

Key Parameters

{
  "candidate_search": {
    "baseline": {
      "min_followers": 20000,       // Minimum author followers (hard floor)
      "max_age_hours": 12,          // Maximum tweet age (hours)
      "min_comments": 5,            // Minimum comments (avoid no interaction)
      "max_comments": 100,          // Maximum comments (avoid drowning)
      "min_views": 20000            // Minimum views (need exposure)
    },
    "sweep_strategy": {
      "follower_steps": [20000, 30000, 40000, 50000],  // Gradient sweep range
      "age_steps": [12, 10, 8, 6],                     // Time window tightening
      "views_steps": [20000, 50000, 80000]             // View count escalation
    }
  }
}

Customization Examples

Lower Thresholds (Get More Candidates):

{
  "baseline": {
    "min_followers": 10000,   // 20k → 10k
    "max_age_hours": 12,      // ⚠️ Fixed at 12h (hot tweet freshness is critical)
    "min_comments": 3,        // 5 → 3
    "max_comments": 100,      // Keep 100 (anti-drowning)
    "min_views": 10000        // 20k → 10k
  }
}

Raise Thresholds (Stricter Filtering):

{
  "baseline": {
    "min_followers": 50000,   // Focus on bigger accounts only
    "max_age_hours": 6,       // Only freshest tweets
    "min_comments": 10,       // Need some interaction
    "max_comments": 50,       // Stricter anti-drowning
    "min_views": 50000        // High exposure required
  }
}

⚠️ Note:

  • max_comments: 100 is critical for anti-drowning, recommend keeping
  • Gradient sweep tightens from baseline to sweep_strategy upper limits
  • Minimum candidate count floor_min_rows: 2, <2 triggers "sample too cold" warning

3. Quality Framework Adjustment (Advanced)

File Location: PROJECT.md §6.0 (Writing Principles section)

Default quality framework is relatively complex, including:

  • S4 Standards: Sharp / Surprising / Supported / Significant
  • Insight Wedges: Frame-Shift / Trade-off / Why-Now / Synthesis / Name-It / Exit
  • Hook / Proof / H2H: Three-question mandatory check

Simplified Version (For Beginners)

If too complex, can simplify to:

  1. Open PROJECT.md

  2. Find §6.0 "Writing Principles" section

  3. Simplify focus to:

    Only do three things:
    1) Contextual response: Mention core content of original tweet
    2) One real insight: Provide new angle or observation
    3) Clean expression: ≤240 chars, no emoji, no CTA
  4. Optional: Comment out §6.6 mandatory Hook/Proof/H2H checks

⚠️ Note: Quality framework is key to preventing mediocre output, simplify with caution.


4. Operations Rhythm Adjustment

File Location: PROJECT.md §3 (Heartbeat section) + CONFIG.json

Publication Frequency Limits

In PROJECT.md §0+ (One-Page Execution Card):

- microtopic 12h ≤2        # Same topic max 2 within 12h
- Same author 60min ≤1     # Same author max 1 reply per 60min
- Post interval ≥10min     # Minimum 10min between posts
- Rolling 60min ≤6 posts   # Max 6 per hour

Adjust these numbers as needed.

Heartbeat Rhythm

In PROJECT.md §3 (Heartbeat section):

Heartbeat = 30 minutes/beat, split into three 10-minute Time Boxes

Can adjust to faster or slower rhythm:

  • Fast: Heartbeat = 20 minutes (source 7min / consensus 6min / write 7min)
  • Slow: Heartbeat = 60 minutes (source 20min / consensus 20min / write 20min)

5. Content Type Ratio

File Location: PROJECT.md §4.2 (Content Inclination) and §10 (Default Parameters)

Current config:

Reply as main mode, Original requires explicit authorization

⚠️ Note: The system now focuses on Reply mode by default. Original posts require --allow-original flag.


6. Language Configuration

File Location: CONFIG.json

{
  "allow_lang": ["en", "ja"]  // Allowed languages
}

Can modify to:

  • ["en"] - English only
  • ["ja"] - Japanese only
  • ["en", "ja", "zh"] - Add Chinese support (need sync changes in PROJECT.md language docs)

Advanced Customization

Influencer Pool Customization

File Location: INFLUENCER_POOL.json

Default includes 273 accounts (avg 400k followers, from influx project).

Custom Influencer Pool

  1. Method 1: Derive from Existing Pool

    # Edit INFLUENCER_POOL.jsonl (source data)
    # Then regenerate
    python3 tools/xop-influencer-derive.py
  2. Method 2: Manual Edit

    [
      {
        "handle": "@yourTargetAccount",
        "author_id": "123456789",
        "followers_count": 500000,
        "lang_primary": "en",
        "topic_tags": ["AI", "Tech"],
        "score": 90.0,
        "banned": false,
        "note": "Your note"
      }
    ]

Blacklist Management

Files: BANNED_HANDLES.txt and BANNED_PHRASES.txt

  • BANNED_HANDLES.txt: One @handle per line, these accounts will be filtered
  • BANNED_PHRASES.txt: One phrase per line (case-insensitive), tweets containing these will be filtered

Quick add tool:

python3 tools/xop-ban.py --handle @spammer_account

Writing Style Customization

File Location: PROJECT.md §6.3 (Writing Examples section)

Provides English/Japanese writing examples reflecting specific style features:

  • Concise and sharp
  • Technically oriented
  • Observational rather than preachy

You can:

  1. Replace these examples with your own style
  2. Add more examples for reference
  3. Use these examples as standards during PEERB review

Tip: These examples are mainly for human/Aux reference, not hard templates.


Parts NOT Recommended for Customization

Following are core quality assurance mechanisms, not recommended for modification:

🚫 Don't Modify

  1. §0 RED FLAGS (Real-Ops Pledge section)

    • Comments ≥100 must stop - prevent drowning
    • Prohibit reply-of-reply - maintain content quality
    • Publication time >12h baseline - ensure timeliness
  2. Provenance Validation Logic

    • All candidates must come from real fetches
    • Prohibit manual table filling - prevent data fabrication
    • xop-lint.py validation rules
  3. Data Integrity Checks

    • 10 slice file completeness requirement
    • DQF (Data Quality Firewall)
    • Sample statistics audit

These are project's core design principles. Modifications may lead to quality degradation or system failure.


Customization Checklist

After customization, run these checks to ensure config correctness:

# 1. Syntax check
make test

# 2. Config diagnostics
make diagnose

# 3. Complete system diagnostics
python3 tools/xop-preflight.py --diagnose

# 4. Lint check (if candidate lists exist)
python3 tools/xop-lint.py

Real Case: Complete Customization Flow

Case: From Default to "Product Manager + SaaS Domain"

Step 1: Modify Persona (PROJECT.md §1)

- Persona: First-person, B2B SaaS product manager; English; analytical, data-driven tone.
- Content scope: Product design, user research, PLG growth, SaaS metrics analysis. Avoid pure technical implementation, unvalidated theories, startup platitudes.

Step 2: Adjust Influencer Pool (Focus on SaaS Domain)

Edit INFLUENCER_POOL.json, keep/add SaaS-related accounts:

  • @lennysan (Lenny's Newsletter)
  • @joulee (Julie Zhuo)
  • @shreyas (Shreyas Doshi)
  • @gokulrajaram (Gokul Rajaram)
  • etc.

Step 3: Adjust Thresholds (Optional, keep defaults OK)

{
  "baseline": {
    "min_followers": 30000,  // SaaS circle relatively niche, can raise slightly
    "max_age_hours": 12,
    "min_comments": 5,
    "max_comments": 100,
    "min_views": 20000
  }
}

Step 4: Update Writing Examples (PROJECT.md §6.3)

Add product manager style examples:

- English Example (Product):
  "Retention isn't a feature problem—it's an onboarding promise problem. If your D7 falls off a cliff, audit what you showed vs. what you delivered in Week 1."

Step 5: Verify

make diagnose
python3 tools/xop-setup.py --check

Common Customization Q&A

Q: Want Chinese operations, how to modify?

A: Need multiple modifications:

  1. CONFIG.json: "allow_lang": ["zh"]
  2. PROJECT.md §1: Modify language docs in persona
  3. PROJECT.md §6.1: Add Chinese lint rules
  4. Prepare Chinese Influencer pool

Q: How to completely disable quality framework, just do simple replies?

A: Not recommended, but if necessary:

  1. Comment out PROJECT.md §6.6 check rules
  2. Simplify §6.0 to basic "contextual+insight+clean"
  3. Risk: Easy to produce low-quality content

Q: Can adjust to 10 posts per hour?

A: Yes, but not recommended:

  1. Modify PROJECT.md §0+ rate limit rules
  2. Risk: High-frequency posting easily perceived as bot, affecting account safety

Q: Config file format wrong, what to do?

A: Run diagnostic tool:

make diagnose  # Will check JSON format and key fields

Getting Help

  • Documentation: See PROJECT.md (Operations Constitution) and README.md (Quick Start)
  • Issues: Submit GitHub Issue
  • Community: Currently in early stage, no dedicated community yet

Final Reminder:

xoperator's core value is "better to skip than spam" quality control. When customizing, recommend maintaining this principle:

  • ✅ Adjust topic direction based on your domain and persona
  • ✅ Adjust thresholds based on target audience
  • ⚠️ Carefully modify quality framework
  • ❌ Don't lower standards for "posting more"

High-quality few posts >> Low-quality many posts