3.8 KiB
ADR 0011: Use Meeting Lab as the MVP Processing Backend
Status
Accepted
Supersedes ADR 0002 and amends ADRs 0001 and 0003.
Context
Meeting Lab experiments have validated a practical local pipeline for turning
a recorded meeting into an editable protocol. Earlier Meeting Assistant plans
selected faster-whisper, treated diarization as required and described a
separate knowledge-extraction stage as part of the primary pipeline. Work on an
old feature branch also proposed mandatory fixed five-minute audio chunks and
chunk-oriented storage.
The validated backend now has a reusable Python API, optional diarization and a direct full-transcript protocol path. The product boundary must keep backend processing in Meeting Lab and user interaction in Meeting Assistant.
Decision
Meeting Lab is the reusable processing backend and experimental engine. Meeting Assistant is the user-facing application and calls Meeting Lab through its Python API rather than launching its CLI as a subprocess.
The MVP processing flow is:
Source audio
-> FFmpeg preparation (mono, 16 kHz PCM WAV)
-> whisper.cpp transcription (large-v3-turbo)
-> optional pyannote.audio Community-1 diarization
-> direct full-transcript protocol generation
-> human review and editing
The productive path does not require fixed five-minute audio chunks. Internal streaming or segmentation remains an implementation detail of Meeting Lab and must not define Meeting Assistant's domain or storage model.
Meeting Assistant integrates with these public Meeting Lab interfaces:
MvpMeetingConfigMvpRunResultrun_mvp_meeting(...)- stage-based progress events:
preparing,transcription,diarization,protocol_generation,completedandfailed
Progress percentages are displayed only when the backend reports real measurable progress.
MeetingContext is the structured input containing meeting metadata and
participants. It may contain explicitly confirmed SPEAKER_XX -> participant_id
mappings. Such mappings are authoritative only when confirmed by the user.
The system must not infer speaker names automatically.
The preferred local engines are:
whisper.cppwithlarge-v3-turbofor transcriptionpyannote.audioCommunity-1 for optional diarization
GPU acceleration is optional. Vulkan transcription and PyTorch/ROCm diarization are validated acceleration paths on North's AMD RX 9070. CPU execution remains the compatibility fallback.
The direct full-transcript protocol path is the practical MVP direction.
qwen3.8:27B has produced strong readability and contextual synthesis, while
qwen3.6:35B-A3B has sometimes behaved more conservatively. Dual-model and
diarization-assisted hard-fact experiments have not established sufficiently
reliable attribution gains to justify mandatory MVP complexity. Model choice
remains backend configuration, and human review is required.
Meeting Assistant owns the GUI, structured context editor, participant and speaker-mapping controls, progress presentation, protocol editor and export. Meeting Lab owns audio preparation, transcription, diarization, orchestration and protocol-generation logic.
The product should ultimately provide a detailed contextual protocol and a shorter participant/distribution version. The shorter version may follow the first GUI milestone.
Consequences
- ADR 0002's
faster-whisperselection is no longer current. - Fixed-duration chunking and chunk-centric storage are not MVP requirements.
- Diarization and GPU acceleration remain optional.
- The Meeting Lab CLI remains useful for command-line operation but is not the application integration boundary.
- Meeting Context is created through the future GUI; users are not expected to hand-write YAML.
- Backend experiments can evolve without moving processing logic into the GUI.
- Protocols remain AI-assisted outputs that require human review.