- examples/package: copy of the job-application APM package with corentic.team-profile/v1 declaration (orchestrator, researcher, writer, checker, notifier) - examples/model-mapping.yaml: user-side model class mapping with simple and extended entries - skills/omos-setup: skill guiding users through resolve-validate-render and activation
73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
---
|
||
name: omos-setup
|
||
description: Activate when the user wants to set up, render, or troubleshoot an omos team from an APM package. Use for omos render, team-profile, model-mapping, oh-my-opencode-slim preset, fehlende Modellklassen.
|
||
allowed-tools:
|
||
- "Bash(python3 omos/omos.py *)"
|
||
- "Read"
|
||
- "Write"
|
||
- "Edit"
|
||
- "Glob"
|
||
---
|
||
|
||
# OMOS Setup Skill
|
||
|
||
Führt den Nutzer durch: APM-Package mit Team-Profil → lokales Modell-Mapping → gerendertes oh-my-opencode-slim-Preset.
|
||
|
||
## Der Ablauf (Resolve–Validate–Render)
|
||
|
||
### 1. Team-Profil finden
|
||
|
||
Prüfe, ob eine `team-profile.yaml` existiert (Package-Root oder `omos/examples/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/apm-team/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`.
|
||
|
||
### 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 omos/omos.py render --package <package-dir>
|
||
```
|
||
|
||
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.
|