Meeting Prep Briefer
This skill generates a structured per-meeting briefing document for busy managers and individual contributors. Given a daily schedule (pasted inline or read from a local file) and any available workspace context files (project notes, participant notes, previous meeting notes), it produces a brief for each meeting with participants, context, open questions, and a suggested agenda — entirely from local files, no external integrations required.
Input: Daily schedule (inline text or local file path) + workspace context files (auto-scanned).
Output: Structured markdown brief (inline response). Optionally saved to output/meeting-brief-YYYY-MM-DD.md on request.
Language Detection
Detect the user's language from their message:
- If Russian (or contains Cyrillic): respond in Russian
- If English (or other Latin-script language): respond in English
- If ambiguous: default to English
Instructions
Step 1: Parse Input
Check if the user provided an inline schedule (list of meetings in their message) or a file path.
- Inline: parse meetings directly from the message.
- File path: read the specified file from the workspace. If the file does not exist, return: "File not found:
{path}. Please check the path or paste the schedule directly."
If no schedule is provided at all, return: "Please paste your meeting schedule or provide a path to a schedule file (e.g., today.md)." Stop — do not generate output.
Parse the schedule into a list of meetings. Each meeting must have at minimum a time and a title. Participants are optional.
- Accepted formats:
10:00 — Team Sync, 10:00 Team Sync (Alice, Bob), 10:00 | Team Sync | Alice, Bob, or similar time + title patterns.
- If the schedule is completely unparseable (no recognisable time+title structure), return: "Could not parse meeting schedule. Please use a format like:
10:00 — Team Sync (Alice, Bob)." Stop.
Determine the brief date: use today's date unless the user specifies another date.
Step 2: Scan Workspace for Context
For each parsed meeting, search the workspace for relevant context files:
- Match files by: meeting title keywords, participant names, or project names appearing in the schedule.
- Look in: root workspace,
notes/, output/, input/, context/ folders.
- Accepted file types:
.md, .txt.
For each matched file, extract:
- Relevant headings and their content (limit to 150 words per file to keep briefs concise).
- Any open action items or questions found in the file.
If no matching files are found for a meeting: note "No context files found" for that meeting — do not skip the meeting.
Step 3: Assemble Briefs
For each meeting, build a section with four subsections:
Participants
- List names and roles if provided in the schedule.
- If no participants listed: note "No participants listed in schedule."
Context
- List 2–4 bullet points extracted from matched workspace files.
- Each bullet:
From \filename`: [key point]`.
- If no context files matched: "No context files found — add relevant notes to your workspace."
Open Questions
- Extract any open questions or action items from matched files.
- If none found: leave as an empty prompt line
*(none listed — add questions before the meeting)*.
Suggested Agenda
- Generate 2–4 agenda items based on the meeting title, participants, and context.
- Keep each item to one short phrase with a suggested time allocation.
Step 4: Output Brief
Assemble all meeting sections into a single markdown document:
- Header:
# Meeting Brief — YYYY-MM-DD
- Each meeting:
## HH:MM — Meeting Title followed by four subsections
- Meetings separated by
---
Display inline in the chat.
If the user says "save" or "save to file": write the brief to output/meeting-brief-YYYY-MM-DD.md and confirm the path.
Edge Cases
- No context files for a specific meeting: Produce the brief anyway; fill Context with placeholder message.
- Schedule has time + title only (no participants): Skip Participants section; add flag: "No participants listed — add names to schedule for richer brief."
- Multiple files match one meeting's keywords: Include all matched files as context sources; list each filename.
- User provides a past or future date: Use that date for the brief header and output filename.
- Very long meeting title (>60 chars): Truncate display title in the header to 60 chars; use full title in the section heading.
Negative Cases
- No schedule provided: Return usage message and stop. Do not generate partial output.
- File path not found: Return file-not-found message with the exact path. Do not guess alternate paths.
- Schedule unparseable: Return format hint and stop. Do not attempt to guess meeting times.
Output Format
# Meeting Brief — 2026-04-28
---
## 10:00 — Team Sync
**Participants:** Alice (PM), Bob (Eng), Carol (Design)
**Context:**
- From `project-notes.md`: Sprint 12 ends Friday; 3 open stories remain.
- From `alice-notes.md`: Concerns raised about API timeline dependency.
**Open Questions:**
- Is the API dependency resolved before Friday?
- Who owns the design handoff?
**Suggested Agenda:**
1. Sprint status check (5 min)
2. API dependency decision (10 min)
3. Next steps & owners (5 min)
---
## 14:00 — 1-on-1 with Bob
**Participants:** Bob (Eng)
**Context:**
- No context files found — add relevant notes to your workspace.
**Open Questions:**
*(none listed — add questions before the meeting)*
**Suggested Agenda:**
1. Check in on current blockers (10 min)
2. Career development update (10 min)
1---2name: meeting-prep-briefer3description: Generate a structured briefing document for each meeting of the day from local workspace files and a daily schedule — participants, context, and open questions in one brief. No integrations required. Triggers: 'meeting brief', 'prep my meetings', 'prepare for today's meetings', 'briefing for my calls today', 'бриф по встречам', 'подготовь встречи', 'бриф на встречи дня', 'что нужно знать перед встречами'.4---56# Meeting Prep Briefer78This skill generates a structured per-meeting briefing document for busy managers and individual contributors. Given a daily schedule (pasted inline or read from a local file) and any available workspace context files (project notes, participant notes, previous meeting notes), it produces a brief for each meeting with participants, context, open questions, and a suggested agenda — entirely from local files, no external integrations required.910**Input:** Daily schedule (inline text or local file path) + workspace context files (auto-scanned).1112**Output:** Structured markdown brief (inline response). Optionally saved to `output/meeting-brief-YYYY-MM-DD.md` on request.1314---1516## Language Detection1718Detect the user's language from their message:19- If Russian (or contains Cyrillic): respond in Russian20- If English (or other Latin-script language): respond in English21- If ambiguous: default to English2223---2425## Instructions2627### Step 1: Parse Input28291. Check if the user provided an inline schedule (list of meetings in their message) or a file path.30 - **Inline:** parse meetings directly from the message.31 - **File path:** read the specified file from the workspace. If the file does not exist, return: "File not found: `{path}`. Please check the path or paste the schedule directly."32332. If no schedule is provided at all, return: "Please paste your meeting schedule or provide a path to a schedule file (e.g., `today.md`)." Stop — do not generate output.34353. Parse the schedule into a list of meetings. Each meeting must have at minimum a time and a title. Participants are optional.36 - Accepted formats: `10:00 — Team Sync`, `10:00 Team Sync (Alice, Bob)`, `10:00 | Team Sync | Alice, Bob`, or similar time + title patterns.37 - If the schedule is completely unparseable (no recognisable time+title structure), return: "Could not parse meeting schedule. Please use a format like: `10:00 — Team Sync (Alice, Bob)`." Stop.38394. Determine the brief date: use today's date unless the user specifies another date.4041---4243### Step 2: Scan Workspace for Context44451. For each parsed meeting, search the workspace for relevant context files:46 - Match files by: meeting title keywords, participant names, or project names appearing in the schedule.47 - Look in: root workspace, `notes/`, `output/`, `input/`, `context/` folders.48 - Accepted file types: `.md`, `.txt`.49502. For each matched file, extract:51 - Relevant headings and their content (limit to 150 words per file to keep briefs concise).52 - Any open action items or questions found in the file.53543. If no matching files are found for a meeting: note "No context files found" for that meeting — do not skip the meeting.5556---5758### Step 3: Assemble Briefs5960For each meeting, build a section with four subsections:6162**Participants**63- List names and roles if provided in the schedule.64- If no participants listed: note "No participants listed in schedule."6566**Context**67- List 2–4 bullet points extracted from matched workspace files.68- Each bullet: `From \`filename\`: [key point]`.69- If no context files matched: "No context files found — add relevant notes to your workspace."7071**Open Questions**72- Extract any open questions or action items from matched files.73- If none found: leave as an empty prompt line `*(none listed — add questions before the meeting)*`.7475**Suggested Agenda**76- Generate 2–4 agenda items based on the meeting title, participants, and context.77- Keep each item to one short phrase with a suggested time allocation.7879---8081### Step 4: Output Brief82831. Assemble all meeting sections into a single markdown document:84 - Header: `# Meeting Brief — YYYY-MM-DD`85 - Each meeting: `## HH:MM — Meeting Title` followed by four subsections86 - Meetings separated by `---`87882. Display inline in the chat.89903. If the user says "save" or "save to file": write the brief to `output/meeting-brief-YYYY-MM-DD.md` and confirm the path.9192---9394## Edge Cases9596- **No context files for a specific meeting:** Produce the brief anyway; fill Context with placeholder message.97- **Schedule has time + title only (no participants):** Skip Participants section; add flag: "No participants listed — add names to schedule for richer brief."98- **Multiple files match one meeting's keywords:** Include all matched files as context sources; list each filename.99- **User provides a past or future date:** Use that date for the brief header and output filename.100- **Very long meeting title (>60 chars):** Truncate display title in the header to 60 chars; use full title in the section heading.101102---103104## Negative Cases105106- **No schedule provided:** Return usage message and stop. Do not generate partial output.107- **File path not found:** Return file-not-found message with the exact path. Do not guess alternate paths.108- **Schedule unparseable:** Return format hint and stop. Do not attempt to guess meeting times.109110---111112## Output Format113114```115# Meeting Brief — 2026-04-28116117---118119## 10:00 — Team Sync120121**Participants:** Alice (PM), Bob (Eng), Carol (Design)122123**Context:**124- From `project-notes.md`: Sprint 12 ends Friday; 3 open stories remain.125- From `alice-notes.md`: Concerns raised about API timeline dependency.126127**Open Questions:**128- Is the API dependency resolved before Friday?129- Who owns the design handoff?130131**Suggested Agenda:**1321. Sprint status check (5 min)1332. API dependency decision (10 min)1343. Next steps & owners (5 min)135136---137138## 14:00 — 1-on-1 with Bob139140**Participants:** Bob (Eng)141142**Context:**143- No context files found — add relevant notes to your workspace.144145**Open Questions:**146*(none listed — add questions before the meeting)*147148**Suggested Agenda:**1491. Check in on current blockers (10 min)1502. Career development update (10 min)151```