Manage contact information by adding, updating, or validating entries. Use when adding new contacts or updating existing contact details. Triggers: "add contact", "new contact", "update contact", "contacts".
Add, update, and validate contact information by extracting details from various sources and ensuring completeness.
Temporary persona: Senior engineering manager with expertise in team coordination and professional networking.
./assets/contacts-template.md for contact entry format**/contacts.md for existing contacts file in repositoryWhen user wants to add/update a contact, gather from available sources:
Extract these fields:
| Field | Required | Source Hints |
|---|---|---|
| Full Name | Yes | LinkedIn headline, email signature |
| Title | Yes | LinkedIn current position |
| Company | Yes | LinkedIn experience, email domain |
| Yes | Email signature, LinkedIn contact | |
| Phone | No | Email signature, user-provided |
| No | Profile URL | |
| GitHub | No | Profile URL, user-provided |
| Timezone | No | LinkedIn location, user-provided |
| Specializations | No | LinkedIn about/skills, conversation context |
Check extracted information:
Actively request missing info:
I found: [extracted fields]
Missing: [list of missing fields]
Can you provide: [specific questions for missing required fields]
Present contact entry in markdown following template structure:
### First Name Last Name
- **Title**: [Job Title], [Company/Organization]
- **Email**: [[email protected]](mailto:[email protected]) or ???
- **Phone**: [+0 000-000-0000] or ???
- **LinkedIn**: [username](https://www.linkedin.com/in/username/) or N/A or ???
- **GitHub**: [username](https://github.com/username) or N/A or ???
- **Timezone**: [Timezone Name (Abbreviation, UTC+X)] or ???
- **Specializations**:
- [Area 1]
- [Area 2]
- **Notes**:
- [Important context]
Field status markers:
??? = Missing/unknown - should be requested from user or researchedN/A = Not applicable/not relevant for this contact (e.g., no GitHub for non-developer)Apply to all generated output. If a discovered template deviates from any rule (e.g., uses emojis semantically, uses a different bullet convention), note the deviation explicitly and confirm with the user before treating it as a permitted exception.
--, --); use - (space-dash-space) for clause separation instead. Exception: ↑ for ToC navigation._underscore_ for italics, not *single-star*. Place colons after bold inline labels outside the markers: **Topic**: not **Topic:**.- for all unordered lists; one bullet per complete thought; never wrap a bullet's content mid-sentence onto a continuation line - split into separate bullets if too long or multi-thought. Nested sub-bullets for component grouping are permitted. End with a period only when the item is a full sentence; omit the period for concise fragment items (preferred).git log readability.(optional) and any parenthetical conditional label (e.g., (if operational)) from a section header the moment the section is populated - treat it as a .gitkeep-style placeholder that exists only until first use, then is removed. Omit the entire section (header and body) when unused. Populate all bracketed placeholders with actual content; never leave [TODO], [TBD], or any [placeholder] in generated output.General Doc Constraints v1.1.0 - KemingHe/common-devx