# 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 link the note files generated for one meeting run through frontmatter. The meeting note frontmatter SHALL link to the transcript, assistant context, and summary notes. Generated artifact notes SHALL link only to the other notes from the same run and SHALL omit the frontmatter property that would reference themselves. #### Scenario: Meeting note links to generated artifacts - **WHEN** Meeting Assistant creates a meeting note - **THEN** the note frontmatter links to the configured transcript, assistant context, and summary note locations #### Scenario: Generated artifacts do not self-reference - **WHEN** Meeting Assistant writes transcript, assistant context, or summary artifact frontmatter - **THEN** the artifact frontmatter links to the other run notes - **AND** the artifact frontmatter omits the property for the artifact's own note type ### 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_end` into 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_end` from assistant-context frontmatter