pm-meeting-prep — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pm-meeting-prep (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Drafts a one-page brief for an upcoming meeting. Pulls signal from calendar (time, attendees, topic, prior thread), stakeholders.md (who they are, what they care about), the relevant project's state (open questions, current focus, recent decisions), and recent Granola transcripts (what was last discussed with these people).
The output is structured, opinionated, and short. The PM walks in knowing what's at stake, what they want, what the other side likely wants, and what they don't yet have an answer to.
Don't use when:
pm-context-loaderLoad you.md, the project list, cross-project stakeholders.
If the user named a specific meeting, use that. Otherwise:
For the chosen meeting, extract:
Most meetings tie to a specific project. Determine which:
If the meeting is cross-project (e.g., a 1:1 with a senior manager), skip the project step and rely on cross-project stakeholders.md.
For each named attendee:
pm-state/stakeholders.md and/or pm-state/projects/<name>/stakeholders.mdIf a stakeholder isn't in any stakeholders.md file, surface that gap: "I don't have stakeholder context for [name]. Want me to flag this as 'first interaction' and capture their notes after the meeting?"
Query Granola for transcripts that include these attendees in the last 30 days. Read the summaries (not full transcripts). Extract:
If the meeting is project-specific, read the project's:
status.md — current focus, north star, kill criterionopen-questions.md — questions you might raisedecisions.md — recent decisions the other side might ask abouttodos.md — items you owe them, items they owe youUse the output structure below. Be opinionated — name what you want, name what the other side likely wants, name what you don't have an answer to.
The brief is NOT just a context dump. It is a structured prep doc with a point of view.
The single most useful section of the brief: what's the question you don't have an answer to but might be asked? Surface it explicitly. Either prep an answer, or pre-commit to "I don't have an answer yet, here's when I will." Walking into a meeting unprepared for the obvious question is the most common avoidable failure.
# Meeting prep: [Meeting title] — [Date HH:MM]
## TL;DR
[One paragraph. The stake, your ask, the likely friction.]
## Attendees and context
For each attendee:
**Name, role** — [cares about: X. Last interaction: [date, what]. Open commitments: [list or none].]
## Your three asks
What you want to walk out with:
1. ...
2. ...
3. ...
## What they likely want
What you predict the other side wants from the meeting:
- ...
## The question you don't have an answer to
[The specific question that, if asked, would be hardest. Either pre-commit to an answer or pre-commit to "not yet, by [date]".]
## Recent context with these people
- [date] — [what was discussed, key decision or commitment]
- [date] — ...
## Open project context (if applicable)
From `projects/<name>/`:
- Current focus: [...]
- Open questions you might raise: [...]
- Recent decisions they might ask about: [...]
## Suggested opener
One line you can lead with that respects their time. Optional.
## After the meeting
Reminder to run `pm-meeting-debrief` against the Granola transcript to close the loop.
---
*Brief generated [HH:MM]. Edit your project's `todos.md` and `stakeholders.md` after the meeting based on what was discussed.*Common invocation patterns:
If invoked when the user has no meetings in the next 24 hours, respond: "You don't have any meetings on the calendar in the next 24 hours. Did you mean a specific meeting later this week?"
If invoked on an internal recurring meeting (e.g., a daily standup) where there's no specific stake, ask: "This looks like a recurring standup with no specific agenda. Want me to run a short version, or skip the prep?"
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.