--- name: cpm-setup description: Activate when the user wants to set up, render, or troubleshoot a CPM package (APM package + team-profile). Use for cpm init, cpm setup, cpm render, team-profile, model-mapping, oh-my-opencode-slim preset, fehlende Modellklassen. allowed-tools: - "Bash(python3 corentic-package-manager/cpm.py *)" - "Read" - "Write" - "Edit" - "Glob" --- # CPM Setup Skill Führt den Nutzer durch: CPM-Package (APM-Manifest + Team-Profil) → lokales Modell-Mapping → gerendertes Harness-Preset (aktuell: oh-my-opencode-slim). ## Der Ablauf (Resolve–Validate–Render) ### 1. Team-Profil finden Prüfe, ob eine `team-profile.yaml` existiert (Package-Root oder `corentic-package-manager/examples/package/team-profile.yaml`). Lies sie und fasse dem Nutzer zusammen: ``` Profil: acme.job-applications Rollen: orchestrator → strong-generalist, researcher → fast-research, writer → strong-writing, checker → high-reasoning, notifier → cheap-reliable MCPs benötigt: openviking, sharelatex (+ websearch/webfetch als OpenCode-Native) ``` ### 2. Mapping prüfen Prüfe `~/.config/cpm/model-mapping.yaml`. Für **jede** im Profil verwendete Modellklasse muss ein Eintrag existieren. Wenn eine Modellklasse fehlt, biete dem Nutzer konkrete Optionen an (verfügbare Modelle aus `~/.config/opencode/opencode.jsonc` auflisten): ``` Für 'high-reasoning' ist kein Modell zugeordnet. 1. Vorhandenes Modell wählen (z. B. ollama/qwen3.6:35b-a3b-q4_K_M) 2. Neues Provider/Modell in opencode.jsonc konfigurieren 3. Abbrechen ``` Nach Auswahl schreibe das Mapping und markiere optional `# selected_by: user`. Alternativ die interaktiven Kommandos nutzen: `cpm init --fill` und `cpm setup`. ### 3. MCPs prüfen Vergleiche die im Profil genannten MCPs mit der Sektion `mcp` in `~/.config/opencode/opencode.jsonc`. Fehlende dem Nutzer melden – nicht stillschweigend ignorieren. Native OpenCode-Tools (`websearch`, `webfetch`) sind keine MCPs und brauchen keinen Eintrag. ### 4. Rendern ```bash python3 corentic-package-manager/cpm.py render --package ``` Zeige die Ausgabe inklusive Warnungen. Die Datei `.opencode/oh-my-opencode-slim.json` ist generiert – nicht manuell editieren. ### 5. Aktivieren Nutzer anleiten: `opencode` starten → `/preset ` → Reload. Preset-Wechsel greifen erst nach einem Reload (by Design). ## Fehlerbehandlung | Fehler | Lösung | |---|---| | „Modellklasse X ist nicht gemappt" | Schritt 2: Mapping ergänzen | | „MCP ... nicht in opencode.json konfiguriert" | Schritt 3: MCP einrichten oder Rolle anpassen | | „Kein Team-Profil gefunden" | Pfad prüfen, `--team-file` verwenden | | Ungültiges YAML | Zeile aus Fehlermeldung zeigen | ## Regeln - Niemals selbst Modelle erraten oder zuordnen – immer den Nutzer wählen lassen. - Niemals die generierte `.opencode/oh-my-opencode-slim.json` direkt editieren; Quelle sind Team-Profil + Mapping. - Sicherheitsgrenzen des Packages (MCP/Skill-Allowlists) nur verschärfen, nie aufweichen.