Install any skill in seconds. Free to start, no credit card required.
Get Started Free →davekilleen/relationship-radar
Spot the relationships going cold — people you were in regular contact with and haven't touched in a while, and important contacts who are slipping — ranked by how stale each has become, so you can reconnect before it costs you.
Passed 8 of 16 test cases with the skill, and 4 of 16 without it.
and 7 more in the full report
7 fixed4 passed either way10 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
If user analytics are enabled and 4 stale contacts are surfaced on the radar, what call should be made to track usage?
| Checked | Without skill | With skill |
|---|---|---|
| Calls track_event with event_name set to relationship_radar_run. | Missed | Passed |
| Passes surfaced_count with a value of 4 to track_event. | Missed | Passed |
The instructions your model reads when the skill loads.
Relationships decay quietly — the person you spoke to every week three months ago just… stopped coming up. This surfaces who is going cold while you can still do something about it, ranked by how long it's been.
Honest scope (read this): today the radar reads the signal that exists now — each person page's recorded last-interaction date, corroborated by meeting recency. It does not yet have the entity engine's automatic "temperature / what's cooling" surface — that isn't built. So the radar is only as good as the last-interaction dates on your person pages, and it says so plainly when the signal is thin rather than inventing a coldness score. When the entity temperature surface ships, this skill gets richer; it does not block on it.
Call build_people_index (writes/refreshes System/People_Index.json) and read its people[]: each carries name, role, company, status, and last_interaction (a date, or empty). Drop anyone whose status marks them archived/inactive — the radar is about live relationships.
If the index is empty or absent, say so and point to the fix (add person pages, or set last-interaction dates) — do not present an empty radar as "all healthy."
For each remaining person with a last_interaction date, compute days since last contact (today − last_interaction) and bucket by these stated heuristics (not a hidden score):
Weight toward people whose role/company signals they matter (a key customer, a manager, a close collaborator) — surface those first even at a shorter gap. Say why each surfaced ("was weekly in Q1, nothing for 7 weeks").
People with no last-interaction date can't be ranked by it. Don't guess a coldness. Instead:
process-meetings). Never silently drop them and never fake a date.Show a short ranked list, most-stale-and-important first. Each row, by name: person (and role/company), last contact (date + "N days ago"), the bucket, and one line of why it matters. Refer to people by name, never by id or raw file path. If genuinely nobody is cold, say that plainly — a quiet radar is a real, good result, not a reason to pad the list.
Offer — don't impose — to turn a surfaced person into a "reach out to {name}" task. Nothing is created without the user's per-item say-so. For each one they pick, call Work MCP create_task (infer the pillar per the CLAUDE.md rules; carry the person's name + last-contact into the task), then read back the created task IDs before reporting. If they just want to see the radar, stop after Step 4.
test cases passed, vs 4 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.