Make meeting lifecycle stateful

This commit is contained in:
2026-05-27 12:55:17 +02:00
parent d607b957bb
commit e85274829a
91 changed files with 4076 additions and 479 deletions
+9 -34
View File
@@ -34,45 +34,20 @@ The dictation words location SHALL point to a word-list artifact that speech rec
- **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.
Meeting Assistant SHALL link the note files generated for one meeting run through frontmatter.
The meeting note frontmatter SHALL include:
The meeting note frontmatter SHALL link to the transcript, assistant context, and summary notes.
- `start_time` as the meeting recording start timestamp
- `end_time` as the timestamp when transcript processing stops, empty while the meeting is active
- `attendees` as an array of display strings, where email is optional and may use a format such as `Mike <m.ike@ibm.com>`
- `projects` as an array because one meeting can cover multiple projects
- `transcript` as text containing a markdown link to the transcript note
- `assistant_context` as text containing a markdown link to the assistant context note
- `summary` as text containing a markdown link to the generated summary note once Meeting Assistant creates it
Generated artifact notes SHALL link only to the other notes from the same run and SHALL omit the frontmatter property that would reference themselves.
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
#### 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 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_time` to the same note frontmatter
- **AND** transcript and summary frontmatter copy the meeting note title, `start_time`, and `end_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
#### 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.