Public Access
24 lines
1.6 KiB
Markdown
24 lines
1.6 KiB
Markdown
# 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`.
|