umfrage-report
Beantwortet eine Frage zu quantitativen Umfragedaten aus einer CSV und schreibt einen kurzen, belegten Report als Markdown nach reports/. Funktioniert mit beliebigen Umfrage-CSVs (Spaltentypen werden
SKILL.md.agents/skills/umfrage-report/SKILL.md
GitHubUmfrage-Report
Ziel: Aus einer Umfrage-CSV die gestellte Frage faktenbasiert beantworten und
einen kurzen Report als Markdown in reports/ speichern.
Die Frage des Nutzers ist die Anfrage, mit der dieser Skill aufgerufen wurde. Enthält sie einen Datei-Pfad/Namen, ist das die zu nutzende CSV; sonst automatisch die CSV im Ordner.
Werkzeug
Alle Zahlen kommen aus dem beigelegten Skript — niemals Werte schätzen oder aus Rohdaten „im Kopf" zählen. Nur Standardbibliothek, kein pandas nötig.
python3 scripts/survey.py <cmd> [...] [--file CSV]
Aus dem Projekt-Root ausführen. Fehlt scripts/survey.py, unter .claude/scripts/survey.py nachsehen oder survey.py im Projekt suchen.
profile— Überblick: n, alle Spalten mit Index, erkanntem Typ (META / EINFACH / MEHRFACH / FREITEXT), Befüllungsgrad. Immer zuerst ausführen.freq COL [--by COL2] [--filter "COL=WERT"] [--top N]— Häufigkeitsverteilung;--by= Kreuztabelle;--filtermehrfach möglich (Teilmenge). Bei MEHRFACH ist die Summe der Prozente > 100 % (das ist korrekt und im Report so zu erklären).text COL [--filter ...] [--sample N]— Freitext-Antworten für qualitative Themen.
COL = Spaltenindex (aus profile) oder eindeutiger Teil des Spaltennamens.
Alle Kommandos akzeptieren --json für maschinenlesbare Ausgabe.
Umfrage-Kontext
Liegt neben der CSV ein Kontextdokument (<name>.context.md, bei genau einer CSV im Ordner
auch survey-context.md), vor dem Schreiben lesen. Darin stehen Gegenstand, Glossar,
Publikum und Erhebungsdesign. Für Einordnung und Begriffe nutzen — die Zahlen kommen
weiterhin ausschließlich aus dem Motor. Was darin die Aussagekraft einschränkt, vor allem
der Abschnitt „Wer fehlt", gehört in Interpretation und Methodik dieses Reports. Dort
genannte Erwartungen sind Prüfgegenstand, nie Beleg: nie als Beleg zitieren und nie die
Formulierung eines Befundes davon beeinflussen lassen. Gibt es kein solches Dokument, wie
bisher auswerten und am Ende der Antwort einmal auf umfrage-kontext hinweisen.
Ablauf
- Profilieren.
profileausführen, um n, Spaltenindizes und -typen zu kennen. - Frage in Auswertungen übersetzen. Passende Spalte(n) wählen und die dafür
richtigen Kommandos ausführen:
- „Wie viele / welcher Anteil / Verteilung" →
freqauf der Zielspalte. - „Unterscheidet sich X nach Y / Zusammenhang / Vergleich" →
freq X --by Y. - „… bei Gruppe Z" →
--filter "Z-Spalte=Wert". - „Warum / was schätzen / typischer Ablauf / Wünsche" →
textauf Freitext, bei vielen Antworten--sample 40–60, Themen bündeln und mit ~2–3 wörtlichen Kurzzitaten belegen. Meist braucht es 2–4 Analysebefehle zusätzlich zuprofile— eine reine Verteilung ist selten die ganze Antwort. Bei offenen Fragen ruhig mehrere Blickwinkel kombinieren (Verteilung + relevanter Kreuzvergleich + Freitext-Themen).
- „Wie viele / welcher Anteil / Verteilung" →
- Report schreiben (siehe Format), Zahlen exakt aus der Skript-Ausgabe.
- Speichern nach
reports/. Ordner bei Bedarf anlegen. Dateiname:YYYY-MM-DD_kurz-titel.md(Datum viadate +%F, Titel kebab-case aus der Frage). Bei einer bereits existierenden Datei einen-2etc. anhängen, nichts überschreiben. - Dem Nutzer in der Antwort kurz die Kernaussage nennen und den Report-Pfad angeben.
Report-Format (kurz halten)
# <Frage als knappe Überschrift>
**Datenbasis:** <Dateiname> · n = <Antworten> · Report vom <Datum>
## Kernaussage
1–3 Sätze mit der direkten Antwort auf die Frage.
## Ergebnisse
- Belegte Punkte mit **Zahlen (absolut + %)**. Tabellen für Verteilungen/Kreuztabellen.
- Bei Mehrfachauswahl vermerken: Mehrfachnennung möglich, Summe > 100 %.
## Interpretation
Was bedeutet das? Auffälligkeiten, Zusammenhänge, Einschränkungen (z. B. niedriger
Befüllungsgrad einer Spalte, kleine Teilmenge bei Filtern, Grenzen des Erhebungsdesigns
laut Umfrage-Kontext).
## Methodik
Genutzte Spalten und Filter in einem Satz, damit nachvollziehbar/reproduzierbar. Wurde ein
Kontextdokument genutzt, den Rekrutierungsweg und die dadurch fehlende Gruppe nennen.
Regeln
- Genauigkeit vor Umfang. Nur behaupten, was die Ausgaben hergeben. Prozente auf die Befragten mit Antwort der jeweiligen Spalte beziehen (gibt das Skript aus).
- Aggregate („insgesamt positiv", Top-2-Box) aus den absoluten Zahlen rechnen, nie durch Addieren gerundeter Prozentwerte: 73 von 140 sind 52,1 %, nicht 13,6 % + 38,6 %.
- Statistik im Klartext (
Chi² = 12.094,p = 0.438,Cramérs V = 0.17), kein LaTeX. Verlässlichkeits-Warnungen der Engine weitergeben, nicht weglassen. - Bei Filter-Teilmengen mit kleinem n (< ~30) ausdrücklich zur Vorsicht raten.
- Sprache des Reports = Sprache der Frage (Standard: Deutsch).
- Keine personenbezogenen Rohdaten (z. B. einzelne Ids/Zeitstempel) auflisten.
- Report knapp halten — es ist ein Kurzreport, keine vollständige Studie.