2026-08-23 17:03:40 +02:00
---
2026-08-23 17:26:28 +02:00
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.
2026-08-23 17:03:40 +02:00
allowed-tools:
2026-08-23 17:26:28 +02:00
- "Bash(python3 corentic-package-manager/cpm.py *)"
2026-08-23 17:03:40 +02:00
- "Read"
- "Write"
- "Edit"
- "Glob"
---
2026-08-23 17:26:28 +02:00
# CPM Setup Skill
2026-08-23 17:03:40 +02:00
2026-08-23 17:26:28 +02:00
Führt den Nutzer durch: CPM-Package (APM-Manifest + Team-Profil) → lokales Modell-Mapping → gerendertes Harness-Preset (aktuell: oh-my-opencode-slim).
2026-08-23 17:03:40 +02:00
## Der Ablauf (Resolve– Validate– Render)
### 1. Team-Profil finden
2026-08-23 17:26:28 +02:00
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:
2026-08-23 17:03:40 +02:00
```
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
2026-08-23 17:26:28 +02:00
Prüfe `~/.config/cpm/model-mapping.yaml` . Für **jede** im Profil verwendete Modellklasse muss ein Eintrag existieren.
2026-08-23 17:03:40 +02:00
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` .
2026-08-23 17:26:28 +02:00
Alternativ die interaktiven Kommandos nutzen: `cpm init --fill` und `cpm setup` .
2026-08-23 17:03:40 +02:00
### 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
2026-08-23 17:26:28 +02:00
python3 corentic-package-manager/cpm.py render --package < package-dir >
2026-08-23 17:03:40 +02:00
```
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 <team-id>` → 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.