--- id: DIS-105 status: backlog phase: 1 priority: p0 labels: [phase:1, type:feat, priority:p0] branch: phase-1/split-for-discord assignee: null started: null pr: null merged: null --- # DIS-105: `splitForDiscord` — Codeblock-aware Message-Splitting ## Ziel Antworten > 1900 Zeichen werden korrekt aufgeteilt, ohne Codeblöcke zu zerreißen. Fences werden am Split geschlossen und im nächsten Chunk wieder geöffnet. ## Kontext → `docs/development-plan.md` §2.4, Phase 1 Task 5. ## Scope - **In**: `src/discord/split.ts` mit `splitForDiscord(text, limit = 1900): string[]` · Fence-Erkennung (` ``` `), Sprach-Tag wird im neuen Chunk beibehalten · Router nutzt Funktion und sendet Chunks sequenziell - **Out**: Streaming-Edit (Phase 5) ## Definition of Done - [ ] Unit-Test `tests/unit/split-for-discord.test.ts` deckt: kurze Nachricht (kein Split), genau am Limit, Codeblock mitten im Split, verschachtelter Fence, leerer Input - [ ] Kein Chunk überschreitet 2000 Zeichen - [ ] `npm run build && npm test` grün ## Dateien (erwartet) - `src/discord/split.ts` - `src/router.ts` - `tests/unit/split-for-discord.test.ts` ## Abhängigkeiten Blockiert durch: **DIS-101**. ## Spec → `docs/backlog.md` #DIS-105