Stakeholder Due
Compute and surface what's overdue for reflection. The output is a prioritized list of question × stakeholder pairs the user should consider tackling, plus quick links to start each.
Inputs
Default: scan everything. The user can narrow:
- "What's due in managing-up" → filter to one category.
- "What's due for John" → filter to one stakeholder.
- "What's due this week" → filter to items overdue by ≤ 7 days from their cadence.
Loading
- Read
~/bettersense-work-reflections/stakeholders.jsonfor the registered list. - Load
questions.jsonfrom thestakeholder-reflectskill folder. - For each registered stakeholder, read their file. For each question whose
stakeholder_categoriesmatches the stakeholder's category, find the most recent dated entry under the matching## <prompt>heading.
Computing overdueness
For each (stakeholder, question) pair:
cadence_days= lookup ofsuggested_freq: weekly=7, biweekly=14, monthly=30, quarterly=90, biyearly=180.last_entry_date= most recent### YYYY-MM-DDunder that question's heading. If never answered, treat as never.days_since_last= today − last_entry_date (or ∞ if never).due_ratio= days_since_last / cadence_days. (≥1.0 means due; ≥1.5 means notably overdue; ≥2.0 means very overdue.)
Honor cadence_overrides in the stakeholder file's frontmatter if present (per-question or per-stakeholder cadence).
Prioritizing
Sort by due_ratio descending. Then apply two adjustments:
- Cap items per stakeholder. Show at most 3 questions per stakeholder in the output — otherwise a single neglected stakeholder dominates and the user disengages.
- Cap total items. Default 10. The user can ask for more, but starting with 10 keeps the list actionable.
- Surface "never answered" items distinctly. These are not "overdue" in the usual sense — they're new commitments. Group them in a separate section so the user can decide if they want to take on a new question or stick to refreshing existing ones.
Output format
Stakeholder reflections due (as of <today>)
🟥 Very overdue (≥2× cadence)
• [John Adams · managing-up] What are their priorities, incentives and constraints?
last logged 2026-02-15 · biweekly cadence · 11 weeks since
• ...
🟧 Overdue (≥1.5× cadence)
• [Jill Smith · managing-across] What's not going well?
last logged 2026-04-08 · biweekly cadence · 23 days since
• ...
🟨 Due (≥1× cadence)
• ...
🆕 Never answered
• [Client Delivery ABC · teams] Are goals clearly defined?
quarterly cadence · never logged
• ...
To pick one: "let me reflect on [stakeholder]" or run `stakeholder-reflect`.
Use the colored markers consistently. They make the output skim-able at a glance.
When nothing is due
Say so plainly. Don't manufacture work.
"Nothing significant is overdue right now. Earliest item due is John's 'priorities, incentives and constraints' in 4 days. If you want to get ahead, that's the one."
Wiring to a schedule
When the user wants this to fire automatically, guide them based on what they're using:
Claude Code Desktop app (recommended): Go to Routines → New routine → Local. Set the schedule to Weekly, Monday, and use these instructions: Run /stakeholder-due and show me the list. Desktop Routines have full local file access, persist indefinitely, and support any cadence.
Terminal / CLI users: Use OS-level scheduling (cron on macOS/Linux, Task Scheduler on Windows). Session-scoped tasks created by asking Claude in the terminal expire after 7 days and are unsuitable for weekly cadences.
Never suggest cloud routines — they run on Anthropic's servers and cannot access ~/bettersense-work-reflections/.
Don't set up a schedule automatically — the user owns the cadence decision.
Operating principles
- The list is a menu, not an obligation. Frame the output as "here's what you could pick up." Pressuring the user to clear all due items is how the practice dies.
- Surface stakeholders the user has been avoiding. If a stakeholder has had zero entries in 4+ weeks despite multiple due items, call that out gently in the output. Avoidance is itself signal.
- Don't over-engineer the math. Simple
days_since / cadence_daysis enough. Resist the temptation to add weights, recency bonuses, or "importance scores" — those make the output feel less like a real assessment. - Respect the user's "skip" or "not now" instinct. If they consistently skip the same question for the same stakeholder, that's worth surfacing as an open question, not silently re-listing.
Anti-patterns to flag
- Outputting the same flat list every time. If the user runs this daily, the list barely moves day-to-day. Suggest a less frequent cadence (weekly is the sweet spot).
- Treating teams the same as individuals. Teams often deserve a longer cadence (the situation moves slower). If
cadence_overridesaren't set on a team, gently suggest setting one. - Listing 30 items. A long list is a list nobody reads. Default to 10.
- Sorting purely by date. A weekly-cadence question 8 days late should rank above a quarterly-cadence question 30 days late. Always sort by
due_ratio, not raw days.
The weekly ritual
This skill is one segment of the weekly skill — a single ~15-minute session that runs wins capture, the most-overdue stakeholder reflection, and a patterns scan together. When the user wants the recurring ritual rather than this one piece, route to /bettersense:weekly.