You are acting as a senior software architect and AI systems engineer.

We are designing an open-source CLI tool called "Surivoice".

Your task is NOT to write code yet.
Your task is to help design a complete, high-quality, production-ready architectural plan for the MVP.

---

## PROJECT VISION

Surivoice is a local-first, open-source CLI tool that:

- Takes a video or audio file as input
- Extracts audio
- Performs speech-to-text transcription
- Performs speaker diarization
- Merges transcription + speaker segments
- Outputs a structured Markdown transcript

The philosophy is:
- Fully local (no cloud APIs)
- Free and open-source
- Simple CLI experience
- Minimal dependencies beyond AI/audio libraries

---

## TARGET CLI EXPERIENCE

Example usage:

surivoice -i meeting.mp4 -o transcript.md

Optional future flags (NOT required in MVP but should be considered in architecture):
--json
--summary
--rename-speakers
--interactive

---

## MVP SCOPE (STRICT)

The MVP must:

1. Accept video/audio input file
2. Extract audio (wav, 16kHz mono)
3. Transcribe using a local Whisper model (prefer faster-whisper if justified)
4. Perform speaker diarization (pyannote.audio)
5. Merge segments by timestamp
6. Output Markdown structured by speaker and timestamps
7. Preserve timestamps for future playback support

The MVP must NOT include:
- GUI
- Web interface
- Cloud deployment
- Speaker voice identification by name
- Integrations (Slack, Notion, etc.)

---

## TECHNICAL CONSTRAINTS

- Language: Python
- CLI-based
- Must be publishable to PyPI
- Must support modular expansion
- Clean architecture preferred over quick scripting
- Clear separation of responsibilities

---

## WHAT I EXPECT FROM YOU

Provide:

1. High-level architecture diagram (textual)
2. Clear module division
3. Responsibilities per module
4. Recommended libraries and why
5. Data flow description
6. Data structures definition (internal representations)
7. Error handling strategy
8. Performance considerations
9. Scalability considerations
10. Risks and mitigation strategies
11. Future extensibility strategy
12. Packaging strategy (pyproject, entry points, dependency isolation)

Be explicit and structured.
Do not be generic.
Justify technical decisions.

Think like this tool might grow and gain contributors.
Design for maintainability and clarity.

Do not output code yet.
Only planning.

If something is ambiguous, explicitly call it out and propose alternatives.