Produces a private strategic preparation document for the user before a meeting that matters. Captures stakes, stakeholder positions and reads, ranked desired outcomes, key messages, anticipated questions with prepared responses, risks and tensions, specific asks, and success signals. Distinct from meeting-agenda because this artifact is not shared with attendees; it is the user's personal tactical prep for meetings where positioning matters.
npx skills add https://github.com/product-on-purpose/pm-skills --skill foundation-meeting-brief
<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
A meeting brief is the user's private strategic preparation document for a meeting where context, stakes, or positioning matter. It captures what the user needs to know, what they want to accomplish, who they are engaging with, and how to navigate the conversation. This is strategic prep, not meeting structure, which keeps it distinct from a meeting agenda.
This skill belongs to the Meeting Skills Family. It conforms to the Meeting Skills Family Contract.
foundation-meeting-agenda instead.foundation-meeting-recap.Per the family contract, this skill never blocks on interrogation. Default flow:
project or topics frontmatter matchgo or correctionsIf invoked with --go, skip the inference summary. If the user provides all values upfront, no checkpoint appears.
The skill runs on inferred stakeholder positions with low-confidence flags when no stakeholder summaries are provided; it does not block on missing inputs.
This skill opens with the shared anti-meeting check. see foundation-meeting-agenda for the full check.
v1.1.0: the check requires a positive synchronous-value statement (tradeoff to discuss, conflict to resolve, co-creation, relationship-building, or blocker escalation). Brief-prep scenarios most often pass because they typically involve navigating stakeholder positions or negotiation dynamics. which qualify as "conflict to resolve" or "relationship-building." But the check still runs, and if no synchronous value is named, the skill recommends the async alternative before producing a brief.
Load-bearing inference gates (v1.1.0): when stakeholder positions, primary ask, or decision-maker attribution are inferred below-high confidence, flag in the go-mode summary with ⚠. The brief's tactical guidance depends on these; silent acceptance of weak inferences creates risky advice. See family contract "Zero-friction execution" section.
When asked to create a meeting brief, follow these steps:
Apply the trigger patterns. If matched, propose async alternative and await override.
Read the topic. Load any @file references. Auto-discover related artifacts: prior recaps on same topic (same project/topics frontmatter), stakeholder summaries from /discover-stakeholder-summary outputs, related project docs.
Apply these rules:
| Value | Inferred from | Confidence |
|-------|---------------|------------|
| Stakeholder positions | Prior recap language, stakeholder summary content | High if recap cites direct quote; medium if position in 2+ sources; low otherwise |
| Stakes per attendee | Role plus topic-ownership cues | Always flag inferences |
| Top 3 goals | User's primary ask plus meeting type | Offer as ranked strawman in go-mode |
| Anticipated questions | Stakeholder position analysis plus typical-by-role objections | Flag as inferred |
| Risks / tensions | Conflict patterns in prior recaps | High if prior recap flagged contradiction |
Show the inferred stakeholder positions, primary ask, top-3 goals. Accept go or corrections.
Relevant history, prior decisions, recent developments. Cross-reference prior recaps by filename when available.
For each key attendee: position on topic, stakes (what they win or lose), likely concerns, relationship state (strong / neutral / strained), tactical notes (how to engage).
Must achieve / should achieve / nice to achieve. Force the tradeoff explicitly.
In priority order, phrased for delivery. Not bullet points to read; phrased as you would say them.
Table format: Q | prepared response. Aim for the three questions the user is most likely to get.
10. Identify risks and tensions
With explicit mitigations. Flag anything that could derail the meeting.
11. Specify asks
What the user needs from specific people by name. Not generic "get alignment" but "ask alex to commit eng capacity for Q2 by Thursday."
12. Define success signals
How the user knows in the moment that the meeting went well. Behavioral cues, not just outcome markers.
13. Render TEMPLATE.md and validate
visibility: private defaultvisibility: private default appliedfoundation-meeting-agenda. shares the anti-meeting check/discover-stakeholder-summary. upstream input source for stakeholder positionsAnalyzes 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-meeting-brief 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.