Add transcript line workflow rules
PR and Push Build/Test / build-and-test (push) Failing after 13m27s

This commit is contained in:
2026-06-03 11:24:11 +02:00
parent 50daa88389
commit 40853115c5
20 changed files with 627 additions and 70 deletions
@@ -0,0 +1,23 @@
# Design: Transcript write workflow rules
## Approach
Meeting Assistant should keep transcript redaction policy in the local workflow rules file instead of hard-coding it in the Azure Speech provider. The provider still emits the text it receives from Azure, and the persistence path asks the workflow engine to transform the formatted transcript line before writing it.
The workflow engine will add a `transcript_line` trigger. The event carries the formatted line without a trailing newline and the effective speaker name used in that line. Conditions receive `transcript.line` and `transcript.speaker`; Razor templates receive `Model.Transcript.Line` and `Model.Transcript.Speaker`.
The existing `set_property` step is extended with `transcript.line`. This keeps the action surface small while enabling replacements such as:
```yaml
steps:
- uses: set_property
property: transcript.line
value: '@Model.Transcript.Line.Replace("*****", "[redacted]")'
```
## Write Path
Live transcript appends and finished transcript rewrites both format `TranscriptionSegment` values into single transcript lines, pass each line through the workflow engine, and then write the transformed lines. This prevents a final diarization rewrite from reintroducing untransformed masked text.
## Constraints
- Transcript line rules do not mutate meeting-note frontmatter unless they also include existing meeting-note steps.
- The transcript line model represents one formatted line, not the whole transcript file.
- The local rules file remains ignored by git; repository documentation covers the rule shape, while the user-specific redaction rule lives in `meeting-rules.local.yaml`.