From tpm
Summarizes new meeting notes for a stream as the Meetings Agent. Use after a meeting to draft a summary, extract action items with owners, and propose closures for items resolved by later meetings. Reads notes via the meeting-notes integration; all writes require TPM approval.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tpm:meeting-summaryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a stream's new meeting notes into a structured summary and a set of tracked action items. This skill acts as the Meetings Agent: it reads the agent definition, applies its rules, and produces output for TPM review. Nothing is written to stream state or published until the TPM approves.
Turn a stream's new meeting notes into a structured summary and a set of tracked action items. This skill acts as the Meetings Agent: it reads the agent definition, applies its rules, and produces output for TPM review. Nothing is written to stream state or published until the TPM approves.
$ARGUMENTS is the stream name. It is required — this skill always operates inside one stream.
meeting-notes source (or pasted)When NOT to use: No stream named in $ARGUMENTS. No new notes and nothing to reconcile. Preparing for an upcoming meeting — use /tpm:meeting-prep instead.
${CLAUDE_PLUGIN_ROOT}/agents/meetings-agent.md — agent rules and behaviors./streams/<stream>/context.md — scope, standing instructions, any per-stream note-tool override./streams/<stream>/team.md — roster and RACI, for owner resolution./streams/<stream>/action-items.md — existing items and their status (for reconciliation)./integrations.md — the meeting-notes backing source mapped to this stream and where it caches./.data/<source>/ — read the cache first. If a needed note isn't cached, fetch it live via the source's MCP server (fetched notes are kept under .data/<source>/). If the source is pasted, use the notes the TPM provides in-session.If there are no new notes and nothing to reconcile, say so and stop.
For each new meeting note:
${CLAUDE_PLUGIN_ROOT}/skills/meeting-summary/summary-template.md — fill every field. Set Notes source to the note's resource URL from the integration metadata (Drive web view link / Confluence page URL), never a local cache path.team.md; UNASSIGNED + flag if none), source (this meeting), opened date, due date if stated, status OpenThe template carries an action-items table; for cross-meeting tracking the full record (with Source) lives in action-items.md:
| Action | Owner | Source | Opened | Due | Status |
|---|
action-items.mdProposed-Closed and cite the resolving noteState clearly:
UNASSIGNED flaggedhistory/ on approvalOn approval: copy the common template to ./streams/<stream>/meetings/<YYYY-MM-DD>-<type>.md and fill it in (one file per meeting, never a shared log); append items to action-items.md; apply proposed closures (move closed items to history/); and move the prior agenda document to history/. Do nothing to these files without explicit TPM approval.
context.md and team.md first — owners and standing instructions get missedteam.md instead of marking UNASSIGNEDBefore presenting for review, confirm:
$ARGUMENTS and its context.md + team.md were readUNASSIGNED+flagged), a source, and a statusProposed-Closed markers, never closureshistory/npx claudepluginhub vyazovsky1/tpm --plugin tpmCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.