Files

4.2 KiB

purpose, status, created, populated, populated_by
purpose status created populated populated_by
skill-discovery populated 2026-06-02 2026-06-02 phase-M4

Skill Index — parsecapere

Discovery-Index fuer alle Skills die der mcp-gitea-Service (Phase M5) laden kann. Jeder Eintrag verlinkt auf das Skill-Manifest im Schwester-Repo parsecapere-skills.


Skill-Tabelle

Skill-ID Aktivierung Trigger-Keywords Tools Hop-Budget Manifest
main-voice default (Voice-Entry) (keine — direkt geladen) 17 6 parsecapere-skills/composite/main-voice.md
kreuzwort-builder spawn-by-keyword kreuzwort · kreuzwortraetsel · crossword 5 12 parsecapere-skills/composite/kreuzwort-builder.md
lueckentext-builder spawn-by-keyword lueckentext · vokabel-drill · cloze 4 8 parsecapere-skills/composite/lueckentext-builder.md
main-voice-investor role-gated (investor) (keine — rollen-gated) 20 6 parsecapere-skills/composite/main-voice-investor.md

Aktivierungs-Pfade

default — Voice-Entry-Skill

main-voice wird beim Voice-Entry eines Users direkt geladen — kein Discovery, kein Keyword-Match. Das llm-gateway ruft den Composer:

const { system_prompt, tools } = await compose_prompt("main-voice");

und uebergibt das an GoogleGenerativeAI.startChat().

spawn-by-keyword — Sub-Agents

Wenn die Main-Voice ein Dispatch-Tool (create_kreuzwort_task, create_lueckentext_task) aufruft, spawn'd der Backend-Code (Orchestrator-JS oder spaeter ein generischer Spawner) einen Sub-Agent mit dem passenden Skill:

const { system_prompt, tools } = await compose_prompt("kreuzwort-builder");
// → eigener Gemini-Call, eigenes Hop-Budget, eigener Trace-callId

Die Trigger-Keywords sind heute (M4) noch dokumentarisch — sie werden in M5+ vom Composer als Discovery-Index ausgewertet (Tool list_skills(trigger="kreuzwort")).


Discovery-Flow (geplant ab M5)

User: "Bau ein Kreuzwort ueber Pflanzen"
   │
   ▼
main-voice (Main-LLM, schon mit komponiertem Prompt aktiv) erkennt
"kreuzwort" und ruft Tool: create_kreuzwort_task(thema="Pflanzen", lang="de")
   │
   ▼
llm-gateway (Tool-Handler) ruft: compose_prompt("kreuzwort-builder")
   │
   ▼
mcp-gitea (LLM-VPS) checkt STDB-Cache gitea_section_cache:
   ├── HIT  → returnt assembled prompt aus Cache
   └── MISS → fetcht alle 8 Module aus parsecapere-prompts,
              komponiert in der Compose-Order (base → workflows →
              tools-context → persona), cached, returnt
   │
   ▼
llm-gateway spawn'd Sub-Agent mit komponiertem Prompt + tools
   │
   ▼
Sub-Agent fuehrt Self-Correction-Loop + Build-Schritte aus,
liefert Erfolgsmeldung zurueck an Main-Voice
   │
   ▼
Main-Voice erzaehlt User: "Kreuzwort bereit: 7 Woerter ..."

Hinweis fuer M5-Implementation

Die Manifest-required_prompt_modules-Listen sind die Single-Source-of-Truth fuer die Compose-Order. Der Composer (mcp-gitea) darf nicht selbst entscheiden welche Module er laed — er liest exakt was im Manifest steht, in der dortigen Reihenfolge.

Falls ein Modul-Pfad nicht existiert oder ein Modul defekt ist: hart fail'en, nicht silent-skip. Bei einem fehlenden Persona-Modul macht der Compose keinen Sinn.