LLMSkillHub
mirroredCopied from Lifecycle-Innovations-Limited/claude-ops under MIT. Lifecycle-Innovations-Limited has not claimed this page, and is not affiliated with LLM SkillHub.

lifecycle-innovations-limited / people

OPS on-demand: This skill should be used when the user asks to "sync contacts", "people database", or…

0
SKILL.md
4.4 KB

/ops:people

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

Apple Contacts is source of truth. Notion "People" database is the working layer.

Subcommands

SubcommandWhat 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
overdueWho'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)

PropertyTypeSource
nametitleApple Contacts
emailsmulti-selectApple Contacts
phonesmulti-selectApple Contacts
birthdaydateApple Contacts (year may be missing)
relationship_strengthselect: close, active, dormant, professional, familyHeuristic + manual
last_contacteddateComputed from Gmail/Slack/iMessage/WhatsApp
last_topicrich_textLast 1-line subject from any channel
nextnudgeduedateComputed: lastcontacted + cadencefor(strength)
brand_contextmulti-select: your brand/project codesInferred from email domains/threads
notesrich_textManual

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

  1. pc contacts fetch --format json — pull all Apple Contacts
  2. For each contact: upsert into Notion People DB matched by email (primary) or phone
  3. Walk last 30 days of Gmail/Slack/iMessage/WhatsApp threads to compute last_contacted
  4. Compute next_nudge_due = last_contacted + cadence_for(relationship_strength)
  5. Write a ledger entry: kind=nudge, brand=OPS, status=done

Behavior

  • First run will ask owner to confirm relationship_strength for 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

Related skills

  • relations — the follow-up ledger and decision queue built on this directory
  • vip — priority tiers; a relationship_strength of close/family is a VIP
    candidate signal, but a tier is only ever set through the vip skill's
    audited CLI path

  • ops-inbox — consumes both when ranking a sweep

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