## MODIFIED Requirements ### Requirement: Meeting automation rules support lifecycle triggers Meeting Assistant SHALL support rule triggers for `created`, `state_transition`, `speaker_identified`, `transcript_line`, and `attendee_added`. An `attendee_added` trigger MAY filter by `equals`, `contains`, or `regex` against the attendee value being added. `equals` and `contains` filters SHALL match case-insensitively. Meeting Assistant SHALL apply attendee-added transformations before storing attendees added from meeting metadata, accepted recording-prompt metadata, workflow `add_attendee` steps, screenshot OCR, speaker identity updates, and summarizer add-attendee tools. #### Scenario: Attendee added rule filters and transforms a metadata attendee - **GIVEN** a configured rule that triggers on added attendees containing `@contoso.com` - **AND** the rule sets `attendee.name` to a display name derived from the added attendee - **WHEN** Meeting Assistant adds attendee `Ada Lovelace ` from meeting metadata - **THEN** the stored meeting attendee is the transformed attendee name - **AND** the original attendee string is not stored ### Requirement: Meeting automation rules support conditions and steps Meeting Assistant SHALL expose the added attendee name to `attendee_added` rule conditions and Razor step templates as `attendee.name`. The `set_property` step SHALL support setting `attendee.name` during `attendee_added` events. Rules with an `attendee_added` trigger SHALL be limited to transforming `attendee.name` with `set_property`. Direct meeting note file writes SHALL NOT emit `attendee_added` or transform attendee values. #### Scenario: Attendee added rules can use regex and Razor - **GIVEN** a configured `attendee_added` rule with a regex filter over the added attendee - **WHEN** Meeting Assistant adds an attendee matching the regex - **THEN** the rule can set `attendee.name` with a Razor template using `Model.Attendee.Name`