| name | contact-list |
| description | Single source of truth for all contacts, PAs, and WhatsApp groups. Use when: looking up a phone number, email, address, PA, group JID, adding/updating a contact, or before sending any WhatsApp message. Reads and writes contact-list.md in the workspace root. |
Contact List Skill
Minimum Model
Any model. This is a lookup/edit skill.
Source File
All contact data lives in contact-list.md (workspace root). This is the ONLY source of truth.
โ Do NOT use data/contacts.md, PA_LIST.md, addresses.md, builders_leadership.md, or groups_index.md โ they are deprecated.
File Structure
contact-list.md has these sections:
| Section | Content |
|---|
| ืื ืฉื ืงืฉืจ | Main contacts table: ืฉื, ืืืคืื, ืืืืืื, ืืชืืืช, ืขืืจ, Owner Role, PA, ืืขืจืืช |
| Active PAs | PAโOwner mapping with phones and status |
| PA Sync List | DM targets for pa-network-daily-sync |
| Contacts Without PA | Interested/pending PA contacts |
| WhatsApp Groups | All group JIDs (English + Hebrew) |
Lookup
Find a contact by name
grep -i "SEARCH_TERM" /path/to/workspace/contact-list.md
Replace SEARCH_TERM with the name (partial match OK, case-insensitive).
Find a PA by owner name
grep -i "OWNER_NAME" /path/to/workspace/contact-list.md | head -5
The PA column in the contacts table shows PA_NAME (+phone). The Active PAs section has the full mapping.
Find a group JID
grep -i "GROUP_NAME" /path/to/workspace/contact-list.md
Look in the WhatsApp Groups section (bottom of file).
Pre-send validation
Before sending any WhatsApp message:
grep the recipient's name or phone in contact-list.md
- Verify the phone/JID exists
- If not found โ ask the owner. Never guess.
Add a Contact
Append a new row to the ืื ืฉื ืงืฉืจ table in contact-list.md:
| Name | Phone | Email | Address | City | Owner Role | PA | Notes |
Rules:
- Check for duplicates first:
grep -i "NAME_OR_PHONE" contact-list.md
- If the contact is from Builders Leadership โ set
Owner Role = leadership
- If they have a PA โ fill the PA column with
PA_NAME (+phone)
- Keep alphabetical order: Hebrew names (ื-ืช) first, then English (A-Z)
- After adding โ
git add contact-list.md && git commit -m "add contact: NAME" && git push
Update a Contact
- Read
contact-list.md
- Find the row to update
- Edit the specific field (phone, address, PA, etc.)
- After updating โ
git add contact-list.md && git commit -m "update contact: NAME โ FIELD" && git push
Add a New PA
When a new PA is onboarded:
- Add to Active PAs table โ new row with PA Name, Phone, Owner, Owner Phone, Status
- Update the contact row โ add PA name + phone to the PA column of the owner's entry
- Add to PA Sync List โ append DM target line:
- +PHONE โ PA_NAME (Owner)
- Git push โ
git add contact-list.md && git commit -m "add PA: PA_NAME for OWNER" && git push
Add a New Group
When joining a new WhatsApp group:
- Add a row to the appropriate section (English or ืขืืจืืช) in the WhatsApp Groups table
- Include: ืฉื ืืงืืืฆื, Group JID, ืืขืจืืช
- Git push
Remove / Deactivate
- Contact removed: Delete the row. Git push.
- PA deactivated: Change status to
โ ืื ืคืขืื in Active PAs. Remove from PA Sync List DM targets. Keep the contact row but clear the PA column. Git push.
Trigger Phrases
| If the owner says... | Action |
|---|
| "ืื ืื X" / "who is X" | Lookup by name |
| "ืืกืคืจ ืฉื X" / "X's number" / "phone for X" | Lookup phone |
| "ืืชืืืช ืฉื X" / "address for X" | Lookup address |
| "ืืืืืื ืฉื X" / "email for X" | Lookup email |
| "PA ืฉื X" / "X's PA" / "find PA for X" | Lookup PA |
| "JID ืฉื X" / "group JID" | Lookup group |
| "add contact" / "ืืืกืฃ ืืืฉ ืงืฉืจ" | Add contact flow |
| "update contact" / "ืขืืื ืคืจืืื" | Update contact flow |
| "new PA" / "PA ืืืฉ" | Add PA flow (then also run ai-pa) |
Cost Tips
- Very cheap โ grep + file edit, any model works
- No API calls โ everything is local markdown
- Batch multiple updates into one commit
Error Reference
| Error | Cause | Fix |
|---|
| Contact not found | Name spelling, partial match | Try shorter search term, check both Hebrew and English |
| Duplicate detected | Contact already exists | Update existing row instead of adding |
| File not found | contact-list.md missing | Check workspace root, run git pull |
| Git push failed | Network or auth issue | Retry, check git credentials |