用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tzeusy/butlers --skill reconnect-planner命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Guide for discovering, analyzing, and pruning the Butlers test suite. Use when working on test condensation beads (Phase 1 epic bu-rhztl and Phase 2 epic bu-hg8rl both CLOSED; Phase 3 maintenance cycle underway 2026-06-21), assessing test bloat, identifying pruning targets, or rewriting tests to be contract-driven. Triggers on test reduction, test pruning, test consolidation, or condensation tasks for this project. Also use when a fresh session needs to assess test health, create new condensation beads, or resume in-progress condensation work.
Generate a weekly home energy digest with trends, top consumers, and recommendations.
Orchestrate a UX redesign of a Butlers dashboard page (or sub-page set) using /project-direction as the spec+beads engine, with redesign-specific upfront phases for vision capture, asset ingestion, impact analysis, backend-contract derivation, LLM-cost feasibility, manifesto/identity preservation, and a th-design design-bar audit. The binding design language is the Dispatch spec (openspec/specs/dashboard-design-language/spec.md); bundles live under pr/overview/ and resolve via references/bundle-registry.md. Use when asked to redesign a dashboard page, with or without a Claude Design bundle. Triggers on "redesign the X page", "plan the Y redesign", "integrate the redesign bundle", "what would it take to ship the SLUG redesign", "design language integration for AREA".
基于 SOC 职业分类
正在显示 SKILL.md
| name | reconnect-planner |
| description | Identify overdue contacts ranked by Dunbar tier-weighted urgency and plan reconnection outreach |
| version | 2.0.0 |
| tags | ["relationship","outreach","planning","dunbar"] |
Help the Relationship butler proactively identify contacts who are overdue for reach-out, ranked by Dunbar tier-weighted urgency. This skill uses the unified Dunbar scoring model — contacts in inner tiers (support clique, sympathy group) are surfaced first and with higher urgency, while outer-tier contacts appear only when their tier-appropriate cadence has been exceeded.
relationship-maintenance)Contacts are automatically placed into concentric social layers based on interaction frequency and recency:
| Tier | Layer Name | Default Cadence | Tier Weight |
|---|---|---|---|
| 5 | Support clique | 14 days | 5.0 |
| 15 | Sympathy group | 21 days | 3.0 |
| 50 | Good friends | 45 days | 2.0 |
| 150 | Meaningful | 120 days | 1.0 |
| 500 | Acquaintances | 270 days | 0.5 |
| 1500 | Recognizable | Never (default) | — |
stay_in_touch_days value overrides their tier's default cadence.stay_in_touch_days set.Call contacts_overdue() — this returns all contacts whose time since last
interaction exceeds their effective cadence (tier default or stay_in_touch_days).
Each result includes dunbar_tier, dunbar_score, effective_cadence, and
days_since_last_interaction fields.
For each overdue contact, compute:
urgency = (days_since_last_interaction / effective_cadence) * tier_weight + context_bonus
Tier weights:
Context bonuses:
Sort all overdue contacts by urgency score descending. Select the top N (default 3, configurable by the caller).
Contacts with no interactions but an effective cadence get:
days_since_last_interaction = None — treat as maximally overdue for ranking
(use a large sentinel value such as effective_cadence * 10 for urgency calc).
For each selected contact, collect context to support a meaningful suggestion:
# Last interaction summary
interaction_list(contact_id="<contact_id>", limit=1)
# Recall facts from memory
fact_list(contact_id="<contact_id>")
# Check for upcoming dates (birthday, anniversary)
upcoming_dates(days_ahead=30) # filter for this contact
# Check for pending gift ideas
gift_list(contact_id="<contact_id>")
# Recent notes
note_list(contact_id="<contact_id>", limit=3)
For each contact, create a personalized suggestion referencing their tier context. Use the templates below based on the available context signals.
Template — upcoming date hook:
Reach out to [Name] — their [birthday/anniversary] is in [X days].
[Tier context: inner circle — high priority / good friend, check in]
Last talked: [date, summary]. Consider: [personal hook from memory/notes].
Template — follow-up on previous conversation:
Check in with [Name] (tier [X]) — [days] days since last contact ([tier default] day cadence).
Hook: [relevant fact or note that gives a natural reason to reach out].
Template — general reconnection:
Reconnect with [Name] — [X days] since last contact (overdue by [N] days).
[One sentence of context: shared interest, recent life event, or pending item].
Present suggestions in urgency order (highest first):
Reconnection suggestions (by Dunbar urgency):
1. Alice Chen (tier 5 — support clique, urgency 7.2)
Last contact: 28 days ago (14-day cadence). Birthday in 3 days.
Suggestion: Send a birthday message early. Mention her new job she started last month.
2. Bob Martinez (tier 15 — sympathy group, urgency 3.1)
Last contact: 45 days ago (21-day cadence). Pending gift idea.
Suggestion: Plan to give the gift and catch up. He was working on a marathon — ask how it went.
3. Carol Lee (tier 50 — good friend, urgency 1.8)
Last contact: 60 days ago (45-day cadence). No upcoming dates.
Suggestion: Simple check-in. You mentioned wanting to catch up over dinner.
contacts_overdue(): Primary data source — returns tier-enriched overdue listinteraction_list: Get last interaction per contactfact_list: Get relationship tier overrides and shared interestsnote_list: Gather recent notes with emotion contextupcoming_dates: Check for birthdays/anniversariesgift_list: Check for pending gift ideascalendar_list_events: Check for pending follow-up eventscalendar_create_event: Schedule follow-up events for reconnectiondunbar_tier_set: Set or clear manual tier overrides when computed tier seems wrong[manually assigned] next to the tier label.stay_in_touch_days on a contact to override their tier cadence.
Example: A tier-150 contact you want to keep closer — set stay_in_touch_days=30.dunbar_tier_set(contact_id, tier) when computed tier
doesn't reflect the actual relationship importance.stay_in_touch_days if you want
scheduled check-ins for someone in the recognizable tier.