Produces async communication to stakeholders, primarily non-attendees and secondarily some attendees who want a reference. Translates meeting outcomes into what-it-means language for readers, with channel variants (slack, teams, email, notion, exec-memo) and audience variants (engineering, design, leadership, customer-facing, mixed). Surfaces a primary CTA up front, flags technical-to-business translations for user verification, and detects thread continuation from prior updates.
npx skills add https://github.com/product-on-purpose/pm-skills --skill foundation-stakeholder-update
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
A stakeholder update is async communication to readers who need to know the outcomes of a meeting. Primary audience is non-attendees; secondary audience is some attendees who want a reference version (came in late, stepped out, need something to forward).
Distinct from foundation-meeting-recap in audience, format, and purpose: the recap is a summary of what happened for people who were in the room; the stakeholder-update is a translation of outcomes into what-it-means for readers (tailored to their role, with technical-to-business translation where the audience warrants it).
Distinct from /discover-stakeholder-summary: that skill is about understanding stakeholders (input to the user's work). This skill is about communicating to stakeholders (output from the user's work).
This skill belongs to the Meeting Skills Family. It conforms to the Meeting Skills Family Contract.
foundation-meeting-recap./discover-interview-synthesis plus targeted comms.foundation-stakeholder-briefings.Per the family contract, this skill never blocks on interrogation. Default flow:
project/topicsgo or correctionsIf invoked with --go, skip the inference summary. The entire output is shareable content (per family contract. no separate summary block needed).
When asked to create a stakeholder update, follow these steps:
Parse frontmatter to extract meeting context, decisions, actions, outcomes. If no recap provided, accept raw meeting notes with a lower input-quality flag.
Scan same directory for prior stakeholder-update artifacts with matching project / topics. If found, reference the prior update in the frontmatter thread_continuation_of field.
Show inferred channel (if not specified), detected audience, proposed CTA, thread continuation status, translation candidates (flagged jargon or acronyms that may not land).
From the recap or notes, select 3-5 outcomes that matter to the target audience. Do not include everything from the recap. filter by audience relevance.
If action is needed: lead with it, not bury it
If FYI-only: state explicitly in the TL;DR
Flag jargon and acronyms unlikely to land with the audience. Provide plainer alternatives. Keep a translations-applied log for user verification in the output's Generation context.
Other variants may be included as collapsible alternates for user flexibility. Remove all guidance blockquotes from the final artifact.
channel is in enumaudience_variant is in enumprimary_cta is non-empty (use "FYI-only" if no action needed)related_recap is a valid filename reference or flagged as raw-notes input## Shareable update section present with channel-tailored body (v1.1.0. replaces "entire output is shareable" from v1.0.0)YYYY-MM-DD_HH-MMtimezone_title_stakeholder-update-{channel}-{audience}.mdfoundation-meeting-recap. upstream: primary input source/discover-stakeholder-summary. distinct purpose (understanding stakeholders, not communicating to them)Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take product-on-purpose/foundation-stakeholder-update from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.