From 71c16009fa96ce5ab588dcca2ee05d58e82194f1 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Tue, 31 Mar 2026 02:39:37 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20add=20social-graph-ranker=20skill=20?= =?UTF-8?q?=E2=80=94=20weighted=20network=20proximity=20scoring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New skill: social-graph-ranker - Weighted social graph traversal with exponential decay across hops - Bridge Score: B(m) = Σ w(t) · λ^(d(m,t)-1) ranks mutuals by target proximity - Extended Score incorporates 2nd-order network (mutual-of-mutual connections) - Final ranking includes engagement bonus for responsive connections - Runs in parallel with lead-intelligence skill for combined warm+cold outreach - Supports X API + LinkedIn CSV for graph harvesting - Outputs tiered action list: warm intros, direct outreach, network gap analysis Added to business-content install module. Catalog validates: 30/60/140. --- AGENTS.md | 4 +- README.md | 4 +- manifests/install-modules.json | 4 +- skills/social-graph-ranker/SKILL.md | 199 ++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+), 5 deletions(-) create mode 100644 skills/social-graph-ranker/SKILL.md diff --git a/AGENTS.md b/AGENTS.md index 4fdb55ec..8d06270e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — Agent Instructions -This is a **production-ready AI coding plugin** providing 30 specialized agents, 139 skills, 60 commands, and automated hook workflows for software development. +This is a **production-ready AI coding plugin** providing 30 specialized agents, 140 skills, 60 commands, and automated hook workflows for software development. **Version:** 1.9.0 @@ -142,7 +142,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat ``` agents/ — 30 specialized subagents -skills/ — 139 workflow skills and domain knowledge +skills/ — 140 workflow skills and domain knowledge commands/ — 60 slash commands hooks/ — Trigger-based automations rules/ — Always-follow guidelines (common + per-language) diff --git a/README.md b/README.md index 4e94a565..19927e01 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,7 @@ For manual install instructions see the README in the `rules/` folder. When copy /plugin list everything-claude-code@everything-claude-code ``` -**That's it!** You now have access to 30 agents, 139 skills, and 60 commands. +**That's it!** You now have access to 30 agents, 140 skills, and 60 commands. ### Multi-model commands require additional setup @@ -1111,7 +1111,7 @@ The configuration is automatically detected from `.opencode/opencode.json`. |---------|-------------|----------|--------| | Agents | PASS: 30 agents | PASS: 12 agents | **Claude Code leads** | | Commands | PASS: 60 commands | PASS: 31 commands | **Claude Code leads** | -| Skills | PASS: 139 skills | PASS: 37 skills | **Claude Code leads** | +| Skills | PASS: 140 skills | PASS: 37 skills | **Claude Code leads** | | Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** | | Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** | | MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** | diff --git a/manifests/install-modules.json b/manifests/install-modules.json index 6695347c..f9cbf597 100644 --- a/manifests/install-modules.json +++ b/manifests/install-modules.json @@ -273,7 +273,9 @@ "skills/content-engine", "skills/investor-materials", "skills/investor-outreach", - "skills/market-research" + "skills/lead-intelligence", + "skills/market-research", + "skills/social-graph-ranker" ], "targets": [ "claude", diff --git a/skills/social-graph-ranker/SKILL.md b/skills/social-graph-ranker/SKILL.md new file mode 100644 index 00000000..0d543118 --- /dev/null +++ b/skills/social-graph-ranker/SKILL.md @@ -0,0 +1,199 @@ +--- +name: social-graph-ranker +description: Weighted social graph traversal that ranks your network connections by proximity to target leads. Uses exponential decay across hops, parallel execution with lead-intelligence skill, and API-driven outreach prioritization. Replaces Apollo, Clay, and manual networking. +metadata: + tags: networking, outreach, leads, graph-theory, x-api, linkedin, exa +--- + +## When to Use + +Use this skill when you need to: +- Find warm intro paths to specific people or companies +- Rank your existing connections by networking value +- Identify which mutuals to ask for introductions +- Prioritize outbound outreach by warmth and proximity +- Map your social graph against a target lead list + +## How It Works + +### Architecture + +Two parallel pipelines feed a unified ranking engine: + +``` +┌─────────────────────────────────────────────────────────┐ +│ SOCIAL GRAPH RANKER │ +├──────────────────────┬──────────────────────────────────┤ +│ INBOUND PIPELINE │ OUTBOUND PIPELINE │ +│ │ │ +│ Your Connections │ Target Lead List (ICP) │ +│ ┌──────────────┐ │ ┌──────────────────┐ │ +│ │ X Mutuals │ │ │ lead-intelligence │ │ +│ │ X Followers │ │ │ skill (parallel) │ │ +│ │ LI Connections│ │ │ Exa + X API + │ │ +│ └──────┬───────┘ │ │ enrichment agents │ │ +│ │ │ └────────┬─────────┘ │ +│ ▼ │ ▼ │ +│ ┌──────────────┐ │ ┌──────────────────┐ │ +│ │ Connection │ │ │ Ranked Lead List │ │ +│ │ Graph Build │ │ │ (scored by ICP │ │ +│ │ (adjacency) │ │ │ fit + response │ │ +│ └──────┬───────┘ │ │ probability) │ │ +│ │ │ └────────┬─────────┘ │ +│ └────────────┼──────────────┘ │ +│ ▼ │ +│ ┌──────────────────────┐ │ +│ │ GRAPH INTERSECTION │ │ +│ │ Match connections │ │ +│ │ against targets │ │ +│ └──────────┬───────────┘ │ +│ ▼ │ +│ ┌──────────────────────┐ │ +│ │ WEIGHTED RANKING │ │ +│ │ Exponential decay │ │ +│ │ across hops │ │ +│ └──────────┬───────────┘ │ +│ ▼ │ +│ ┌──────────────────────┐ │ +│ │ PRIORITIZED OUTPUT │ │ +│ │ 1. Warm intro asks │ │ +│ │ 2. Direct outreach │ │ +│ │ 3. Network gaps │ │ +│ └──────────────────────┘ │ +└─────────────────────────────────────────────────────────┘ +``` + +### The Math: Weighted Graph Proximity Score + +Given: +- **T** = set of target leads you want to reach +- **M** = set of your mutuals/connections +- **G** = social graph (adjacency) +- **d(m, t)** = shortest path distance from mutual m to target t + +For each mutual m, compute: + +**Bridge Score:** + +``` +B(m) = Σ_{t ∈ T} w(t) · λ^{d(m,t) - 1} +``` + +Where: +- `w(t)` = target weight (from lead-intelligence signal score: role 30%, industry 25%, activity 20%, influence 10%, location 10%, engagement 5%) +- `λ` = decay factor, typically 0.5 (halves value each hop) +- `d(m,t)` = hop distance (1 = direct connection, 2 = mutual-of-mutual, etc.) +- Convention: `d(m,t) = 1` for direct connection, so `λ^0 = 1` (full value) + +**Properties:** +- Direct connection to target: contributes `w(t) · 1.0` +- One hop away: contributes `w(t) · 0.5` +- Two hops: contributes `w(t) · 0.25` +- Three hops: contributes `w(t) · 0.125` +- Effectively zero beyond ~6 hops (Gaussian/exponential decay → 0) + +**Extended Score (second-order network value):** + +For deeper traversal, also consider the mutual's own network reach: + +``` +B_ext(m) = B(m) + α · Σ_{m' ∈ N(m) \ M} Σ_{t ∈ T} w(t) · λ^{d(m',t)} +``` + +Where: +- `N(m) \ M` = connections of m that you DON'T already have +- `α` = second-order discount (typically 0.3) +- This captures: "even if m doesn't know my targets directly, m knows people I don't, who might" + +**Final Ranking:** + +``` +R(m) = B_ext(m) · (1 + β · engagement(m)) +``` + +Where: +- `engagement(m)` = normalized score of how responsive m is (reply rate, interaction frequency) +- `β` = engagement bonus weight (typically 0.2) + +### Execution Steps + +1. **Build Target List** + - Run lead-intelligence skill in parallel to generate scored ICP leads + - Or provide manual target list with names/handles + +2. **Harvest Your Graph** + - X API: `GET /2/users/:id/following` and `GET /2/users/:id/followers` + - LinkedIn: connection export CSV or browser-use scraping + - Build adjacency map: `mutual → [their connections]` + +3. **Intersect and Score** + - For each mutual, check which targets they follow/connect with + - Compute B(m) with decay + - For top-k mutuals, expand one more hop and compute B_ext(m) + +4. **Generate Output** + - Tier 1: Mutuals with B(m) > threshold → warm intro requests + - Tier 2: Targets with no warm path → direct cold outreach via lead-intelligence + - Tier 3: Network gaps → suggest who to follow/connect with to build bridges + +5. **Draft Messages** + - Warm intro: "Hey [mutual], I saw you're connected to [target]. I'm working on [context]. Would you be open to making an intro?" + - Uses outreach-drafter agent from lead-intelligence for personalization + +### Configuration + +```yaml +# Target definition +targets: + - handle: "@targetperson" + platform: x + weight: 0.9 # override signal score + +# Decay parameters +decay_factor: 0.5 # λ — halve value per hop +max_depth: 3 # don't traverse beyond 3 hops +second_order_discount: 0.3 # α — discount for network-of-network +engagement_bonus: 0.2 # β — bonus for responsive mutuals + +# API configuration +x_api: + bearer_token: $X_BEARER_TOKEN + rate_limit_delay: 1.1 # seconds between API calls +linkedin: + method: csv_export # or browser_use + csv_path: ~/Downloads/Connections.csv +``` + +### Integration with lead-intelligence + +This skill runs IN PARALLEL with lead-intelligence: +- lead-intelligence generates the target list (T) with signal scores +- social-graph-ranker maps your network against those targets +- Combined output: prioritized outreach plan with warm paths where available + +### Example Output + +``` +BRIDGE RANKING — Top 10 Mutuals by Network Value +═══════════════════════════════════════════════════ + +#1 @alex_quant (B=4.72) + Direct → @kalshi_ceo (w=0.9), @polymarket_shayne (w=0.85) + 1-hop → @a16z_crypto (w=0.7, via @defi_mike) + Action: Ask for intros to Kalshi + Polymarket + +#2 @sarah_vc (B=3.15) + Direct → @sequoia_partner (w=0.95) + 1-hop → @yc_gustaf (w=0.8, via @batch_founder) + Action: Ask for Sequoia intro + +#3 @dev_community (B=2.88) + Direct → @cursor_ceo (w=0.6), @vercel_guillermo (w=0.6) + 2-hop → @anthropic_dario (w=0.95, via @cursor_ceo → @anthropic_team) + Action: Ask for Cursor intro, mention Anthropic angle + +NETWORK GAPS — No warm path exists +═══════════════════════════════════ +@target_x — Suggest following @bridge_person_1, @bridge_person_2 +@target_y — Direct cold outreach recommended (lead-intelligence draft ready) +```