compabob: Skill for Claude Code

.claude/skills/merge-contacts/SKILL.md

merge-contacts is a skill for Claude Code from chacosoldier/compabob. It costs 57 tokens per session (591 once invoked), scanned A, original, MIT.

A local tool that combines contact exports from Google Takeout, LinkedIn, and personal notes into one contact database. It also removes duplicate contact records.

In plain words
What is it for?
Use it to build or refresh a local CRM, merge contact exports, and deduplicate people from Google, LinkedIn, and vault notes.
Why use it?
It gives you one local source of contact information instead of several separate exports. This makes it easier to find complete records without relying on an external CRM.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is chacosoldier/compabob's own configuration. It tells Claude Code how to work on compabob itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything compabob configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 modules/crm-merge/build.py \.

Reuse

Borrowing it

Nothing to install: this file belongs to chacosoldier/compabob. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/chacosoldier/compabob/main/.claude/skills/merge-contacts/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/chacosoldier/compabob

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for merge-contacts

README.md
[![agentmods](https://agentmods.dev/badge/skills/chacosoldier/compabob/merge-contacts/github.svg)](https://agentmods.dev/skills/chacosoldier/compabob/merge-contacts)
Your own site
<a href="https://agentmods.dev/skills/chacosoldier/compabob/merge-contacts"><img src="https://agentmods.dev/badge/skills/chacosoldier/compabob/merge-contacts/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for merge-contacts

Your own site · 80×15
<a href="https://agentmods.dev/skills/chacosoldier/compabob/merge-contacts"><img src="https://agentmods.dev/badge/skills/chacosoldier/compabob/merge-contacts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 57 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 591 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00057 $0.00591
Opus 5 $0.00028 $0.00296
Sonnet 5 $0.00011 $0.00118
Haiku 4.5 $0.00006 $0.00059

Measured 9d ago against content hash 8ad8dfd92054, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

merge-contacts scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/merge-contacts/SKILL.md · 51 lines

How it starts

The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Merge Contacts

Build the user's local CRM source of truth with the crm-merge module. The module does the work; your job is to find their exports, run it with the right flags, and report what merged. Never invent data, never call an external CRM.

Steps

  1. Find the exports. Check, in order:

    • A Google Takeout zip in ~/Downloads (name contains "takeout" or "google"). The script auto-finds the newest one, but confirm it exists.
    • A LinkedIn export folder (contains Connections.csv, ideally messages.csv). Ask the user for the path if you cannot find it.
    • vault/People/ for per-person notes (optional). If none exist, point the user at the setup steps in modules/crm-merge/README.md (both exports are self-service downloads) and stop.
  2. Get their name for message-frequency counting. Ask how their name appears in LinkedIn messages (the "me" side), or read it from config/user.config.yaml.

  3. Run the build:

    python3 modules/crm-merge/build.py \
      --takeout-zip <path-or-omit-to-autofind> \
      --linkedin-dir <folder> \
      --me "<their name>" \
      --out data/crm-merge
    

    Omit any source they do not have; one source alone is fine.

  4. Report the counts the script prints: total unique people, how many appear in 2+ sources (the high-confidence merges), and how many link to a vault note. Flag if a source loaded zero records, since that usually means a wrong path.

  5. Point them onward. Tell them data/crm-merge/browser.html is openable in any browser, and that contacts.json is what /build-list dedups against.

Watch out for

  • Over-merging on a common name: if the user says distinct people got fused, lower --name-collision-threshold and re-run.
  • Zero LinkedIn messages counted: the --me name probably does not match the export. Check the FROM/TO values in messages.csv and pass the exact form.
  • Privacy: outputs are git-ignored; do not commit them or paste contact data into anything outward-facing.

Read the full file on GitHub · 51 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 51 lines · 57 tokens per session scan A 8ad8dfd92054

Subscribe to this mod's changes

merge-contacts is a skill published in the GitHub repository chacosoldier/compabob (32 stars, last pushed 2mo ago), licensed MIT. It adds 57 tokens to every session and 591 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

sql-queries

Write correct, performant SQL across all major data warehouse dialects (Snowflake, BigQuery, Databricks, PostgreSQL, etc.). Use when writing queries, optimizing slow SQL, translating between dialects, or building complex analytical queries with CTEs, window functions, or aggregations.

clawpod-app/awesome-openclaw-agent-packs · 63 tokens

write-query

Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.

clawpod-app/awesome-openclaw-agent-packs · 64 tokens

AgentDB Performance Optimization

Optimize AgentDB performance with quantization (4-32x memory reduction), HNSW indexing (150x faster search), caching, and batch operations. Use when optimizing memory usage, improving search speed, or scaling to millions of vectors.

airmcp-com/mcp-standards · 53 tokens

ha-data-stores

Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…

shiwenwen/hope-agent · 115 tokens

security-compliance

Guides security professionals in implementing defense-in-depth security architectures, achieving compliance with industry frameworks (SOC2, ISO27001, GDPR, HIPAA), conducting threat modeling and risk assessments, managing security operations and incident response, and embedding security throughout the SDLC.

sangrokjung/claude-forge · 56 tokens

stride-analysis-patterns

Apply STRIDE methodology to systematically identify threats. Use when analyzing system security, conducting threat modeling sessions, or creating security documentation.

sangrokjung/claude-forge · 30 tokens