Files
meeting-assistant/openspec/changes/resilient-transcript-workflow/specs/meeting-session/spec.md
T
codex b774ccc375
PR and Push Build/Test / build-and-test (push) Successful in 18m41s
Add resilient Azure offline transcription backlog
2026-06-15 17:26:34 +02:00

5.3 KiB

MODIFIED Requirements

Requirement: Meeting automation rules support lifecycle triggers

Meeting Assistant SHALL support rule triggers for created, state_transition, speaker_identified, and transcript_line.

A state_transition trigger MAY filter by from, to, or both state values.

A speaker_identified trigger MAY filter by speaker name.

A transcript_line trigger MAY filter by speaker name.

Workflow rule execution SHALL log each triggered rule with its rule name and event type.

Workflow rule execution SHALL log rule failures with the rule name and event type.

Scenario: State transition rule matches from and to

  • GIVEN a configured rule that triggers on a state transition from collecting metadata to transcribing
  • WHEN Meeting Assistant transitions that meeting from collecting metadata to transcribing
  • THEN it applies the rule steps

Scenario: Speaker identified rule filters by name

  • GIVEN a configured rule that triggers when speaker Ada is identified
  • WHEN Meeting Assistant identifies speaker Grace
  • THEN it does not apply the rule
  • WHEN Meeting Assistant identifies speaker Ada
  • THEN it applies the rule steps

Scenario: Transcript line rule rewrites masked profanity after durable append

  • GIVEN a configured rule that triggers on transcript line writes and sets transcript.line by replacing ***** with [redacted]
  • WHEN Meeting Assistant writes a transcript line for speaker Guest-1 containing *****
  • THEN Meeting Assistant first appends the original formatted line to the transcript file
  • AND rewrites that written line to contain [redacted]
  • AND the final written transcript line does not contain *****

Scenario: Transcript line workflow failure keeps transcript writing

  • GIVEN a configured transcript line workflow rule fails while processing a transcript line
  • WHEN Meeting Assistant receives that live transcript segment
  • THEN Meeting Assistant keeps the original formatted line in the transcript file
  • AND logs the workflow rule failure
  • AND continues processing later transcript segments

Requirement: Meeting automation rules support conditions and steps

Meeting Assistant SHALL support rule conditions using an expression engine.

Rules SHALL support nested and, or, and not condition groups.

Step values SHALL support Razor syntax against the current meeting event model.

Rendered step values SHALL be treated as plain UTF-8 text for markdown artifacts and SHALL NOT persist Razor HTML entity encoding.

Step values SHALL treat @ characters inside valid email address tokens as literal text rather than Razor transitions.

Meeting Assistant SHALL expose the formatted transcript line and transcript speaker to transcript_line rule conditions and Razor step templates.

Meeting Assistant SHALL support these initial rule steps:

  • add_attendee
  • remove_attendee
  • set_property
  • add_context
  • add_project

The set_property step SHALL support setting transcript.line during transcript_line events.

Scenario: Nested conditions choose a matching rule

  • GIVEN a configured rule with nested and, or, and not conditions over meeting title, attendees, and event data
  • WHEN the condition evaluates to true
  • THEN Meeting Assistant applies the rule
  • WHEN the condition evaluates to false
  • THEN Meeting Assistant skips the rule

Scenario: Templated context mentions identified speaker

  • GIVEN a configured speaker_identified rule with an add_context step using Razor syntax
  • WHEN Meeting Assistant identifies matching speaker Ada
  • THEN it appends rendered context text containing Ada to the assistant context note

Scenario: Email addresses do not trigger Razor templating

  • GIVEN a configured rule step value containing Support@contoso.com
  • WHEN the rule runs
  • THEN Meeting Assistant preserves the email address as literal text

Scenario: Email addresses can appear beside Razor templating

  • GIVEN a configured rule step value containing both Support@contoso.com and a Razor expression
  • WHEN the rule runs
  • THEN Meeting Assistant renders the Razor expression and preserves the email address as literal text

Scenario: Razor-rendered transcript line preserves UTF-8 text

  • GIVEN a configured transcript_line rule uses Razor to replace part of a transcript line containing heißt, Schimpfwörter, and nächstes
  • WHEN the rule changes transcript.line
  • THEN the resulting transcript line contains the original UTF-8 characters
  • AND does not contain HTML entities such as ß, ö, or ä

Scenario: Rule can clean a meeting title

  • GIVEN a configured state-transition rule that matches a title containing a configured marker
  • WHEN the rule runs
  • THEN Meeting Assistant can update the meeting title through set_property

Scenario: Transcript line conditions can use the written line and speaker

  • GIVEN a configured transcript_line rule with conditions over transcript.line and transcript.speaker
  • WHEN Meeting Assistant writes a transcript line that matches both conditions
  • THEN Meeting Assistant applies the rule steps after the original formatted line is durably appended
  • AND rewrites the written line if a rule changes transcript.line