Management Talk
thananon/9arm-skills
Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…
Produces an attendee-facing agenda that sets what will be discussed, who owns each topic, and how time will be spent.
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agenda --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/foundation-meeting-agenda .claude/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .claude/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agendaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agenda --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/foundation-meeting-agenda .agents/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .agents/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agenda --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/foundation-meeting-agenda .cursor/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .cursor/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/product-on-purpose/pm-skills.git --path skills/foundation-meeting-agenda--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agenda --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/foundation-meeting-agenda .gemini/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .gemini/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agendaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/foundation-meeting-agenda .github/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .github/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install product-on-purpose/pm-skills foundation-meeting-agenda --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/product-on-purpose/pm-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/foundation-meeting-agenda .opencode/skills/foundation-meeting-agenda && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "foundation-meeting-agenda" agent skill from https://github.com/product-on-purpose/pm-skills/tree/main/skills/foundation-meeting-agenda into .opencode/skills/foundation-meeting-agenda/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "foundation-meeting-agenda", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
foundation-meeting-agendaProduces an attendee-facing agenda that sets what will be discussed, who owns each topic, and how time will be spent.
Foundation Meeting Agenda is an agent skill from product-on-purpose/pm-skills. Produces an attendee-facing agenda that sets what will be discussed, who owns each topic, and how time will be spent. Supports ten meeting type variants (standup, planning, review, decision-making, brainstorm, 1-on-1, stakeholder-review, project-kickoff, working-session, exec-briefing). Emits a shareable summary suitable for Slack or email plus a full agenda with time-boxed topics, type tags, owners, attendee prep, and logistics.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `HISTORY.md`, `evals/trigger-fixtures.json` and `references/EXAMPLE.md`).
It sits in Productivity & Automation, covering Meeting notes and agendas, Brainstorming and Internal communications. It works with Slack. The repository describes itself as: 68 plug-and-play, best-practice product management skills for AI agents: 30 Triple Diamond phase + 11 foundation + 12 utility + 15 tool (Foundation Sprint + Design Sprint). Plus… The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1cef1a9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Foundation Meeting Agenda loads about 2.6k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,256 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from product-on-purpose/pm-skills at commit 1cef1a9, republished under its Apache-2.0 licence (© product-on-purpose). 1,256 words, ~2,628 tokens.
.claude/skills/foundation-meeting-agenda/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
A meeting agenda is the attendee-facing structural document that sets expectations before a meeting. It answers "what will we discuss, who owns each topic, how will we spend the time, and what does done look like?" Distinct from a meeting brief, which is the user's private strategic prep; the agenda is shared with participants and focused on structure and flow.
This skill belongs to the Meeting Skills Family. It conforms to the Meeting Skills Family Contract, which defines shared frontmatter, file naming, the go-mode behavioral pattern, and universal output requirements across all meeting skills.
foundation-meeting-brief instead.foundation-meeting-recap for post-meeting summarization.foundation-stakeholder-update after the meeting.Per the family contract, this skill never blocks on interrogation. Default flow:
go or correctionsIf invoked with --go, skip the inference summary and produce output directly using defaults (duration 30 min, meeting type other, and so on). If the user provides all values upfront, no checkpoint appears.
Blocking questions are used only when inference confidence is actively low on a load-bearing input and no reasonable default exists. This should be rare.
This skill opens with an explicit question: "Does this need to be a meeting, or could it be handled async?"
v1.1.0: the check now requires a positive synchronous-value statement. The meeting passes the check only when at least one of these is named:
If none apply, the skill recommends the async alternative (written update, doc review, Slack poll) and produces a short one-page "how to handle this async" framing instead of an agenda.
The v1.0.0 version of this check ("single-owner decision with no tradeoffs", "pure information broadcast", "status-only sync with >5 people") was bypassed too easily. users would stay at five attendees or add "decision" to the topic. The stricter v1.1.0 biases toward async; users can still override.
This check is shared with foundation-meeting-brief and not run by the post-meeting skills (recap, synthesize, stakeholder-update).
When asked to create a meeting agenda, follow these steps:
Run anti-meeting check Apply the trigger patterns above. If the user's objective matches, propose the async alternative and ask for override. Only proceed to step 2 on explicit override.
Parse and load inputs
Read the topic or purpose. Load all @file references provided. Extract any attendee list, time constraints, or linked documents.
Infer missing values Apply these inference rules:
| Value | Inferred from | Default |
|---|---|---|
| Meeting type | Topic keywords, attendee seniority mix | other (low confidence) |
| Duration | Explicit in topic doc (rare); meeting-type-specific default when type is inferred at medium+ confidence | v1.1.0: type-specific (see family contract). 30 min only for other, 1-on-1, exec-briefing, customer-call. Kickoff = 60, working-session = 60, decision-making = 45, etc. |
| Objective | Topic phrasing | Infer; surface in summary |
| Attendee RACI | Seniority, topic ownership cues | Flag all inferences |
| Desired outcomes | Objective plus meeting type heuristics | Offer strawman |
Load-bearing inference gates (v1.1.0): when attendee RACI or desired outcomes are inferred below-high confidence, flag in the go-mode summary with ⚠. See family contract "Zero-friction execution" section.
Present go-mode inference summary
Show the inferred values with confidence markers. Accept go to proceed, or corrections to revise. Re-run inference after any correction and present the summary again.
Design the time-boxed topic list Apply the meeting-type variant (see below). Size topic times so their sum equals the meeting duration. If the topic list overflows the available time, flag it explicitly and ask for reconciliation (do not silently trim).
Each topic must have:
Discussion | Decision | Information | WorkingSpecify attendee prep List required prep with links and estimated prep time. Add recommended context for attendees who want deeper background. Add "come ready to" expectations that force clarity on what each attendee contributes.
Add parking lot and logistics placeholders Parking lot is a placeholder for off-topic items raised during the meeting. Logistics covers join link, materials needed, recording ownership.
Render the TEMPLATE.md with filled values Remove all guidance blockquotes from the final artifact.
Validate output
meeting_duration_minutes, desired_outcomes)Generation contextApplied in step 5. Each variant reshapes the topic list to match the meeting's purpose.
Active only when .claude/pm-skills.local.md exists. With no file, ignore this section entirely
and behave exactly as described above.
active_initiative and recent decision artifacts, so the agenda reflects what is already settled and does not schedule time to re-open it.memory_auto_append: true is set, in which case append and echo what was written.This complements the family's filename-based chaining rather than replacing it: filenames still locate the sibling artifacts of one meeting, while project memory carries the durable product context across meetings.
Before delivering the agenda, verify:
other with low-confidence flag)foundation-meeting-brief. user's private prep (shares anti-meeting check)foundation-meeting-recap. downstream: recap auto-populates from this agenda's topic listfoundation-stakeholder-update. downstream: translates meeting outcomes to non-attendees© product-on-purpose, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/foundation-meeting-agenda of product-on-purpose/pm-skills.
Open the folder on GitHubat commit 1cef1a9
Foundation Meeting Agenda next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Foundation Meeting Agenda this skillproduct-on-purpose/pm-skills | 716 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Management Talkthananon/9arm-skills | 3.2k | — | ~3.2k | Automated safety check: Pass | None | |
| Claap Weekly RecapOthmane-Khadri/YALC-the-GTM-operating-system | 318 | — | ~5.4k | Automated safety check: Pass | MIT | |
| Qv Devops Daily Updatetetherto/qvac | 685 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Kill The StandupVarnan-Tech/opendirectory | 674 | — | ~1.3k | Automated safety check: Notes | MIT | |
| Meeting Notessanqiufong/slides-from-anything | 132 | 1 repos | ~321 | Automated safety check: Pass | Apache-2.0 |
thananon/9arm-skills
Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…
Othmane-Khadri/YALC-the-GTM-operating-system
Turns a week of Claap-recorded sales calls into action items and focus blocks on a Notion Kanban, delivered with a Slack summary.
tetherto/qvac
Compose a daily standup in the team's Slack format (🔨 Done today / 📅 Planned for tomorrow / 🚧 Blockers / risks), aggregating recent PRs, reviews, and CI from tetherto/qvac.
Varnan-Tech/opendirectory
Reads yesterday's Linear issues and GitHub commits for the authenticated user, formats a standup update (done / doing / blockers), and posts it to Slack.
sanqiufong/slides-from-anything
Meeting notes page — title bar with attendees, agenda checklist, decisions block, action items table with owners + dates, and a "next meeting" footer.
techwolf-ai/ai-first-toolkit
Comprehensive pre-meeting briefing that gathers all relevant context from Slack, email, Google Docs, Notion, and calendar.
product-on-purpose/pm-skills
Defines a testable hypothesis with clear success metrics and a validation approach.
product-on-purpose/pm-skills
Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job.
product-on-purpose/pm-skills
Creates an opportunity solution tree connecting a desired outcome to customer opportunities and candidate solutions, preventing solution-first jumps in continuous discovery.
product-on-purpose/pm-skills
Creates a clear problem framing document with user impact, business context, and success criteria.
product-on-purpose/pm-skills
Generates structured Given/When/Then acceptance criteria for a user story or feature slice, covering the happy path, key failure scenarios, and non-functional expectations in testable form.
product-on-purpose/pm-skills
Creates a cross-functional pre-launch checklist covering engineering, design, marketing, support, legal, and operations readiness, with owners, dates, and go/no-go criteria so nothing is missed…
Works with
Categories
Produces an attendee-facing agenda that sets what will be discussed, who owns each topic, and how time will be spent. Foundation Meeting Agenda is an agent skill from product-on-purpose/pm-skills. Produces an attendee-facing agenda that sets what will be discussed, who owns each topic, and how time will be spent.
Foundation Meeting Agenda fits situations like: tasks that involve Meeting notes and agendas; tasks that involve Brainstorming; tasks that involve Internal communications.
Run `npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a claude-code`. Or copy the skill folder (skills/foundation-meeting-agenda in product-on-purpose/pm-skills) into .claude/skills/foundation-meeting-agenda in your project. Claude Code loads it when a task matches its description.
Run `npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a codex`. Or copy the skill folder (skills/foundation-meeting-agenda in product-on-purpose/pm-skills) into .agents/skills/foundation-meeting-agenda in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add product-on-purpose/pm-skills --skill foundation-meeting-agenda -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/foundation-meeting-agenda, .gemini/skills/foundation-meeting-agenda, .github/skills/foundation-meeting-agenda and .opencode/skills/foundation-meeting-agenda in your project.
SKILL.md names no scripts, command-line tools or credentials: Foundation Meeting Agenda is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Foundation Meeting Agenda is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Foundation Meeting Agenda: Management Talk (thananon/9arm-skills, 3.2k stars), Claap Weekly Recap (Othmane-Khadri/YALC-the-GTM-operating-system, 318 stars), Qv Devops Daily Update (tetherto/qvac, 685 stars) and Kill The Standup (Varnan-Tech/opendirectory, 674 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
product-on-purpose (a GitHub organization) maintains it in product-on-purpose/pm-skills, which has 716 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on October 8, 2026.
Source: product-on-purpose/pm-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.