Meeting Cost & Agenda Planner

Meetings — Cost Gate → Timeboxed Agenda → Owned Actions

by alirezarezvani · MIT license · ★ 26,349 on GitHub · updated Aug 30

Meetings — Cost Gate → Timeboxed Agenda → Owned Actions cover

Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting",…

---
name: meetings
description: Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
argument-hint: "[the meeting to gate, or the notes to extract actions from]"
license: MIT
metadata:
  version: 1.0.0
  build_pattern: "Path-B discipline skill — Rogelberg/HBR meeting-science canon + deterministic gate/agenda/extraction scripts"
  distinct_from: "project-management (team ceremonies + Jira delivery flow; this is personal meeting hygiene); business-operations/internal-comms (org-level communication design; this never auto-sends); productivity/capture (private brain-dump triage; this parses shared meeting notes)"
---

# Meetings — Cost Gate → Timeboxed Agenda → Owned Actions

> **Portability:** Reasoning-led skill with 3 stdlib Python scripts. No external APIs, no LLM calls
> in scripts, nothing auto-sent. The scripts fix the discipline; the user runs the meeting.

## What this does

Overview

Most meetings should be an email. This skill makes that testable: it prices a meeting in real dollars, refuses to let it exist without a decision + agenda + owner, builds a timeboxed decision-first agenda for the survivors, and afterwards turns raw notes into an owner + due-date checklist that flags every orphan. An ASYNC verdict is a win, not a failure.

Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill meetings -g -a claude-code
Claude Code (degit)npx degit alirezarezvani/claude-skills/productivity/meetings/skills/meetings#main ~/.claude/skills/meetings
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.9 KB
Read SKILL.md here
alirezarezvani/main1 file shown
SKILL.md
Show the full text98 lines

Meetings — Cost Gate → Timeboxed Agenda → Owned Actions

Portability: Reasoning-led skill with 3 stdlib Python scripts. No external APIs, no LLM calls in scripts, nothing auto-sent. The scripts fix the discipline; the user runs the meeting.

What this does

Most meetings should be an email. This skill makes that testable: it prices a meeting in real dollars, refuses to let it exist without a decision + agenda + owner, builds a timeboxed decision-first agenda for the survivors, and afterwards turns raw notes into an owner + due-date checklist that flags every orphan. An ASYNC verdict is a win, not a failure.

Workflow — gate → agenda → run → extract

1. Gate. Before starting, ask one clarifying question if the decision to be made is unstated — the gate cannot run honestly without it. Then price it and apply the three checks. No decision → ASYNC (exit 2): draft a memo instead, stop here. Decision but missing agenda/owner → NOT-READY (exit 3), naming the gap. All present → MEET (exit 0) with total cost and a cost-per-minute line.

2. Agenda. Only for MEET. Every topic needs a desired outcome — empty outcomes are refused by name (exit 2). Decision topics (decide/choose/approve) sort before discuss/inform. Timeboxes plus the mandatory 5-minute closing "actions recap" slot must fit --length, or the overflow is refused with the exact overage (exit 3). Iterate — trim or split the named topic and re-run until it fits; the stop condition is exit 0 (or the meeting goes async). Output includes a pre-read line.

3. Run. The user runs the meeting from the printed agenda. Hold the timeboxes; use the closing slot to read every action aloud with its owner and date.

4. Extract. Feed the raw notes to the extractor: checkboxes, ACTION:/TODO: lines, "@name will …" and "Name will … by date" patterns become a checklist grouped by owner, with ORPHAN (no owner) and NO-DUE flags plus summary counts. Assign every orphan before posting — the meeting is done when every action has an owner and a date; that completion check closes the loop.

# 1. Gate: should this meeting exist?
python scripts/meeting_cost_calculator.py --attendees 6 --minutes 60 \
  --avg-rate 90 --include-refocus --has-decision --has-agenda --has-owner

# 2. Agenda: timeboxed, decision-first, outcomes mandatory
python scripts/agenda_builder.py --length 45 \
  --topic "Q3 pricing:Decide usage-based vs seat-based:15:maria" \
  --topic "Launch risks:Discuss open launch blockers:15:sam"

# 4. Extract: raw notes -> owner + due-date checklist with ORPHAN/NO-DUE flags
python scripts/action_item_extractor.py --input notes.md

Scripts

Script Role
scripts/meeting_cost_calculator.py Dollars (attendees × minutes × rate, optional 23-min refocus overhead per attendee) + decision/agenda/owner gate → ASYNC / NOT-READY / MEET.
scripts/agenda_builder.py Timeboxed decision-first agenda; refuses empty outcomes and overflow; enforces pre-read line + 5-min closing actions-recap slot.
scripts/action_item_extractor.py Raw notes → owner-grouped markdown checklist with due dates, ORPHAN/NO-DUE flags, and summary counts.

References

Assets

Rules

  • Gate before agenda. Never build an agenda for a meeting that hasn't passed the gate.
  • No decision, no meeting. Status updates go async, every time.
  • No desired outcome, no agenda slot. The builder refuses; go get the outcome.
  • Every action item has an owner and a date — or it is not an action item. Flag, never drop.
  • Never auto-send. No invites, no emails, no messages. Output is text the user sends.

Distinct From (don't reach for the wrong skill)

  • project-management/ — team ceremonies, sprint cadence, Jira delivery flow. This gates one meeting at a time for the person calling it.
  • business-operations/internal-comms — org-level communication design. This never designs a comms program and never sends anything.
  • productivity/capture — triages a private brain-dump. This parses a shared meeting's notes.

Version: 1.0.0 Build pattern: Path-B discipline skill — meeting-science canon preserved + deterministic gate/agenda/extraction scripts added.

1---
2name: meetings
3description: Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
4argument-hint: "[the meeting to gate, or the notes to extract actions from]"
5license: MIT
6metadata:
7 version: 1.0.0
8 build_pattern: "Path-B discipline skill — Rogelberg/HBR meeting-science canon + deterministic gate/agenda/extraction scripts"
9 distinct_from: "project-management (team ceremonies + Jira delivery flow; this is personal meeting hygiene); business-operations/internal-comms (org-level communication design; this never auto-sends); productivity/capture (private brain-dump triage; this parses shared meeting notes)"
10---
11 
12# Meetings — Cost Gate → Timeboxed Agenda → Owned Actions
13 
14> **Portability:** Reasoning-led skill with 3 stdlib Python scripts. No external APIs, no LLM calls
15> in scripts, nothing auto-sent. The scripts fix the discipline; the user runs the meeting.
16 
17## What this does
18 
19Most meetings should be an email. This skill makes that testable: it prices a meeting in real
20dollars, refuses to let it exist without a decision + agenda + owner, builds a timeboxed
21decision-first agenda for the survivors, and afterwards turns raw notes into an owner + due-date
22checklist that flags every orphan. An ASYNC verdict is a win, not a failure.
23 
24## Workflow — gate → agenda → run → extract
25 
26**1. Gate.** Before starting, ask one clarifying question if the decision to be made is unstated —
27the gate cannot run honestly without it. Then price it and apply the three checks. No decision → ASYNC (exit 2): draft a memo
28instead, stop here. Decision but missing agenda/owner → NOT-READY (exit 3), naming the gap.
29All present → MEET (exit 0) with total cost and a cost-per-minute line.
30 
31**2. Agenda.** Only for MEET. Every topic needs a desired outcome — empty outcomes are refused by
32name (exit 2). Decision topics (decide/choose/approve) sort before discuss/inform. Timeboxes plus
33the mandatory 5-minute closing "actions recap" slot must fit `--length`, or the overflow is refused
34with the exact overage (exit 3). Iterate — trim or split the named topic and re-run until it fits;
35the stop condition is exit 0 (or the meeting goes async). Output includes a pre-read line.
36 
37**3. Run.** The user runs the meeting from the printed agenda. Hold the timeboxes; use the closing
38slot to read every action aloud with its owner and date.
39 
40**4. Extract.** Feed the raw notes to the extractor: checkboxes, `ACTION:`/`TODO:` lines,
41"@name will …" and "Name will … by date" patterns become a checklist grouped by owner, with
42ORPHAN (no owner) and NO-DUE flags plus summary counts. Assign every orphan before posting — the
43meeting is done when every action has an owner and a date; that completion check closes the loop.
44 
45```bash
46# 1. Gate: should this meeting exist?
47python scripts/meeting_cost_calculator.py --attendees 6 --minutes 60 \
48 --avg-rate 90 --include-refocus --has-decision --has-agenda --has-owner
49 
50# 2. Agenda: timeboxed, decision-first, outcomes mandatory
51python scripts/agenda_builder.py --length 45 \
52 --topic "Q3 pricing:Decide usage-based vs seat-based:15:maria" \
53 --topic "Launch risks:Discuss open launch blockers:15:sam"
54 
55# 4. Extract: raw notes -> owner + due-date checklist with ORPHAN/NO-DUE flags
56python scripts/action_item_extractor.py --input notes.md
57```
58 
59## Scripts
60 
61| Script | Role |
62|---|---|
63| `scripts/meeting_cost_calculator.py` | Dollars (attendees × minutes × rate, optional 23-min refocus overhead per attendee) + decision/agenda/owner gate → ASYNC / NOT-READY / MEET. |
64| `scripts/agenda_builder.py` | Timeboxed decision-first agenda; refuses empty outcomes and overflow; enforces pre-read line + 5-min closing actions-recap slot. |
65| `scripts/action_item_extractor.py` | Raw notes → owner-grouped markdown checklist with due dates, ORPHAN/NO-DUE flags, and summary counts. |
66 
67## References
68 
69- [`references/meeting_cost_canon.md`](references/meeting_cost_canon.md) — the real cost of meetings and the should-this-exist gate (7 sources)
70- [`references/agenda_discipline.md`](references/agenda_discipline.md) — agendas as questions, timeboxing, decision-first ordering, pre-reads (7 sources)
71- [`references/action_item_discipline.md`](references/action_item_discipline.md) — why meetings without owned actions are theater (6 sources)
72 
73## Assets
74 
75- [`assets/example_agenda.md`](assets/example_agenda.md) — a full worked timeboxed agenda (gate verdict → ordered topics → closing recap)
76- [`assets/meeting_gate_worksheet.md`](assets/meeting_gate_worksheet.md) — fillable should-this-be-a-meeting worksheet
77 
78## Rules
79 
80- **Gate before agenda.** Never build an agenda for a meeting that hasn't passed the gate.
81- **No decision, no meeting.** Status updates go async, every time.
82- **No desired outcome, no agenda slot.** The builder refuses; go get the outcome.
83- **Every action item has an owner and a date — or it is not an action item.** Flag, never drop.
84- **Never auto-send.** No invites, no emails, no messages. Output is text the user sends.
85 
86## Distinct From (don't reach for the wrong skill)
87 
88- **`project-management/`** — team ceremonies, sprint cadence, Jira delivery flow. This gates one
89 meeting at a time for the person calling it.
90- **`business-operations/internal-comms`** — org-level communication design. This never designs a
91 comms program and never sends anything.
92- **`productivity/capture`** — triages a private brain-dump. This parses a shared meeting's notes.
93 
94---
95 
96**Version:** 1.0.0
97**Build pattern:** Path-B discipline skill — meeting-science canon preserved + deterministic gate/agenda/extraction scripts added.
98 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →

More from alirezarezvani

SkillExperiment Resume Toolalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillExperiment Dashboard Vieweralirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillAutonomous Experiment Runneralirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillSingle Experiment Iteratoralirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillAutoresearch Experiment Setupalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkillExecutive Boardroom Deliberatoralirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars