APM-Packages/omos/skills/omos-setup/SKILL.md
Tobias J. Endres f0f1915251 feat(omos): example package, team profile, mapping and setup skill
- 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
2026-08-23 17:03:40 +02:00

73 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 (ResolveValidateRender)
### 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.