
meeting-notes
Turn Ane's meetings, 1-1s and document review cycles into structured IPPF-branded meeting notes from any capture method (dictation, notebook photo or scan, recording, Teams transcript, margin comments/marginalia in a .docx), and prepare the next one. Use for meeting notes, minutes, 1-1 debrief or prep, or extracting decisions from a commented document. Not for importing typed claude.ai sessions (capture-desktop), options papers (decision-memo), personal reflection (journal-reflection), daily planning (daily-brief), research video analysis (video-content-analysis), or editing the reviewed document itself (office-review-pass; tor-procurement finalise for a ToR).
- Installs
- 287
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/gasserane/personal-skills --skill meeting-notes- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads meeting-notes automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Meeting Notes
One skill for the full 1-1 and meeting-note lifecycle: prep → meeting → dictated or photographed notes → shareable learning document → next prep. The modes share one file convention, so each meeting's outputs become the next meeting's inputs.
Not every meeting is a meeting. A ToR or implementation-plan review cycle settles decisions in the margins of a document, and those need the same note, the same action tables and the same tracker row as a call would. That is the marginalia mode.
Mode selection
| Signal from Ane | Mode | Read |
|---|---|---|
| "I want to dictate", "debrief my meeting/1-1", spoken-style topic summaries | Dictated notes | references/dictation-mode.md |
| "prep my 1-1", "prepare my meeting with [manager]", "what do I owe my manager" | 1-1 prep | references/prep-mode.md |
| Image or scan paths + "draft notes from this photo/scan", handwritten notes | Handwritten notes (photo/scan) | references/photo-mode.md |
| A voice/video recording file, or a transcript (Teams .vtt/.docx, txt) | Recordings and transcripts | references/transcript-mode.md |
| A reviewed .docx whose decisions sit in comments: "the decisions are in the comments", "marginalia", "turn the review comments into notes" | Document marginalia | references/marginalia-mode.md |
| "learning document", "shareable summary of this meeting" + a finished note | Learning document | references/learning-document-mode.md |
Read only the reference file for the selected mode. If the mode is ambiguous, ask in one line; do not guess between prep and notes. Any other capture method (chat log, email thread as minutes, whiteboard photo) normalises to text and then follows references/transcript-mode.md from step 2, so every way a meeting gets captured has a route into the same note structure.
Shared rules (all modes)
Storage. Recurring 1-1 notes and preps live in C:/Users/AGasser/OneDrive/1. Ane's PROJECTS/Ane Plans/. Project-meeting notes live in the project folder Ane names. Naming: Meeting note - Ane-<counterpart> - YYYY-MM-DD.md and 1-1 prep - Ane-<counterpart> - YYYY-MM-DD.md. The .md is the source of truth; the .docx is generated from it, never dual-edited.
Factual reliability. Dictation and handwriting garble names, numbers and dates first (this is why the interview exists). Never guess or "correct" a name from a pattern: confirm it with Ane or verify it against a context document. Known-correct facts come from ~/.claude/CLAUDE.md, memory, or the project folder; everything unverifiable gets flagged ⚠️ and asked.
Milestone writes. Draft and correct in conversation; write files only at confirmed milestones (all topics confirmed, prep sheet approved). One write, not one per message.
Note structure (the proven template, settled 2026-07-16):
- Header: date, participants, type line, topic list with stable tags (T1, T2, ...). Keep tags stable across notes so T1 always means the same workstream for a given counterpart. Write
**Participants:**as a plain comma-separated list of names with no commas inside parentheses:update_tracker.pyderives the counterpart by splitting that line on commas and taking the first non-Ane entry, so a role gloss likeAne Gasser (IPPF EN, technical lead), <counterpart> ...parses the counterpart astechnicaland writes it into every action, decision and pending row. Put role glosses on a separate**Roles:**line. ## Next actions at a glance: two deadline-sorted tables (Deadline | Topic | Action), one for Ane, one for the counterpart ("to chase"). Deadline-sorted because "what do I owe today" is the question the note gets reopened for. Actions owned by third parties go into the table of whoever chases them (Ane or the counterpart), with the actual owner named in the Action cell.- Per topic
## T<n> - <name>, each with### Key takeaways(max 5 synthetic bullets),### Decisions(confirmed only),### Next steps(Ane / counterpart, with deadlines),### Open / parked(each item with the trigger date or event that should resurface it). Omit### Open / parkedentirely when a topic has nothing parked. Never write a placeholder like "Nothing parked." —update_tracker.pyparses every bullet under that heading as a real pending item, so a placeholder becomes a row in the Pending tab that says nothing and cannot be actioned. Proven 2026-09-08: two placeholder bullets became two Pending rows, and because the updater only appends, clearing them meant deleting rows and resizing the table ref by hand. - Footer: preparation provenance with AI-support disclosure.
Register and voice. Tier 1 working record: plain English, active voice, sentences under 25 words, no em-dashes anywhere in the output, numbers and dates explicit. Decisions are numbered so they can be cited later ("T3 decision 2, 16 Jul").
Word output. Meeting notes use the letterhead template, not the general one (Ane's decision, 2026-09-08): the logo and address block appear on page 1 only, and pages 2 onward carry a clean header. Generate the .docx from the .md via ane_package.reporting.word_export.write_word_report(template="letterhead") when the note shape fits its layout; for table-heavy notes build directly with python-docx using ane_package.reporting.brand.IPPF_FORMAT_TEMPLATE constants (Barlow Medium, dream #00313C headings-on-red #EB3300 titles, dream header rows). Never hard-code off-brand colours or fonts.
When building directly, mirror write_word_report's own letterhead branch exactly, in this order: _open_branded_base(), sections[0].different_first_page_header_footer = True, _add_pillar_footer(), _restrict_header_to_first_page(), _ensure_brand_styles(). Do not call _apply_a4_portrait (the base already holds page setup) and do not call _add_logo_header (the base already carries the logo in its default header, so adding one stamps a second logo and leaves the address block repeating on every page). Verify by reopening the file: w:titlePg present, the first-page header holding the images, and the default header holding none.
Three gotchas, each proven by a failed build:
- The
IPPF_FORMAT_TEMPLATEcolour constants carry a leading#, which is invalid inside OOXML colour attributes (w:shdfill,w:color) — Word silently drops the shading (2026-09-03). Strip the#before writing any raw XML colour value;word_export._hex_to_rgbalready handles it for run colours. - The stripped letterhead base carries no built-in Word styles, so
table.style = "Table Grid"raisesKeyError: "no style with name 'Table Grid'"(2026-09-08). This is the same trapword_export._add_bulletdocuments forList Bullet, and it hits every table-heavy note, which is the path this rule prescribes. Draw gridlines by appending aw:tblBorderselement totable._tbl.tblPrinstead of assigning a style. - Long heredocs fail in Bash because the note folder path contains an apostrophe (
1. Ane's PROJECTS) (2026-09-08). Drive the write from a Python script held outside OneDrive, which the OneDrive write-and-commit rule wants anyway.
Edit preservation. Apply mel_wiki/wiki/concepts/edit-preservation-protocol.md when target file exists. In particular: once Ane hand-edits a generated .docx, that .docx becomes authoritative; subsequent changes are targeted python-docx edits, never regeneration from the .md.
Privacy. Meeting notes are personal working records: names may appear in them. Anything shareable (the learning document, or a note Ane says she will send) follows summary-anonymisation: roles and organisation types, not names, and internal analysis sections dropped. Never quote 5 JURNAL vault content.
Centralised action tracker. Every confirmed note also feeds one Excel workbook (Ane Plans/Meeting actions tracker.xlsx): one tab per person for actions with deadline and status, a Decisions log, and a Pending tab for parked items. Run scripts/update_tracker.py as the last step of any note-producing mode; it only appends (stable IDs, idempotent), so Ane's manual Status and Progress edits are never touched. Details: references/action-tracker.md. Prep mode reads this tracker for its status pass; the tracker's Status column beats the older note text.
Memory close-out. After a note is confirmed, offer to persist durable project facts (confirmed decisions, changed budgets, new deadlines) to auto-memory, updating existing project memories rather than duplicating. The note captures the meeting; memory carries what future sessions must know.
FAQ
What does the meeting-notes skill do?
Turn Ane's meetings, 1-1s and document review cycles into structured IPPF-branded meeting notes from any capture method (dictation, notebook photo or scan, recording, Teams transcript, margin comments/marginalia in a .docx), and prepare the next one. Use for meeting notes, minutes, 1-1 debrief or prep, or extracting decisions from a commented document. Not for importing typed claude.ai sessions (capture-desktop), options papers (decision-memo), personal reflection (journal-reflection), daily planning (daily-brief), research video analysis (video-content-analysis), or editing the reviewed document itself (office-review-pass; tor-procurement finalise for a ToR).
How do I install meeting-notes?
Run npx skills add https://github.com/gasserane/personal-skills --skill meeting-notes in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/meeting-notes/ (personal) or .claude/skills/meeting-notes/ (project).
Which AI agents can use meeting-notes?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is meeting-notes safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains meeting-notes?
It is published by gasserane in gasserane/personal-skills. It has 287 recorded installs.
More from gasserane/personal-skills
journal-reflection
gasserane/personal-skills
Guide Ane through structured reflection at end of day, end of week, after a decision, or after new learning material, producing Obsidian-compatible markdown and writing to the vault journal when the path is reachable. Use on 'journal', 'reflect on today', 'weekly review', 'after-action review', or asks that reference writing to the Obsidian vault. For a quick 4-line post-deliverable capture use /learned instead.
evidence-synthesis
gasserane/personal-skills
Conduct a rigorous rapid evidence assessment or systematic-lite literature review for MEL/SRHR questions. Use when Ane asks for "evidence review", "literature review", "evidence synthesis", "REA", "what does the evidence say", "what do we know about", or similar. Produces a structured brief with question framing, method, findings by theme, confidence grading, and implications for programme or evaluation design. Does not invent citations.
daily-brief
gasserane/personal-skills
Produce a scannable morning briefing for Ane (Senior MEL/SRHR Specialist at IPPF). Use when the user asks for "daily brief", "morning briefing", "start of day", "what's on today", "plan my day", or similar. Assembles today's priority, calendar, overdue items, pending decisions, and an energy check. Operates on user-provided inputs by default; richer when calendar/email MCP servers are connected.
decision-memo
gasserane/personal-skills
Draft a structured decision memo for Ane. Use when the user asks for a "decision memo", "decision doc", "options paper", "recommendation brief", or equivalent. Produces a scannable document with context, options, recommendation, risks, and reversibility. Applies Ane's CLAUDE.md writing style automatically.
video-content-analysis
gasserane/personal-skills
Convert FGD/webinar/SBCC video files into a structured artefact pack (transcript, frames, manifest, Tier 1 BLUF summary) the existing MEL specialists can consume. Use when Ane asks to "analyse a video", "transcribe a focus group", "process a webinar recording", "summarise a meeting recording", or runs /analyze-video . Tiered transcription (local Whisper for sensitive; M365 Stream for internal/public). Privacy + consent validated by construction. Per-run feedback prompt feeds the self-improvement loop.
power-bi-build
gasserane/personal-skills
Build IPPF-branded Power BI artefacts from analytical input. Use when Ane asks to build, scaffold, or update a Power BI dashboard, semantic model, DAX measures, or .pbip project. Applies IPPF Visual Identity 2025 brand, MEL-standard DAX measures, and three standard page recipes (indicator dashboard, equity disaggregation, methodology card). Requires the pbi CLI (pbi-cli-tool, command name pbi) installed and Power BI Desktop running with a .pbip open.
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.