disclaw/tasks/EPICS.md

131 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DisClaw — Epics (Phase 26+)
> Diese Epics werden am **Anfang jeder Phase** in granulare Issues verfeinert (analog zu Phase 0/1 im Backlog).
> Bis dahin ist der Status `locked` — kein Branch, keine Entwicklung.
> Freigabe durch explizite Entscheidung des Users nach Phasen-Abschluss.
---
## Phase 2 — Context-Effizienz (`--resume`)
Voraussetzung: Phase 0 + Phase 1 vollständig gemergt. `docs/cli-feature-probe.md` ausgeführt und `--resume`-Verhalten bestätigt.
### DIS-EP-201
**DB-Migration + `SessionStore`-Methoden**
Neue Spalte `session_id` in `workspaces`-Tabelle. `SessionStore`-Klasse mit `get/set/clear`-Methoden.
Branch-Pattern wenn verfeinert: `phase-2/session-store`
### DIS-EP-202
**Runner-Integration `--resume` mit DB-Fallback**
`runner.ts` hängt `--resume <id>` an wenn `session_id` vorhanden. Fallback: strukturierte DB-Rehydrierung mit role-getaggten Turns. ID wird nach jedem Run aus JSON top-level gelesen und in DB aktualisiert.
Branch-Pattern: `phase-2/runner-resume`
### DIS-EP-203
**Usage-Metriken Logging + `agent_runs`-Tabelle**
Cache-Hit-Statistiken aus CLI-Output extrahieren (falls verfügbar). `agent_runs`-Tabelle für Token-Tracking.
Branch-Pattern: `phase-2/usage-metrics`
### DIS-EP-204
**Integration-Tests Session-Resume + Fork-Case**
Tests die `--resume`-Flow end-to-end verifizieren: erfolgreicher Resume, Session nicht gefunden (Fallback), Fork-Case (neue ID nach Resume).
Branch-Pattern: `phase-2/session-tests`
---
## Phase 3 — UX-Feinschliff
Voraussetzung: Phase 2 abgeschlossen.
### DIS-EP-301
**Typing-Refresh 8s + `sendResponse`-Helper + Attachment-Fallback**
Bot zeigt „tippt…" an solange Claude arbeitet, refresht alle 8s. `sendResponse(channel, text)`-Helper kapselt Split + Sanitize + Send.
Branch-Pattern: `phase-3/typing-send-helper`
### DIS-EP-302
**Attachment-Inbox für eingehende Discord-Bilder**
Bilder aus Discord-Attachments werden in einen tmp-Ordner des Workspace-Agents gespeichert und via `@path/to/file.png`-Syntax in den Prompt injiziert.
Branch-Pattern: `phase-3/attachment-inbox`
### DIS-EP-303
**Input-Limit + User-Feedback-Reactions**
Nachrichten > konfigurierbares Limit werden abgewiesen. Reaction-Feedback: 👀 (verarbeitung), ✅ (erfolg), ❌ (fehler), ⚠️ (timeout).
Branch-Pattern: `phase-3/input-limit-reactions`
### DIS-EP-304
**Unit-Tests `sendResponse` + Attachment-Inbox**
Vollständige Unit-Test-Abdeckung für Phase-3-Komponenten.
Branch-Pattern: `phase-3/ux-tests`
---
## Phase 4 — Skills und Permissions (Profile)
Voraussetzung: Phase 3 abgeschlossen.
### DIS-EP-401
**Profile-Registry-Grundgerüst**
`src/agent/profiles/registry.ts` mit `ProfileRegistry`-Interface und Lade-Mechanismus aus `src/agent/profiles/*.ts`.
Branch-Pattern: `phase-4/profile-registry`
### DIS-EP-402
**Fünf Profile: developer, researcher, writer, ops, sandboxed**
Konkrete Profile mit je angepasstem `.claude/settings.json`-Template und CLAUDE.md-Abschnitt.
Branch-Pattern: `phase-4/profiles-builtin`
### DIS-EP-403
**`/new-agent profile:<name>` Option**
`/new-agent name:x role:y profile:developer` nutzt das Profile-Template statt des Default.
Branch-Pattern: `phase-4/new-agent-profile-option`
### DIS-EP-404
**PreToolUse-Hook `guard-tool.cjs` + Audit-Log**
Node.js-Script das als Hook vor Tool-Calls ausgeführt wird. Prüft gegen Deny-Liste, schreibt Audit-Log.
Branch-Pattern: `phase-4/pretooluse-hook`
### DIS-EP-405
**Integration-Tests Hook-Guard + Profile-Permissions**
Tests für Hook-Script und Profile-Settings-Rendering.
Branch-Pattern: `phase-4/profile-tests`
---
## Phase 5 — Streaming
Voraussetzung: Phase 4 abgeschlossen.
### DIS-EP-501
**`runAgentStream()` mit `--output-format stream-json`**
Parallele Runner-Implementierung die NDJSON-Stream vom CLI konsumiert.
Flags: `--verbose --include-partial-messages`.
Branch-Pattern: `phase-5/runner-stream`
### DIS-EP-502
**Defensiver NDJSON-Event-Parser**
`src/agent/stream-parser.ts` mit versioniertem Event-Dispatch, defensivem Parsing, Fallback bei unbekannten Event-Typen.
Branch-Pattern: `phase-5/stream-parser`
### DIS-EP-503
**`stream-to-discord` — Edit-Debouncing 1200ms, Rollover bei 1900 Zeichen**
Discord-Nachricht wird inkrementell editiert während Claude schreibt. Min. 1200ms zwischen Edits. Neue Nachricht bei Überlauf.
Branch-Pattern: `phase-5/stream-to-discord`
### DIS-EP-504
**Feature-Flag + Fallback + Integration-Tests**
`disclaw.yaml``streaming: false` (Default). Graceful Fallback auf Bulk-Send bei Streaming-Fehlern. Integration-Tests.
Branch-Pattern: `phase-5/streaming-flag-tests`
---
## Phase 6+ — Zukunft (Platzhalter)
Noch nicht geschätzt, nicht priorisiert. Ideen aus `docs/development-plan.md` §6+.
| Thema | Kurzbeschreibung |
|-------|-----------------|
| Agent-zu-Agent-Kommunikation | Agenten können einander Aufgaben delegieren via Discord-Mentions |
| `/list-agents`, `/delete-agent` | Management-Channel-Befehle für Workspace-Verwaltung |
| Web-Dashboard | Browser-UI für Agenten-Übersicht, Konversationen, Nutzung |
| Docker-Isolation | Jeder Agent-Workspace in eigenem Container |
| Automatische Workspace-Migration | Migration bestehender `./workspaces/`-Ordner zu neuem Root |
| Multi-Guild-Support | Ein DisClaw-Bot für mehrere Discord-Server |
| MCP-Server pro Workspace | Workspace-spezifische MCP-Konfiguration aktivierbar |