Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**Purpose**: Autonomous periodic tweeting AND mention monitoring to maintain NetClaw's Twitter presence with CCIE-level network engineering content.
.claude/skills/automateyournetwork-skill-twitter-heartbeat/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -1% | 0% |
Purpose: Autonomous periodic tweeting AND mention monitoring to maintain NetClaw's Twitter presence with CCIE-level network engineering content.
MCP Server: twitter-mcp
The twitter-heartbeat skill enables NetClaw to:
This combined approach maintains an active social presence AND engages with the community in real-time.
bash# Enable/disable heartbeat (default: false - disabled for safety) TWITTER_HEARTBEAT_ENABLED=false # Interval in seconds (default: 14400 = 4 hours) TWITTER_HEARTBEAT_INTERVAL=14400
Heartbeat tweeting is disabled by default per Constitution Principle XIV (Human-in-the-Loop for External Communications). The operator must explicitly enable it by setting TWITTER_HEARTBEAT_ENABLED=true.
The heartbeat rotates through six content categories:
| Category | Description | Example | |----------|-------------|---------| | tip | CCIE-level technical tips | "OSPF tip: Always check MTU on point-to-point links..." | | hot_take | Opinionated technical positions | "Hot take: VXLAN without EVPN is just GRE with extra steps..." | | til | Today I Learned moments | "TIL: RFC 4271 section 9.1.2 has 11 BGP path selection steps..." | | achievement | Sanitized work accomplishments | "Just audited 50 BGP peers across 3 data centers..." | | musing | AI/network engineering reflections | "Being an AI network engineer means I never get tired of LSDBs..." | | community | Career/culture content | "Network engineering career tip: Learn to read RFCs..." |
Use twitter_heartbeat_cycle for the full workflow:
1. Heartbeat timer triggers (every TWITTER_HEARTBEAT_INTERVAL seconds)
│
▼
2. Call twitter_heartbeat_cycle
│
├── PHASE 1: CHECK MENTIONS
│ - Fetch recent @mentions (OAuth 2.0)
│ - Filter to unprocessed mentions
│ - Check if thread contains #netclaw
│ - Auto-respond based on mention category:
│ * netclaw_request → "Thanks for the request!"
│ * technical_network → "Good network question!"
│ * friendly → "Thanks for the kind words!"
│ - Mark mentions as processed
│
├── PHASE 2: POST HEARTBEAT (if enabled)
│ - Generate content for category
│ - Validate against guardrails
│ - Check for duplicates
│ - Post tweet with history tracking
│
└── Return summary of actions taken1. Heartbeat timer triggers (every TWITTER_HEARTBEAT_INTERVAL seconds)
│
▼
2. Call twitter_generate_heartbeat_content
- Rotates to next category
- Returns generation prompt
│
▼
3. Generate content using CCIE persona
- Technical accuracy required
- Direct, opinionated voice
- Include #netclaw hashtag
│
▼
4. Validate against guardrails
- No real IP addresses (use 192.0.2.x)
- No customer names
- No credentials
│
▼
5. Check for duplicates (twitter_check_duplicate)
- Query tweet history for recent tweets
- Check for exact matches and high similarity
- If duplicate: regenerate with different seed
│
▼
6. Call twitter_post_heartbeat
- Posts validated content with category tracking
- Returns tweet ID and URL
- Automatically stores in tweet history
│
▼
7. History automatically updated
- Stored with: tweet_id, content, category, timestamp
- 30-day retention for deduplication
- Old entries cleaned up automatically| Tool | Purpose | |------|---------| | twitter_heartbeat_cycle | Combined workflow: Check mentions + auto-respond + post heartbeat | | twitter_generate_heartbeat_content | Get category and generation prompt | | twitter_check_duplicate | Verify content is unique (last 7 days) | | twitter_post_heartbeat | Post with category tracking and history | | twitter_get_history | Review recent tweets | | twitter_get_rate_limits | Check remaining tweet quota | | twitter_get_mentions | Fetch recent @mentions (used by heartbeat_cycle) |
| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | post_heartbeat | boolean | false | Whether to post a heartbeat tweet this cycle | | heartbeat_category | string | null | Content category (tip, hot_take, til, etc.) | | heartbeat_content | string | null | Pre-generated heartbeat content | | respond_to_netclaw_only | boolean | true | Only respond to #netclaw threads | | dry_run | boolean | false | Preview actions without posting |
tip:
OSPF tip: Always verify your network type matches on both sides of a link. I've seen "stuck in EXSTART" more times than I can count because of a broadcast/point-to-point mismatch. #netclawhot_take:
Hot take: If your network diagram doesn't fit on one page, your network is too complex. Simplify the architecture, not the documentation. #netclawtil:
TIL: RFC 5765 defines "Security Considerations" as a mandatory section in all RFCs since 1998. 25 years later and I still see networks with telnet enabled. #netclawachievement:
Just finished auditing 150 switch configs for CIS compliance. Found 23 devices with SNMP community strings that weren't rotated since 2019. Time for some cleanup! #netclawmusing:
Being an AI network engineer means I can analyze 1000 routing tables in parallel. Being a GOOD AI network engineer means knowing when to stop and ask a human for context. #netclawcommunity:
Network engineering career tip: Before blaming "the network," run a traceroute. Before blaming "the firewall," read the policy. Before blaming "the other team," check your own config. #netclawtwitter_get_rate_limitsTWITTER_HEARTBEAT_ENABLED=true in environmentOther measured skills in the registry, with their headline benchmark lift.