people
GitHub将Apple通讯录同步至Notion,通过多源通信数据计算联系状态与关系强度,提供生日提醒、逾期联络及人脉画像功能,构建个人关系智能系统。
Trigger Scenarios
需要更新或同步联系人信息时
查询某人的详细档案或最后互动记录时
检查即将过生日或需跟进的联系人时
Install
npx skills add Lifecycle-Innovations-Limited/claude-ops --skill people -g -y
SKILL.md
Frontmatter
{
"name": "people",
"description": "Sync Apple Contacts to Notion 'People' database. Track last_contacted, relationship_strength, recent_topics, next_nudge_due. Foundation for relationship intelligence — birthdays, anniversaries, overdue-outreach, news-mention nudges.",
"allowed-tools": [
"Bash",
"Read",
"AskUserQuestion"
]
}
/ops:people
Apple Contacts is source of truth. Notion "People" database is the working layer.
Subcommands
| Subcommand | What it does |
|---|---|
sync (default) |
Pull Apple Contacts via pc contacts fetch, upsert to Notion People DB |
birthdays [--window 7] |
Who has a birthday/anniversary in the next N days |
overdue |
Who's past their relationship-strength cadence and needs reach-out |
whois <name> |
Pull single person's full profile + last interaction across all channels |
bump <name> |
Manually mark "I just talked to X" — resets last_contacted |
Notion People schema (auto-created on first run)
| Property | Type | Source |
|---|---|---|
| name | title | Apple Contacts |
| emails | multi-select | Apple Contacts |
| phones | multi-select | Apple Contacts |
| birthday | date | Apple Contacts (year may be missing) |
| relationship_strength | select: close, active, dormant, professional, family | Heuristic + manual |
| last_contacted | date | Computed from Gmail/Slack/iMessage/WhatsApp |
| last_topic | rich_text | Last 1-line subject from any channel |
| next_nudge_due | date | Computed: last_contacted + cadence_for(strength) |
| brand_context | multi-select: your brand/project codes | Inferred from email domains/threads |
| notes | rich_text | Manual |
Cadences (configurable)
close— 14 days (partner, parents, closest friends)active— 30 days (team, frequent collaborators)professional— 60 days (clients, partners)dormant— 180 days (warm but distant)family— birthday + anniversary + monthly check-in
Sync logic
pc contacts fetch --format json— pull all Apple Contacts- For each contact: upsert into Notion People DB matched by email (primary) or phone
- Walk last 30 days of Gmail/Slack/iMessage/WhatsApp threads to compute
last_contacted - Compute
next_nudge_due = last_contacted + cadence_for(relationship_strength) - Write a ledger entry:
kind=nudge,brand=OPS, status=done
Behavior
- First run will ask owner to confirm
relationship_strengthfor top ~30 contacts - Subsequent runs are silent unless something new is inferred
- Birthdays without years get treated as recurring annual; first detection asks owner to confirm before storing
Ledger writes
~/.claude-ops/bin/ledger claim --claim-key "people:sync:$(date +%F)" --kind nudge \
--brand OPS --title "Apple Contacts → Notion sync" --source claude-ops
# ... sync ...
~/.claude-ops/bin/ledger resolve <id> --status done
Version History
- 64bad13 Current 2026-08-12 09:02


