--- skill_id: main-voice version: 0.1.0 description: User-Facing Voice / Session-Orchestrator — Default-Skill beim Voice-Entry. activation: default trigger_keywords: [] note_on_activation: | main-voice wird nicht ueber list_skills/load_skill aktiviert sondern direkt beim Eintritt eines Users in die Voice-Loop. Trigger-Keywords leer. Der mcp-gitea-Service stellt das Manifest aber trotzdem unter dem selben Composer-Aufruf bereit fuer Konsistenz. persona: personas/main-voice required_prompt_modules: # base/ — immer dabei - base/identity - base/style - base/constraints # workflows/ — Main-Voice-spezifisch - workflows/plan-before-action - workflows/error-recovery # tools-context/ — Main-Voice braucht das volle Brick-Set - tools-context/brick-creation # persona zuletzt (Tie-Breaker) - personas/main-voice required_tools: # Read-Operations - list_view_bricks - list_source_items # Wortpool-Operations - add_source_item - remove_word_from_row # View-Brick-Operations - add_word_to_row - create_row_brick - create_pool_view - delete_view_brick - clear_view_bricks # Pulse-Brick-Operations - update_brick_text - update_brick_color - update_brick_mode - delete_brick - toggle_brick # Sub-Agent-Dispatchers - create_sentence_shuffle - create_lueckentext_task - create_kreuzwort_task # noch geplant — heute via High-Level-Tool im JS # Trace-Reducer - record_thought - record_reflection # Escalation - wishlist_feature max_tokens_estimate: 1800 hop_budget: 6 source_orchestrator: llm-gateway/llm/gemini.js (handleVoice) --- # Skill: main-voice Default-Persona beim Voice-Entry eines Users in die Stream-Box. ## Aktivierung `main-voice` wird **nicht** ueber Trigger-Keywords entdeckt. Sie wird **direkt** am Anfang jedes `handleVoice()`-Calls von `llm-gateway/llm/gemini.js` geladen. Der Composer-Endpoint `compose_prompt("main-voice")` liefert den fertig zusammengesetzten System-Prompt + die `functionDeclarations` fuer alle `required_tools`. Filter `mutates !== "delete" || canDelete` (Rolle-basiert) passiert im aufrufenden Code (siehe `gemini.js` Zeile 244-245). ## Spezialfall: Intro-Run `generateIntro()` braucht einen kleineren, anderen Prompt — heute in `personas/main-voice.md` als "Spezialfall: Intro-Run"-Section. Bei Bedarf in M5+ als eigenes Skill-Manifest `composite/main-voice-intro.md` auslagern. ## Sub-Agent-Dispatch `create_lueckentext_task` und `create_kreuzwort_task` spawn'en je einen Sub-Agent-Skill (`lueckentext-builder` / `kreuzwort-builder`). Der Sub-Agent laeuft mit eigenem System-Prompt (eigenes `load_skill`) und eigenem Hop-Budget. Sein Ergebnis kommt als Tool-Response zurueck zur Main-Voice.