assets/example_agenda.md
3.4 KB查看排版效果| 1 | # Worked Example — Q3 Pricing Decision Meeting |
| 2 | |
| 3 | A full pass through the `meetings` skill for a real meeting, from gate to agenda. Use it as the |
| 4 | canonical shape for what the scripts produce and how the pieces snap together. |
| 5 | |
| 6 | ## Step 1 — The gate |
| 7 | |
| 8 | ```bash |
| 9 | python scripts/meeting_cost_calculator.py --attendees 6 --minutes 45 \ |
| 10 | --avg-rate 90 --include-refocus --has-decision --has-agenda --has-owner |
| 11 | ``` |
| 12 | |
| 13 | ``` |
| 14 | Meeting Cost Gate (should this meeting exist?) |
| 15 | ================================================================ |
| 16 | Attendees: 6 Length: 45 min Rate: $90/hr |
| 17 | Direct cost: $ 405.00 (6 x 45 min x $90/hr) |
| 18 | Refocus cost: $ 207.00 (23 min refocus overhead per attendee) |
| 19 | TOTAL COST: $ 612.00 |
| 20 | |
| 21 | Gate: decision=yes | agenda=yes | owner=yes |
| 22 | |
| 23 | VERDICT: MEET |
| 24 | Gate passed: decision + agenda + owner. This meeting has earned its slot. It costs $612.00 — |
| 25 | budget the agenda timeboxes like money. |
| 26 | |
| 27 | Every minute of this meeting costs $13.60 — price each agenda topic's timebox against that. |
| 28 | ``` |
| 29 | |
| 30 | **MEET** — proceed to the agenda. (Had there been no decision, the verdict would be ASYNC and the |
| 31 | next step would be a memo outline, not an agenda.) |
| 32 | |
| 33 | ## Step 2 — The agenda |
| 34 | |
| 35 | ```bash |
| 36 | python scripts/agenda_builder.py --length 45 \ |
| 37 | --topic "Metrics review:Inform team of the activation trend:5:alex" \ |
| 38 | --topic "Q3 pricing:Decide usage-based vs seat-based:15:maria" \ |
| 39 | --topic "Launch risks:Discuss open launch blockers:15:sam" |
| 40 | ``` |
| 41 | |
| 42 | Note what the builder did below: the **decision topic sorted to the front** even though it was |
| 43 | supplied second, every topic carries a desired outcome and an owner, and the closing actions-recap |
| 44 | slot is pinned to the end of the meeting. |
| 45 | |
| 46 | ```markdown |
| 47 | # Agenda — 45 minutes, 3 topics |
| 48 | |
| 49 | **Pre-read:** circulate the relevant doc(s) at least a day ahead. The meeting starts assuming the |
| 50 | pre-read was read — no recap slot for skippers. |
| 51 | |
| 52 | | # | Timebox | Topic | Desired outcome | Owner | |
| 53 | |---|---------|-------|-----------------|-------| |
| 54 | | 1 | 00–15 min (15 min) | Q3 pricing | Decide usage-based vs seat-based | maria | |
| 55 | | 2 | 15–20 min (5 min) | Metrics review | Inform team of the activation trend | alex | |
| 56 | | 3 | 20–35 min (15 min) | Launch risks | Discuss open launch blockers | sam | |
| 57 | | ✔ | 40–45 min (5 min) | **Actions recap** | Read every action aloud: owner + due date, or it is not an action | meeting owner | |
| 58 | |
| 59 | _5 min of slack before the recap — if topics finish early, end early. Nobody has ever complained |
| 60 | about a meeting ending early._ |
| 61 | ``` |
| 62 | |
| 63 | ## What refusal looks like |
| 64 | |
| 65 | Two inputs the builder will not accept, so you see them before you hit them: |
| 66 | |
| 67 | - **Empty desired outcome** (`--topic "Roadmap::10:sam"`) → exit 2: |
| 68 | `REFUSED (REFUSED-NO-OUTCOME): No desired outcome, no agenda slot. Topics refused: "Roadmap". Go get the outcome, then rebuild.` |
| 69 | - **Overflow** (topics totaling 50 min into `--length 45`) → exit 3: |
| 70 | `REFUSED (REFUSED-OVERFLOW): Timeboxes (50 min) + closing actions-recap buffer (5 min) = 55 min, but the meeting is 45 min — 10 min over. Cut a topic, shrink a timebox, or move an inform topic to the pre-read.` |
| 71 | |
| 72 | ## Step 3 — After the meeting |
| 73 | |
| 74 | Feed the raw notes to `action_item_extractor.py` and walk the flags — see |
| 75 | [`meeting_gate_worksheet.md`](meeting_gate_worksheet.md) for the fillable pre-meeting worksheet |
| 76 | that keeps the next meeting honest too. |
文件内容是平台检查时读出的文本,只供查看。平台不会运行包里的任何脚本或程序。

