Triggers on "contact database", "contact list", "CRM list", "base de contactos", "lista de contactos". Structured contact/CRM list builder with records for name, company, role, email, phone, LinkedIn, notes, last contact date, and status. Output: CSV template + optional branded HTML contact cards. [EXPLICIT]
From jm-adknpx claudepluginhub javimontano/jm-adk-alfaThis skill is limited to using the following tools:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Builds structured contact databases from user-provided data or blank templates. Produces a clean CSV file with standardized fields (name, company, role, email, phone, LinkedIn, notes, last contact date, status) and optionally generates branded HTML contact cards for visual review. Supports bulk import structuring, deduplication guidance, and segmentation by status or category.
client-dossier), lead generation research (use lead-generation), or stakeholder mapping exercises (use stakeholder-mapping).Every contact record contains these standardized fields:
| Field | Type | Required | Validation |
|---|---|---|---|
id | Auto-increment integer | Yes | Unique, sequential |
first_name | Text | Yes | Trimmed, title-case |
last_name | Text | Yes | Trimmed, title-case |
company | Text | Yes | Standardized company name |
role | Text | No | Job title or function |
email | No | RFC 5322 format validation | |
phone | Text | No | E.164 format preferred (+CC NNNN) |
linkedin | URL | No | Must start with linkedin.com/in/ |
category | Enum | Yes | CLIENT, PROSPECT, PARTNER, VENDOR, INTERNAL, OTHER |
status | Enum | Yes | ACTIVE, INACTIVE, NURTURING, CLOSED, DO_NOT_CONTACT |
notes | Text | No | Free-form, max 500 chars in CSV |
last_contact_date | Date | No | ISO 8601 (YYYY-MM-DD) |
next_action | Text | No | Brief description of follow-up |
next_action_date | Date | No | ISO 8601 (YYYY-MM-DD) |
source | Text | No | How contact was acquired |
created_at | Datetime | Yes | ISO 8601, auto-populated |
Users may request additional columns:
secondary_email: backup email address.company_size: S/M/L/Enterprise enum.industry: free-text or NAICS code.timezone: IANA timezone identifier.preferred_language: ISO 639-1 code (es, en, pt).deal_value: numeric, currency amount of associated opportunity.tags: comma-separated labels for flexible grouping.The primary output is a UTF-8 CSV file with BOM marker for Excel compatibility:
\xEF\xBB\xBF prefix).,), with proper escaping for fields containing commas.YYYY-MM-DD) for universal parsing.""), never NULL.\r\n) for cross-platform compatibility.contacts-{context}-{YYYY-MM-DD}.csv.When the user requests visual output, generate HTML contact cards:
#0a0a0a background, #e94560 accents, #eaeaea text).When processing existing contact data:
INCOMPLETE.| Decision | Option A | Option B | Default |
|---|---|---|---|
| Output format | CSV only | CSV + HTML cards | CSV only (HTML on request) |
| Encoding | UTF-8 no BOM | UTF-8 with BOM | UTF-8 with BOM (Excel compat) |
| Dedup behavior | Auto-merge duplicates | Flag for user review | Flag for review (safer) |
| Phone format | Local format | E.164 international | E.164 international |
| Status vocabulary | Custom user-defined | Fixed enum | Fixed enum (consistency) |
| Extended fields | Always include all | Only on request | Only on request (lean CSV) |
next_action_date is informational only.[EXAMPLE] in notes field, then instruct user to delete examples.DO_NOT_CONTACT, clear optional fields (phone, notes), preserve minimum identification data.Input: "Create a contact database for my 5 key clients:
- Maria Lopez, CTO at TechCo, maria@techco.com, +57 310 555 1234
- James Park, CEO at InnovateLabs, james@innovate.co
- Sofia Restrepo, PM at DataFlow, sofia.r@dataflow.io, last spoke March 10"
Output:
1. CSV file (contacts-clients-2026-03-27.csv) with:
- 3 complete records, properly normalized
- Missing fields marked as empty (not fabricated)
- last_contact_date: 2026-03-10 for Sofia
- status: ACTIVE for all (default for key clients)
- category: CLIENT for all
2. Note: "You mentioned 5 clients but provided 3. Ready to add the remaining 2."
Output that:
- Invents email addresses for contacts where none was provided
- Uses inconsistent date formats (03/10/2026 mixed with 2026-03-10)
- Creates a markdown table instead of proper CSV
- Omits the header row in the CSV
- Stores phone numbers with parentheses and dashes inconsistently
- Ignores the "5 key clients" count discrepancy
Before delivering the contact database, verify:
YYYY-MM-DD) throughout.| File | Purpose |
|---|---|
references/csv-spec.md | CSV formatting rules, encoding, delimiter standards |
references/field-validation.md | Regex patterns for email, phone, URL validation |
references/brand-tokens.md | JM Labs color palette and typography for HTML cards |
references/data-privacy.md | GDPR and Habeas Data compliance notes for contact storage |