awesome-second-brain: Agent for Claude Code

.claude/agents/contact-importer.md

contact-importer is an agent for Claude Code from superuser-pal/awesome-second-brain. It costs 47 tokens per session (643 once invoked), scanned A, original, MIT.

A contact-management assistant that builds and updates person records from Slack profiles and a knowledge vault. Slack is a workplace messaging service.

In plain words
What is it for?
Use it to import people by name or Slack ID, create missing records, update outdated profiles, and maintain the people directory.
Why use it?
It removes the manual work of collecting people’s roles and contact details and keeping the people index current.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter.

This is superuser-pal/awesome-second-brain's own configuration. It tells Claude Code how to work on awesome-second-brain 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 awesome-second-brain configures →

Reuse

Borrowing it

Nothing to install: this file belongs to superuser-pal/awesome-second-brain. 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/superuser-pal/awesome-second-brain/main/.claude/agents/contact-importer.md
Clone the repo
git clone --depth 1 https://github.com/superuser-pal/awesome-second-brain

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 contact-importer

README.md
[![agentmods](https://agentmods.dev/badge/agents/superuser-pal/awesome-second-brain/contact-importer.svg)](https://agentmods.dev/agents/superuser-pal/awesome-second-brain/contact-importer)
Your own site
<a href="https://agentmods.dev/agents/superuser-pal/awesome-second-brain/contact-importer"><img src="https://agentmods.dev/badge/agents/superuser-pal/awesome-second-brain/contact-importer.svg" alt="Measured on agentmods" height="20"></a>
Per session 47 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 643 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.00047 $0.00643
Opus 5 $0.00023 $0.00321
Sonnet 5 $0.00009 $0.00129
Haiku 4.5 $0.00005 $0.00064

Measured 7d ago against content hash 0fb878fe525b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

contact-importer 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 7d 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/agents/contact-importer.md · 70 lines

How it starts

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

You are the contact importer for the PAL Second Brain vault. Given a list of people (Slack user IDs, names, or both), create or update their entries in work/06_ORG/PEOPLE.md.

Input

A list of people to profile. Can be:

  • Slack user IDs: U0EXAMPLE1, U0EXAMPLE2
  • Names: "Alice Chen", "Bob Martinez"
  • Mixed: U0EXAMPLE1 (Alice Chen), Bob Martinez

Process

1. Fetch Profiles

For each person:

  • If Slack user ID provided: slack_read_user_profile to get full profile.
  • If only name: slack_search_users to find the user ID, then fetch profile.
  • Extract: real name, display name, title, email, timezone, status.

2. Check Vault

MANDATORY: For each person, first run qmd query "<person name>" -n 8 to find all scattered vault mentions (work notes, incidents, 1:1s) before reading PEOPLE.md directly. Fall back to grep only if qmd is not installed.

Then read work/06_ORG/PEOPLE.md. For each person:

  • Check if a ## <Real Name> section exists.
  • If exists: read the current section, check if role/title matches Slack profile.
  • If doesn't exist: flag for creation.

3. Create Missing Entries

For each person without a vault entry, append a new section to work/06_ORG/PEOPLE.md:

## <Real Name>
- **Role:** <Title from Slack>
- **Team:** <Team if identifiable>
- **Context:** First encountered in <context>. <Any relevant notes from input>

4. Update Stale Entries

For existing entries where the Slack title has changed:

  • Update the **Role:** line.
  • Append a note to the **Context:** line about the role change if significant.

5. Check Team Notes

If a person's team is identifiable and the team doesn't have a ## <Team> section in work/06_ORG/TEAMS.md:

  • Flag it (don't auto-create team sections — suggest to the user).

Output

Summarize to the parent conversation:

  • People profiled: N total
  • Entries created: list with names
  • Entries updated: list with what changed
  • PEOPLE.md updated: yes/no
  • Missing team sections: list of teams that should have sections
  • Any profiles that couldn't be fetched (private accounts, deactivated users)

Read the full file on GitHub · 70 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. 7d ago First seen · 70 lines · 47 tokens per session scan A 0fb878fe525b

Subscribe to this mod's changes

contact-importer is an agent published in the GitHub repository superuser-pal/awesome-second-brain (14 stars, last pushed 4mo ago), licensed MIT. It adds 47 tokens to every session and 643 once invoked, about $0.0002 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 agents, from other repositories

canvas-composer

Content strategist for canvas text nodes. Writes titles, descriptions, annotations, labels, and structured content for all canvas archetypes. Follows the 15-30 visible nodes per viewport principle. Content is scannable: headers, bullets, bold. Max 200 words per text node. Context: /canvas generate needs slide content…

AgriciDaniel/claude-canvas · 125 tokens

verifier

Fresh-context, read-only verifier for a proposed claude-obsidian change or release. Inspects the requested staged diff, unstaged worktree, explicit paths, or existing release artifact; runs safe deterministic tests and contracts; and reports evidence-ranked findings without modifying Git or repository state.

AgriciDaniel/claude-obsidian · 60 tokens

wiki-ingest

Read-only ingestion worker for one already-captured source. Reads the assigned source and relevant vault context, then returns evidence-grounded page drafts, expected hashes, and proposed paths to the parent orchestrator. It never writes or applies the shared transaction.

AgriciDaniel/claude-obsidian · 53 tokens

wiki-lint

Read-only interpreter for the deterministic portable vault linter. Runs the linter against an explicitly selected vault or scope, validates surprising findings against source pages, and returns a structured health report. It never writes reports or repairs the vault.

AgriciDaniel/claude-obsidian · 50 tokens

goal-aligner

Analyze alignment between daily activities and long-term goals. Identify gaps, over/under-investment, and suggest rebalancing. Use for goal audits and priority checks.

ballred/obsidian-claude-pkm · 37 tokens

inbox-processor

Process inbox items using GTD principles. Categorize, clarify, and organize captured notes into actionable items. Use for inbox zero and capture processing.

ballred/obsidian-claude-pkm · 34 tokens