7.0 KiB
meeting-session Specification
Purpose
TBD - created by archiving change define-meeting-assistant-v1. Update Purpose after archive.
Requirements
Requirement: Meeting Assistant creates a note before transcription
Meeting Assistant SHALL create an Obsidian markdown note for a meeting session before transcription starts.
The note SHALL be the durable anchor for meeting metadata, user notes, assistant-discovered context, transcript references, summaries, decisions, and next steps.
Scenario: Session starts
- WHEN the user starts a new meeting session
- THEN Meeting Assistant creates a markdown note in the configured meetings folder before starting transcription
Scenario: Recording starts from hotkey
- WHEN the user presses the recording hotkey while recording is inactive
- THEN Meeting Assistant creates the transcript file, creates the meeting note with links to the transcript, assistant context, and summary notes, and opens the meeting note through an
obsidian://system command
Scenario: User adds context before transcription
- WHEN the note exists before transcription starts
- THEN the user can add attendees, project context, and other notes to that file
Requirement: Vault locations are configurable
Meeting Assistant SHALL expose separate configuration settings for transcript files, meeting notes, assistant context, generated summaries, project knowledge, and dictation words.
The dictation words location SHALL point to a word-list artifact that speech recognition pipelines MAY use as vocabulary hints when supported.
Scenario: Transcript and note locations are configured separately
- WHEN Meeting Assistant starts with configured vault locations
- THEN transcripts, meeting notes, assistant context, generated summaries, project knowledge, and dictation words each have an independently configured path
Scenario: Provider supports dictation words
- WHEN the configured speech recognition pipeline supports vocabulary hints
- THEN Meeting Assistant can provide words from the configured dictation words path without changing the other vault locations
Requirement: Meeting note template is coded and round-trippable
Meeting Assistant SHALL own a coded meeting note template and a store that can save and read meeting notes.
The meeting note frontmatter SHALL include:
start_timeas the meeting recording start timestampend_timeas the timestamp when transcript processing stops, empty while the meeting is activeattendeesas an array of display strings, where email is optional and may use a format such asMike <m.ike@ibm.com>projectsas an array because one meeting can cover multiple projectstranscriptas text containing a markdown link to the transcript noteassistant_contextas text containing a markdown link to the assistant context notesummaryas text containing a markdown link to the generated summary note once Meeting Assistant creates it
The user notes SHALL be the markdown body. Decisions and next steps SHALL NOT be required as frontmatter fields.
Scenario: Meeting note is saved
- WHEN Meeting Assistant saves a meeting note
- THEN it writes the coded frontmatter template and the user notes body to a markdown file in the configured meeting notes folder
Scenario: Meeting note links generated artifacts
- WHEN Meeting Assistant creates a meeting note for a new recording
- THEN the note frontmatter links to the configured transcript, assistant context, and summary note locations
Scenario: Generated artifacts link back to each other
- WHEN Meeting Assistant creates transcript, assistant context, and summary artifacts
- THEN those artifacts use frontmatter links for the meeting note, transcript note, assistant context note, and summary note where applicable
Scenario: Meeting note records session times
- WHEN Meeting Assistant creates a meeting note for a new recording
- THEN the note frontmatter contains
start_time - AND when transcript processing stops, Meeting Assistant writes
end_timeto the same note frontmatter - AND transcript and summary frontmatter copy the meeting note title,
start_time, andend_time
Scenario: Meeting note is read
- WHEN Meeting Assistant reads a meeting note created from the coded template
- THEN it returns the frontmatter fields and user notes body without losing attendees, projects, transcript link, assistant context link, or summary
Scenario: Meeting note frontmatter is updated
- WHEN Meeting Assistant reads a meeting note, changes frontmatter, and writes the note back
- THEN the existing user-authored markdown body remains unchanged
Requirement: Meeting notes preserve user-authored content
Meeting Assistant SHALL preserve user-authored meeting notes and include them as input when generating summaries, decisions, and next steps.
Scenario: User writes notes during the meeting
- WHEN the user updates the meeting note while the meeting is active
- THEN Meeting Assistant keeps that content and incorporates it into generated meeting outputs
Requirement: Meeting sessions are platform independent
Meeting Assistant SHALL support meeting sessions that do not originate from Teams, Zoom, or any other meeting software API.
Meeting software integrations MAY augment the meeting experience, but they SHALL NOT be required for the primary meeting capture, transcription, or summary flow.
Scenario: In-person meeting is captured
- WHEN the user starts transcription for an in-person meeting
- THEN Meeting Assistant captures and processes the meeting without requiring a meeting platform integration
Requirement: Windows Outlook enrichment is optional
Meeting Assistant SHALL gate Outlook Classic COM enrichment behind the Windows compilation target.
When the Windows build starts a meeting and Outlook Classic has exactly one current Teams appointment, Meeting Assistant SHALL copy the appointment title and attendees to the meeting note and copy the appointment agenda and scheduled end time to the assistant-context frontmatter.
The agenda SHALL be extracted from the appointment body content before the Teams join separator or Teams join text.
Scenario: Current Teams appointment enriches meeting artifacts
- WHEN a Windows build starts a meeting while Outlook Classic exposes exactly one current Teams appointment
- THEN Meeting Assistant uses the appointment subject as the meeting title
- AND writes the appointment attendees into meeting note frontmatter
- AND writes the appointment agenda into assistant-context frontmatter
- AND writes the appointment end time as
scheduled_endinto assistant-context frontmatter
Scenario: Outlook is unavailable or ambiguous
- WHEN Outlook Classic is unavailable or more than one current Teams appointment is found
- THEN Meeting Assistant starts the recording with the default generated meeting title and empty agenda
- AND omits
scheduled_endfrom assistant-context frontmatter