CommunityRecherche & Datenanalysegithub.com

19970836597/-agent

Erstellt für Immobilienprojektmanager eine monatliche Betriebsanalyse-Präsentation im PPT-Format. Nutzen Sie dies, wenn Sie eine monatliche/quartalsweise Betriebsanalyse, Betriebsberichte, Einnahmenanalyse, Ursachenanalyse von Außenständen/Säumigkeiten, Einzugsquotenanalyse, Personalproduktivitätsanalyse oder ähnliche PPTX-Ergebnisse benötigen oder wenn Begriffe wie „Monatsbericht des Projektmanagers“ oder „Betriebsanalyse-Sitzung für Immobilien“ fallen. Die Präsentation folgt der kognitiven Reihenfolge „Einnahmen → Außenstände & Mahnung → Einzugsquote → Personalproduktivität → Ursachenanalyse abweichender Posten → Zusammenfassung & Maßnahmen“ im 16:9-Format und wird automatisch mit einer seitenweisen Sprechnotiz ausgeliefert.

Was ist -agent?

Dieser Skill ist ein spezialisiertes Werkzeug für Immobilien-Projektmanager, um monatliche Betriebsanalyse-Präsentationen im PPT-Format zu erstellen. Er geht weit über das bloße Einfügen von Daten hinaus: Die Präsentation folgt einer strengen kognitiven Abfolge von Einnahmen, Außenständen, Einzugsquote, Personalproduktivität bis hin zur Ursachenanalyse abweichender Posten und schließt mit konkreten Maßnahmen ab. Unterstützt werden die Plattformen Claude Code, Cursor, Codex und andere KI-Agenten, die auf die verarbeiteten Excel-Datenquellen (z. B. Einnahmen, Außenstände, Kundeninformationen) zugreifen. Der Skill trennt klar zwischen menschenlesbarem Wissen (SKILL.md) und maschinenlesbarer Konfiguration (deck_spec.json), sodass Seitenumfang, Diagrammtypen, Farben und sogar die Textbausteine für Aussagen ohne Codeänderungen anpassbar sind. Kernstück ist eine datengetriebene, regelbasierte Generierung von Schlussfolgerungen – keine vagen Aussagen, sondern präzise, überprüfbare Feststellungen. Der Skill liefert nicht nur eine PPTX-Datei, sondern auch einen Prüfbericht (checks.json) und eine seitenweise Sprechnotiz, die für mündliche Vorträge optimiert ist. Die zugrunde liegende Verarbeitungspipeline umfasst fünf Phasen: Datenverständnis, Datenanalyse, Folienstrukturplanung, Inhaltsgenerierung und abschließenden Aufruf des PPT-Tools. Fehlende Daten werden ehrlich als solche gekennzeichnet, und es gelten strenge Kommunikationsregeln, um eine professionelle, entscheidungsorientierte Darstellung zu gewährleisten.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/19970836597/-agent/tree/HEAD/skills/buttin/ppt_skill

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Immobilien-Projektmanager · Monatliche Betriebsanalyse-PPT

Der Kern liegt nicht darin, „die Daten auf die Folie zu setzen“, sondern die Betriebskennzahlen in der kognitiven Reihenfolge des Publikums klar darzulegen und die abweichenden Probleme dann dem Verantwortlichen und einer Frist zuzuordnen.


Das Wissen dieser Fähigkeit ist an zwei Orten gespeichert

DateiFür wenEnthält
SKILL.md (diese Datei)Mensch / AgentWarum diese Erzählweise: Erzählbegründung, Ursachenzuordnung, Ausdrucksdisziplin
deck_spec.jsonWerkzeugWie es umgesetzt wird: Anzahl der Seiten, Reihenfolge, Vorlagen für Schlussfolgerungen, Farbschema

deck_spec.json ist das maschinenlesbare Wissen dieser Fähigkeit. Wenn Sie es ändern, können Sie die Seitenanzahl und die Erzählweise der PPT anpassen, ohne Python-Code ändern zu müssen:

{
  "page_rules": [                       // ← „Wie viele Seiten soll die PPT haben?“ wird hier festgelegt
    {"max_minutes": 10, "sections": [7 Abschnitte]},
    {"max_minutes": 20, "sections": [11 Abschnitte]},
    {"max_minutes": 40, "sections": [16 Abschnitte]}
  ],
  "sections": [{
    "key": "revenue", "label": "Einnahmen", "layout": "chart",
    "data": {"value_column": "Rechnungsbetrag (Yuan)", "group_column": "Gebührenart"},
    "narrative": [                      // ← Vorlagen für Schlussfolgerungen: von „Zahlen nennen“ zu „Urteile fällen“
      {"when": "top_share > 0.9",
       "so_what": "{top_name} macht {top_share_pct}% der Einnahmen aus, die Struktur ist einseitig und die Risikotragfähigkeit gering; "
                  "im nächsten Monat sollten die Gemeinschaftseinnahmen als eigener Schwerpunkt behandelt werden."},
      {"when": "", "so_what": "…Standardklausel…"}
    ]
  }],
  "theme": {"colors": {...}, "palette": [...]}   // ← Auch das Farbschema ist Wissen
}

Wie die Satzvorlagen funktionieren

Die Engine wählt aus der Liste der Vorlagen die erste Treffer-Bedingung aus und füllt die Platzhalter {Platzhalter} mit echten Zahlen.

Verfügbare Platzhalter (automatisch aus den Daten berechnet): {total} {count} {top_name} {top_share} {top_share_pct} {group_count} {bottom_name} {bottom_value} …

Formatierungssuffixe: {total:Wan} (÷10000) {share:1%} (Verhältnis → Prozent) {count:,} (Tausendertrennzeichen) {value:2} (Dezimalstellen)

Unterstützte Bedingungen: > >= < <= == !=, and/or/not, has(x)/empty(x). Nicht parsbare Bedingungen gelten als nicht zutreffend und verursachen keinen Fehler.

Bei fehlenden Daten erfolgt ehrliche Herabstufung: Der Seitentitel wird mit „Daten fehlen, bitte ergänzen“ gekennzeichnet. Es werden auf keinen Fall andere Spalten verwendet, um die Lücke zu füllen. Wenn z. B. auf der Seite „Kosten“ die Spalte „Kostenart“ deklariert ist, diese Spalte aber in den Daten nicht vorhanden ist, wird klar angegeben, was fehlt.

Kennzahlen müssen aus den Daten berechnet werden, nicht manuell übergeben werden

Im Abschnitt derived wird deklariert, „wie gerechnet wird“, und das Werkzeug führt die Berechnung durch:

"derived": {
  "Eingenommener Betrag (Yuan)": {"expr": "Rechnungsbetrag (Yuan) - Ausstehender Betrag (Yuan)"},          // Zeilenweise, wird zur neuen Spalte
  "Einzugsquote": {"expr": "Eingenommener Betrag (Yuan) / Rechnungsbetrag (Yuan) * 100",
             "scope": "total", "format": "{:.2f}%"}                  // Berechnet **einen Wert** aus der Summe
}

⚠ Der Standardwert für scope ist row (zeilenweise Berechnung, das Ergebnis wird eine neue Spalte); Verhältnis-Indikatoren MÜSSEN scope: "total" verwenden – eine zeilenweise Berechnung des Verhältnisses und anschließende Summierung würde absurde Werte wie 1.476.800% ergeben.

Die berechneten Werte werden automatisch in die Faktenliste der Erzählung aufgenommen, sodass {Einzugsquote} direkt in den Satzvorlagen verwendet werden kann.

Praktische Verifizierung (2, Forderungsinformationen.xlsx): Einzugsquote = 92,48%, Ausfallquote = 7,52%. Die separate Überprüfung anhand der Gruppe „Zahlungsstatus“ stimmt vollständig überein (die Summe der Ausstände bei bezahlten Zeilen = 0).

Ausdrücke dürfen nur Spaltennamen und numerische Konstanten referenzieren und werden mit einer AST-Whitelist ausgewertet – kein eval. __import__('os') wird zurückgewiesen.

Nur wenn die Dimension nicht in der Haupttabelle vorhanden ist, ist ein Cross-Table-Join erforderlich

datasets + join deklarieren, „welche Tabelle verwendet wird, welche Spalten übernommen werden und nach welchem Schlüssel joined wird“:

"datasets": {
  "properties": {"file": "1, Immobilienkundeninformationen.xlsx", "key_column": "Immobiliencode",
                 "pick": {"Tatsächliche abrechenbare Fläche (m²)": "Tatsächliche abrechenbare Fläche"}}
},
"join": {"dataset": "properties", "left_on": "Vollständiger Immobilienname", "how": "left"}

Reihenfolge: Zuerst join, dann berechne die abgeleiteten Werte – sonst sind die in den abgeleiteten Ausdrücken referenzierten Dimensionsspalten noch nicht vorhanden.

Lektion: Zuerst prüfen, ob ein Join wirklich nötig ist. Ursprünglich wurde angenommen, dass für die Einzugsquote ein Cross-Table-Join erforderlich sei. Nach der Überprüfung stellte sich jedoch heraus, dass Tabelle 2 sowohl Rechnungs- als auch Ausstehende Beträge enthält, sodass eine einzelne Tabelle ausreicht. Was wirklich einen Join benötigt, ist der „Durchschnittspreis“ (die Fläche befindet sich in Tabelle 1).


Es müssen drei Dinge geliefert werden

LiefergegenstandFormZweck
① Berichts-PPTX16:9 bearbeitbare PräsentationFolien, zum „Ansehen“
② Prüfbericht checks.jsonJSON (vom Werkzeug pptx_check erzeugt)Struktureller Integritätsnachweis
③ SprechnotizChat-Text / Markdown (Vorlage siehe references/03- Besprechungsnotiz.md)Wortlaut, zum „Sprechen“

Wann verwenden

  • PPT für die monatliche/quartalsweise Betriebsanalyse eines Immobilienprojekts
  • Betriebsberichte für die regionale Betriebszentrale oder den General Manager
  • Benötigt: Ursachenanalyse von Kostenüberschreitungen, Einzugsquotenanalyse, Personalproduktivitätsanalyse
  • Schlüsselwörter: „Monatsbericht des Projektmanagers“, „Material für die Betriebsanalyse-Sitzung", „PPT für das Projektbetriebs-Dashboard“

Fünfstufige Verarbeitungspipeline

Benutzereingabe (Daten)
      |
      v
+-------------------+
| Stufe 1: Datenverständnis |  Eingabe parsen, Standardwerte ergänzen, Messgrößen validieren
+-------------------+
      |
      v
+-------------------+
| Stufe 2: Datenanalyse   |  Berechnung von Einnahmen/Kosten/Einzugsquote/Effizienz, Sortierung von Abweichungen, Ursachenzuordnung
+-------------------+
      |
      v
+-------------------+
| Stufe 3: PPT-Strukturplanung |  Seitenanzahl, Diagrammtypen, Schlussfolgerungstitel pro Seite festlegen
+-------------------+
      |
      v
+-------------------+
| Stufe 4: Inhaltsgenerierung   |  DATA-Wörterbuch erstellen, Schlussfolgerungen generieren, Sprechnotiz füllen
+-------------------+
      |
      v
+-------------------+
| Stufe 5: Aufruf des PPT-Tools|  Ausführen von build_deck.py → Prüfung → Auslieferung
+-------------------+
      |
      v
Erstellen von .pptx + checks.json + Besprechungsnotiz

Stufe 1: Datenverständnis

1.0 Woher kommen die Daten (drei Pfade, nach Priorität)

PrioritätMethodeErklärung
1Benutzer hat Daten im Gespräch bereitgestelltAgent füllt die Daten in den data-Parameter
2Benutzer hat Dateinamen/Hinweise gegebenSkill sucht automatisch in Standardverzeichnissen nach Dateien und extrahiert Daten (siehe unten)
3Keine von beidemMit Standardvorlage generieren, dazu eine Warnung wegen unzureichender Daten ausgeben

Automatische Datenextraktion: Wenn data leer ist, wird der Skill:

  1. Aus der request Dateinamen-Hinweise parsen (z. B. „die Verkaufstabelle vom letzten Monat“)
  2. In data/common und data/inbox mit unscharfer Suche nach Dateien suchen
  3. Mit pandas lesen, Datums-/Betrags-/Gruppenspalten automatisch erkennen
  4. In die Vertragsstruktur umwandeln (Beträge ÷10000 in Wan-Yuan, Verhältnisse als Dezimalbrüche)
  5. Als input_data.json speichern und dem Generierungsskript übergeben

Der Benutzer muss also nur sagen: „Erstellen Sie mit der Verkaufstabelle vom letzten Monat eine Betriebsanalyse-PPT“. Der Pfad muss nicht angegeben werden – vorausgesetzt, die Datei befindet sich bereits in data/common.

Überschreibbare Suchwurzel: SKILL_COMMON_DIRS=D:\Tabellen;E:\Monatsberichte Automatische Datenextraktion deaktivieren: auto_resolve_data=False

Immobilienprojekt-Datenquellen (gemessene Messgrößen in data/common)

TabelleDateiZweckMessgrößen-Erläuterung
Tabelle 22, Forderungsinformationen.xlsxHaupttabelle (15.876 Zeilen)Einnahmen gruppiert nach „Gebührenart“; „Rechnungsbetrag/Ausstehender Betrag“ leitet Einzugsquote ab (gemessen: 92,48%)
Tabelle 11, Immobilienkundeninformationen.xlsxDimensionstabelle: Tatsächliche abrechenbare FlächeJoin nach „Immobiliencode“ = Haupttabelle „Vollständiger Immobilienname“ → leitet Durchschnittspreis ab (gemessen: 0,30 Yuan/m²·Periode)
Tabelle 44, Bericht über Außenstände.xlsxDimensionstabelle: Säumnisgründe (7 Kategorien)Kopfzeile in Zeile 2 (header_row=1), Tabellenende mit Summenzeile (wird automatisch verworfen); Join nach „Vollständiger Immobilienname“ → Seite „Ursachen für Außenstände“
Tabelle 55, Detailtabelle zur Immobilieneinzugsquote.xlsxNicht verwendenDrei Header-Zeilen, breites Tabellenformat, neigt zu Konflikten mit der abgeleiteten Messgröße aus Tabelle 2; Tabelle 2 hat immer Vorrang

Ehrliche Herabstufungserklärung: In den Projektdaten sind keine Kosten, Budgets, Personenzahlen oder Arbeitsaufträge enthalten. Die Kostenseite wurde durch die Seite „Außenstände & Mahnung“ ersetzt (mit echten, nutzbaren Daten). Die Effizienzseite enthält nur den datengestützten „Durchschnittspreis“. Viertel-Altersdaten sind nicht in Tabelle 2 – wenn benötigt, führt der Haupt-Agent zuerst eine Fälligkeitsanalyse mit dem Unter-Agenten für Mahnwesen durch und übergibt die Ergebnisse dann als extra_facts an diesen Skill.

1.1 Parsen der Benutzereingabe → Extrahieren der grundlegenden Informationen

ElementStandard/BeispielErklärung
ProjektnameXX WohnanlageErforderlich, falls fehlend mit „Noch zu ergänzen“ kennzeichnen
BerichtszeitraumDieser MonatErforderlich
WährungseinheitWan-Yuan (10.000 Yuan)Im gesamten Dokument einheitlich, nicht mischen; wenn Rohdaten in „Yuan“ vorliegen, muss ÷10000 gerechnet werden
Verhältnis-MessgrößeDezimalbruch0.952 = 95,2%; Übergabe von 95.2 würde als 9520% dargestellt
VergleichsbasisMonatsbudget + VormonatMindestens ein Referenzrahmen
Berichtsdauer20 MinutenBestimmt die Seitenanzahl

1.2 Datenvollständigkeitsprüfung – Sieben erforderliche Datengruppen

Prüfen, ob der Benutzer die folgenden sieben Datengruppen bereitgestellt hat. Fehlt eine Gruppe, wird die entsprechende Seite mit „Noch zu ergänzen“ gekennzeichnet:

#DatengruppeSpezifische Felder
1EinnahmenpositionenVerwaltungsgebühren, Gemeinschaftseinnahmen, Nebengeschäfte, Sonstige (Ist + Budget)
2KostenpositionenPersonal, Allgemeinenergie, Fremdvergabe, Wartung/Instandhaltung, Material, Verwaltungskosten (Ist + Budget)
3EinzugsdatenForderungen laufender Monat / Eingänge laufender Monat / Alte Außenstände Anfangsbestand / Alte Außenstände Rückgewinnung
4Altersstruktur0-30 / 31-90 / 91-180 / 180+ Tage ausstehende Beträge
5EffizienzdatenPersonalanzahl, Verwaltungsfläche, Arbeitsauftragsvolumen, Personalkosten
6Abweichende Posten3-5 Posten mit der größten Abweichung und deren nachvollziehbare Ereignisse
7Maßnahmen VormonatErledigungsstatus (muss rückgemeldet werden, um einen Kreislauf zu schließen)

1.3 Validierung der Messgrößen

Vor dem Eintritt in die Analyse MÜSSEN die Datenmessgrößen anhand der folgenden roten Linien überprüft werden:

  • Gemeinschaftseinnahmen stehen gesetzlich allen Eigentümern zu, müssen separat ausgewiesen und nicht in den Betriebsgewinn einbezogen werden
  • Nenner der laufenden Einzugsquote = Rechnungsbetrag des laufenden Monats, darf nicht die Rückgewinnung alter Außenstände enthalten
  • Personalkosten müssen Sozialversicherung, Wohnbauzuschuss, Überstundenvergütung, umgerechnete Fremdleistungskosten enthalten
  • Energiekosten müssen zwischen „Umlage Allgemeinfläche“ und „Eigenverbrauch Verwaltung“ unterscheiden
  • Einmalausgaben (Notfallreparaturen, Großreparaturen) werden separat ausgewiesen und nicht in die monatlich vergleichbare Messgröße einbezogen
  • Personalproduktivität muss zusammen mit der Personalkostenquote beurteilt werden, nicht nur die reine Personalzahlenänderung betrachten

Stufe 2: Datenanalyse

2.1 Analysereihenfolge (MUSS in dieser Reihenfolge erfolgen, nicht ändern)

Einnahmenanalyse → Kostenanalyse → Einzugsquotenanalyse → Personalproduktivitätsanalyse → Ursachenanalyse abweichender Posten

Grund für die Reihenfolge: Die Einzugsquote ist die Frucht der Servicequalität (nicht geschlossene Beschwerden → Eigentümer verweigern Zahlung). Die Darstellung von Ursache und Wirkung ist erst nach den Einnahmen und Kosten sinnvoll. Die Ursachenanalyse muss auf den vier betrieblichen Grundpfeilern aufbauen, sonst wird die Diskussion unkonzentriert.

2.2 Einnahmenanalyse

  • Berechnung der Ist-vs-Budget-Abweichung für jede Einnahmenposition
  • Berechnung der Budgeterfüllungsquote = Ist-Einnahmen des Monats / Budget-Einnahmen des Monats
  • Berechnung des Anteils der Einnahmenstruktur
  • Gemeinschaftseinnahmen separat ausweisen, mit dem Vermerk „Gehört allen Eigentümern gemeinsam, nicht im Betriebsgewinn enthalten“

2.3 Ursachenanalyse für Außenstände (ursprüngliche Kostenanalyse, aber in diesem Projekt keine Kostendaten)

Da dieses Projekt keine Kostenpositionen enthält, wird dieser Abschnitt durch eine Ursachenanalyse für Außenstände nach Säumnisgrund ersetzt – eine Seite, die für den Cashflow ebenso wichtig ist wie die Kosten im Immobiliengeschäft:

  • Gruppierung und Aggregation von „Ausstehender Betrag (Yuan)“ aus der Haupttabelle nach dem gejointen Feld „Säumnisgrund“ (gemessene Summe: 36.400 Yuan, vollständig mit der Einzelpostensumme im Bericht über Außenstände übereinstimmend)
  • ⚠ Nicht den gejointen Wert „Gesamtausstehender Betrag (Yuan)“ aggregieren – dies ist die Summe pro Wohneinheit und würde durch mehrere Rechnungszeilen derselben Einheit mehrfach gezählt
  • Vierstufige Klassifizierung der Säumnisgründe und Zuordnung von Mahnstrategien: Servicestreitigkeit (zuerst Verbesserung, dann Mahnung) / Objektive Schwierigkeit (Ratenzahlungsplan) / Böswillige Nichtzahlung (eskalierendes Schreiben) / Unbekannt/Leerstand (Vor-Ort-Prüfung)
  • Sobald Kostendaten verfügbar sind, kann der Abschnitt arrears in der deck_spec.json einfach wieder durch den Abschnitt cost ersetzt werden. Die Toolkette muss nicht angepasst werden.

2.4 Einzugsquotenanalyse – Drei-Ebenen-Aufschlüsselung der Kennzahlen

KennzahlBerechnungsformel
Laufende EinzugsquoteEingänge laufender Monat / Forderungen laufender Monat (ohne Rückgewinnung alter Außenstände)
Kumulierte EinzugsquoteEingänge seit Jahresbeginn / Forderungen seit Jahresbeginn
Rückgewinnungsquote alter AußenständeRückgewinnung historischer Außenstände in der Periode / Gesamtbestand alter Außenstände zu Periodenbeginn

In Kombination mit einer Fälligkeitspyramide: 0-30 / 31-90 / 91-180 / 180+ Tage. Je länger die Fälligkeit, desto geringer die Wahrscheinlichkeit einer Rückgewinnung (über 180 Tage nur 10 %–20 %).

Schichtung der Säumnisgründe: Servicestreitigkeit / Objektive Schwierigkeit / Böswillige Nichtzahlung / Unbekannt/Leerstand. Die ersten beiden Arten werden durch Service-Wiederherstellung behoben, die letzten beiden durch Mahnmechanismen.

2.5 Personalproduktivitätsanalyse

KennzahlBerechnungsformel
Verwaltungsfläche pro KopfVerwaltete Bruttogeschossfläche ÷ (Eigenpersonal + umgerechnete Fremdleistungskräfte)
Wertschöpfung pro KopfBetriebseinnahmen ÷ Gesamtpersonal Projekt
Arbeitsaufträge pro KopfAnzahl abgeschlossener Arbeitsaufträge ÷ Anzahl Techniker
PersonalkostenquotePersonalkosten ÷ Betriebseinnahmen (inverser Indikator, je niedriger desto besser)

⚠ Fallstrick: Der Ersatz von Eigenpersonal durch Fremdpersonal macht den Nenner kleiner und die Zahlen besser. Dies muss in Verbindung mit der Personalkostenquote beurteilt werden.

2.6 Ursachenanalyse abweichender Posten – Drei-Ebenen-Penetrationsmethode

Dies ist der wertvollste Schritt der gesamten Analyse.

EbeneZu beantwortende FrageAusgabe
Erste Ebene: Quantifizierung der AbweichungHandelt es sich um eine Mengen-, Preis- oder methodische Abweichung?Abweichungsbetrag + Abweichungsrate
Zweite Ebene: TreiberfaktorenBis zu einem nachvollziehbaren konkreten Ereignis aufschlüsselnEine verifizierbare Ereignisbeschreibung
Dritte Ebene: VerantwortungszuordnungKontrollierbar / Teilweise kontrollierbar / Unkontrollierbar? Hauptverantwortlich?Verantwortliche Abteilung + Korrekturmaßnahme + Frist

Beispiel für die Aufschlüsselung der Personalkostenabweichung:

Abweichung = Personalabweichung × Budget-Durchschnittsgehalt (Mengenabweichung)
           + Budgetpersonal × Durchschnittsgehaltsabweichung (Preisabweichung)
           + Methodische / Einmaleffekte (Methodische Abweichung)

Schreibregeln:

  • ❌ „Energiekosten gestiegen“ → ✅ „Energiekosten über Budget um 21.000 Yuan, verursacht durch die Verzögerung der Tiefgaragenbeleuchtungs-Umrüstung (vollmonatlicher Einsatz alter Leuchten, 12.000 Yuan) + verlängerte Testläufe von 3 Aufzügen nach der jährlichen Prüfung (9.000 Yuan)“
  • ❌ „Reparaturkosten über Budget“ → ✅ „Reparaturkosten über Budget um 13.000 Yuan, Notfallreparatur eines geplatzten Abwasserrohrs in Gebäude 5 (13.000 Yuan, unkontrollierbar)“

Eine Ursachenanalyse ohne Verantwortlichen und Frist ist keine Ursachenanalyse.


Stufe 3: PPT-Strukturplanung

3.1 Berichtsreihenfolge (sechsteilig, nicht änderbar)

① Einseitiges Fazit (30-Sekunden-Entscheidung)
② Einnahmen: Woher kommt das Geld → Verwaltungsgebühren / Gemeinschaftseinnahmen / Nebengeschäfte / Sonstige
③ Außenstände & Mahnung: Wer schuldet Geld? → Vierstufige Klassifizierung der Säumnisgründe: Service / Schwierigkeit / Böswillig / Unbekannt
④ Einzugsquote: Wurde das Geld eingezogen? → Laufend / Kumuliert / Alte Außenstände / Altersstruktur
⑤ Personalproduktivität: Ist das Personal wirtschaftlich? → Durchschnittspreis / Fläche pro Kopf / Personalkostenquote / Arbeitsaufträge pro Kopf
⑥ Ursachenanalyse abweichender Posten → Drei-Ebenen-Penetration: Quantifizierung → Treiberereignis → Verantwortung & Kontrollierbarkeit
⑦ Zusammenfassung & Maßnahmen → 3–5 Punkte, jeder mit Verantwortlichem + Frist + quantifizierbarem Abnahmekriterium

3.2 Seitenplanung

DauerEmpfohlene SeitenanzahlStrukturbehandlung
10 Minuten6–8 SeitenEinseitiges Fazit + Einnahmen/Kosten + TOP 3 Abweichungen + Maßnahmen
20 Minuten12–16 SeitenVollständiger sechsteiliger Aufbau, Ursachenanalyse für TOP 5 Abweichungen
40 Minuten20–28 SeitenZusätzlich: Trendvergleiche (3–6 Monate), Branchenbenchmarks, vertiefte Einzelanalysen

3.3 Diagrammauswahl

AnalyseinhaltDiagrammtyp
Einnahmen Ist vs. BudgetZweifach-Säulendiagramm
Rangfolge der KostenabweichungenBalkendiagramm (semantische Farben Rot/Gelb/Grün)
Einzugsquote + AltersstrukturGestapeltes Säulendiagramm + 3-stufige Kennzahlenkarten
PersonalproduktivitätstrendKombiniertes Säulen- und Liniendiagramm (Sekundärachse für Kostenquote)
Abweichungs-UrsachenanalyseBalkendiagramm + Zuordnungstabelle
MaßnahmenAktionskarten (Verantwortlicher/Frist/Abnahmekriterium)

3.4 Vorlage für die Seitenstruktur

┌──────────────────────────────┐
│ Kopfzeile: Nummer + schlussfolgernder Titel + Phasen-Label │
├──────────────────────────────┤
│                              │
│    Diagramm-/Datenvisualisierungsbereich    │
│                              │
├──────────────────────────────┤
│ Schlussfolgerungszeile: so_what Satz         │
├──────────────────────────────┤
│ Fußnote: Messgrößenerläuterung                 │
└──────────────────────────────┘

Stufe 4: Inhaltsgenerierung

4.1 Erstellung des DATA-Wörterbuchs

Basierend auf den Analyseergebnissen aus Stufe 2 werden die Daten in das standardisierte DATA-Wörterbuch eingetragen.

DATA = {
    "Projekt": "<Projektname>",
    "Zeitraum": "<YYYY Monat M>",
    "Einnahmen": {"Verwaltungsgebühren": 0, "Gemeinschaftseinnahmen": 0, "Nebengeschäfte": 0, "Sonstige": 0},
    "Einnahmen_Budget": {...},
    "Kosten": {"Personalkosten": 0, "Allgemeinenergie": 0, "Fremdvergabe": 0, "Reparatur/Wartung": 0, "Material/Verbrauch": 0, "Verwaltung/Sonstige": 0},
    "Kosten_Budget": {...},
    "Einzug": {"Forderungen laufender Monat": 0, "Eingänge laufender Monat": 0, "Alte Außenstände Anfangsbestand": 0, "Rückgewinnung alter Außenstände": 0},
    "Altersstruktur": {"0-30 Tage": 0, "31-90 Tage": 0, "91-180 Tage": 0, "Über 180 Tage": 0},
    "Effizienz": {"Verwaltungsfläche pro Kopf": 0, "Wertschöpfung pro Kopf": 0, "Personalkostenquote": 0, "Arbeitsaufträge pro Kopf": 0},
    "Trend_Monate": [...],
    "Trend_Einnahmen": [...],
    "Trend_Kosten": [...],
    "Budgeterfüllungsquote": 0,
    "Kostenquote": 0,
    "Budget_Kostenquote": 0,
    "Fazit_des_Monats": "<Dreizeilige Zusammenfassung: Betriebsergebnis + größte Abweichung + erste Maßnahme des nächsten Monats>",
    "Groesste_Abweichung": "<Posten und Betrag der größten Abweichung>",
    "Erste_Massnahme": "<Maßnahme mit höchster Priorität für den nächsten Monat>",
}

4.2 Generieren von Schlussfolgerungen pro Seite (so_what)

Pro Seite muss ein Schlussfolgerungssatz generiert werden, der das Publikum nicht im Unklaren lässt.

SeiteMuster für den Schlussfolgerungssatz
Einseitiges Fazit„Die Einnahmenseite hat die Anforderungen im Wesentlichen erfüllt, die Kostenseite ist der einzige Minuspunkt in diesem Monat; lösen Sie zuerst die Kosten, dann wird die Einzugsquote von selbst steigen.“
Einnahmen„Die Lücke von X Wan-Yuan bei den Nebengeschäften muss im nächsten Monat wieder aufgeholt werden; Gemeinschaftseinnahmen dürfen nicht in den Betriebsgewinn einfließen, um das Ergebnis zu schönen.“
Kosten„Die ersten beiden Abweichungen sind teilweise kontrollierbar und müssen in diesem Monat korrigiert werden; die letzten beiden sind unkontrollierbare/methodische Faktoren.“
Einzugsquote„Die Einzugsquote ist die Frucht der Servicequalität: Die Beschwerdeschließungsrate in diesem Monat liegt bei X%, die Reparaturzeitquote bei Y%. Dies sind die vorgelagerten Ursachen für die Einzugsquotenlücke.“
Personalproduktivität„Die Personaleffizienz hat sich nicht verschlechtert, aber die Kostenquote steigt zwei Monate in Folge. Im nächsten Monat müssen strukturelle Anpassungen bei der Schichtplanung und der Fremdleistungsabrechnung vorgenommen werden.“
Abweichungs-Ursachenanalyse„Die Verzögerung der Maßnahme (XXX) aus dem Vormonat ist die direkte Ursache für die Energieüberschreitung. Diese muss diesen Monat abgeschlossen werden, sonst wiederholt sich das Problem im nächsten Monat.“
Zusammenfassung & Maßnahmen„Ziele für den nächsten Monat: Einnahmen X Wan-Yuan, Kostenquote auf höchstens Y% senken; Risikowarnung: XXX muss vorzeitig beantragt werden.“

4.3 Ausdrucksdisziplin

Diese 6 Regeln entscheiden darüber, ob der Bericht professionell ist, und müssen in der Inhaltsgenerierungsphase eingehalten werden:

  1. Der Titel formuliert die Schlussfolgerung, nicht den Spaltennamen. ❌ „Kostenanalyse“ → ✅ „Kosten überschreiten Budget um 39.000 Yuan, Personal und Energie tragen gemeinsam 92% der Abweichung bei“
  2. Jede Seite hat einen so-what-Satz. Unter dem Diagramm muss eine Schlussfolgerungszeile stehen.
  3. Zahlen müssen mit Messgröße und Zeitraum angegeben werden. ❌ „Einzugsquote 92%“ → ✅ „Laufende Einzugsquote 92,0% (Messgröße: Eingänge laufender Monat / Forderungen laufender Monat, ohne Rückgewinnung alter Außenstände)“
  4. Die Farbbedeutung ist im gesamten Dokument festgelegt: Ziel erreicht = Grün (#2EA06A), Warnung = Gelb (#E8A31D), Ziel nicht erreicht = Rot (#D9453D)
  5. Die Ursachenanalyse muss geschlossen sein: Posten / Abweichungsbetrag / Abweichungsrate / Hauptgrund / Kontrollierbarkeit / Verantwortliche Abteilung / Frist
  6. Details in den Anhang, nur die Schlussfolgerungsdiagramme in den Hauptteil

4.4 Generieren der Besprechungsnotiz

Gemäß der Vorlage in references/03- Besprechungsnotiz.md wird für jede Seite eine dreiteilige Besprechungsnotiz generiert:

TeilInhaltDauer
Schlussfolgerung zuerstWas ist die Schlussfolgerung dieser Seite?10 Sekunden
DatenunterstützungSchlüsselzahlen + Messgröße + Referenzrahmen30 Sekunden
Hauptursache & MaßnahmeWarum + Wer + Wann + Wie abnahmen30 Sekunden

Rote Linien für die Besprechungsnotiz:

  1. Zuerst die Schlussfolgerung, dann den Prozess
  2. Quantifizierungsangaben müssen umsetzbar sein: ❌ „Kosten senken, Effizienz steigern“ → ✅ „Überstundenvergütung im Monatsvergleich um 30% senken, monatliche Kontoabstimmung“
  3. Keine Zahl nennen, ohne den Mund zu öffnen: Jedes Adjektiv muss durch eine Zahl untermauert sein
  4. Überprüfbar: Zu jeder Zahl muss die Antwort „Wo kann ich das nachschlagen?“ möglich sein
  5. Kontrollierbare Probleme proaktiv übernehmen: Zuerst sagen „Das ist mein Verantwortungsbereich, bis wann ich es korrigiert habe“
  6. Nicht erfinden, wenn die Antwort nicht bekannt ist: Standard-Ansatz: „Diese Zahl muss ich mit der Finanzabteilung abstimmen. Ich gebe heute bis Feierabend eine schriftliche Rückmeldung.“

Stufe 5: Aufruf des PPT-Tools

5.1 Ausführen des Generierungsskripts

Das Skript hängt von der Bibliothek python-pptx ab. Führen Sie das Generierungsskript dieser Fähigkeit aus:

pip install python-pptx
python <skill-dir>/scripts/build_deck.py

Das Skript liest das DATA-Wörterbuch und erstellt eine bearbeitbare Präsentation im Format 16:9 (13,333 × 7,5 Zoll).

build_pptx(data, output_path) erzeugt auf einmal 4 Dateien (gleicher Name, verschiedene Endungen):

DateiInhalt
<name>.pptxPräsentationsdatei selbst
<name>.speech.jsonSeitenweise Besprechungsnotiz (maschinenlesbare Version von Liefergegenstand ③)
<name>.speech.mdSeitenweise Besprechungsnotiz (kann direkt in den Chat-Text eingefügt werden)
<name>.deck.jsonMetadaten Seite ↔ Kapitel (für die Ausrichtungsprüfung durch das Prüfwerkzeug)

Zum Hinzufügen einer neuen Seite: Kopieren Sie das Seitenfunktionsmuster aus dem Skript:

add_slide() → header(s, idx, schlussfolgernder Titel, Phasen-Label) → Diagramm → so_what(s, Schlussfolgerungssatz)

Vergessen Sie nicht, beim Hinzufügen eines neuen Kapitels dessen Schlüsselwort in SECTION_KEYWORDS zu registrieren, sonst kann das Prüfwerkzeug den Inhalt nicht seitenweise abgleichen.

5.2 Strukturprüfung (MUSS durchgeführt werden)

Rufen Sie das pptx_check-Werkzeug aus dem Capability Center auf, um die Strukturprüfung durchzuführen und checks.json zu erzeugen:

router.execute("pptx_check", {
    "file_path": "<output>.pptx",
    "expected_count": <Seitenanzahl>,
    "must_contain": "Ursachenanalyse abweichender Posten, Laufende Einzugsquote, Personalproduktivität, Maßnahmen",
    "out": "<output>.checks.json",
})

Es prüft die folgenden Punkte und gibt eine Bewertung pass / warn / fail aus:

PrüfungErklärung
package / ooxml / openDatei-Validität, OOXML-Paketstruktur, kann geöffnet werden
aspectIst es 16:9?
countEntspricht die Seitenanzahl den Erwartungen?
containsSind die Schlüsselinhalte vorhanden?
section_contentSeitenweise Abgleich der „für dieses Kapitel erforderlichen Schlüsselinhalte“
so_whatBefindet sich am unteren Rand jeder Seite ein Schlussfolgerungssatz? (Ausnahme: Deckblatt, Roadmap, Anhang)
overflowFließt der Text über die Form hinaus? (Schätzung basierend auf Schriftmetriken)
color_semanticsWerden nur die definierten semantischen Farben verwendet?
chart_dataStimmen die Anzahl der Kategorien/Reihen der Diagramme mit der Quelle überein?
no_empty_slideGibt es leere Seiten?

Bewertungsmaßstab: Ein fail → es muss korrigiert werden, bevor ausgeliefert werden darf; warn → manuelle Überprüfung erforderlich (normalerweise Schätzungenauigkeiten).

overflow ist eine Schätzung, kein echtes Layout. Ein warn mit wenigen Einträgen ist normal; bei vielen Einträgen oder offensichtlich abgeschnittenem Text die optische Prüfung in 5.3 zur Bestätigung verwenden.

Falls der Tool-Name nicht verfügbar ist, direkt die Modulfunktion aufrufen: tool.common.pptx_check_tool.check_pptx(...).

5.3 Visuelle Prüfung (optional, abhängig von der Umgebung)

libreoffice --headless --convert-to png <file.pptx> --outdir preview

⚠ LibreOffice ist möglicherweise nicht in der Umgebung installiert. Falls nicht verfügbar, zurückfallen auf:

  • Jede Seite mit python-pptx lesen (Formen und Text) und Schlüsselseiten manuell überprüfen; oder
  • Mit PIL eine ungefähre Miniaturansicht basierend auf der Seitengröße erstellen (zeigt nur die Layoutverteilung, nicht die tatsächliche Darstellung).

Seitenweise Prüfung: Ist Text abgeschnitten? Stimmen die Zahlen in den Diagrammen mit der Datenquelle überein? Ist die Farbbedeutung einheitlich?

5.4 Auslieferung

Gleichzeitige Auslieferung von drei Dingen:

  1. PPTX-Datei — Bearbeitbare 16:9-Präsentation
  2. checks.json — Strukturprüfungsbericht (vom pptx_check erzeugt, Bewertung sollte pass sein)
  3. Besprechungsnotiz — Direkt im Chat-Text geschrieben, Format siehe references/03- Besprechungsnotiz.md, mit Zeitverteilungstabelle + Notfallplan für Rückfragen der Führung (≥6 Gruppen)

Fallstricke und Anti-Patterns

  • ❌ Mit einer bestimmten Beschwerde/einem bestimmten Streit beginnen – ohne den betrieblichen Rahmen kann das Publikum die Prioritäten nicht erkennen
  • ❌ Nur Zahlen auflisten – nur „wie viel“, ohne „warum“ und „was folgt daraus“
  • ❌ Nur den Abweichungsbetrag nennen, ohne den Verantwortlichen – in der Sitzung können keine Aufgaben entstehen
  • ❌ „Objektive Faktoren“ als Erklärung verwenden – muss auf ein konkretes Ereignis heruntergebrochen werden
  • ❌ Maßnahmen aus dem Vormonat nicht rückmelden – der Bericht schließt keinen Kreislauf
  • ❌ Nur eine einzige Zahl für die Einzugsquote angeben – muss in laufend / kumuliert / alte Außenstände / Altersstruktur aufgeschlüsselt werden

Verzeichnisstruktur

ppt_skill/
├── SKILL.md                          # Diese Datei: Anweisungen für die fünfstufige Pipeline
├── references/
│   ├── 01-Berichtslogik.md                # Sechsteiliger Rahmen, Seitenkontrolle, Ausdrucksdisziplin
│   ├── 02-Kennzahlensystem und Ursachenanalyse.md          # Tabelle der Messgrößen, Drei-Ebenen-Ursachenanalyse, Diagrammauswahl
│   └── 03- Besprechungsnotiz.md                # Vorlage für seitenweise Besprechungsnotiz, Zeitverteilung, Notfallplan für Rückfragen
├── assets/
│   └── Beispiel-Immobilienprojekt Monatliche Betriebsanalyse.pptx
├── scripts/
│   └── build_deck.py                 # Generierungsskript (DATA ändern reicht für Wiederverwendung)
└── checks.json                       # Beispiel eines historischen Prüfberichts (wird zur Laufzeit von pptx_check neu erstellt)

Abhängige Fähigkeiten und Werkzeuge

Fähigkeits-/WerkzeugnameOrtZweckErforderlich
pptx_checktool/common/pptx_check_tool.pyStufe 5.2 Strukturprüfung, erzeugt checks.jsonErforderlich
LibreOfficeExternes ProgrammStufe 5.3 Visuelle Prüfung (in PNG konvertieren)Optional, wird bei Nichtverfügbarkeit degradiert

pptx_check ist ein universelles Werkzeug, das von dieser Fähigkeit unabhängig ist und über das Capability Center bereitgestellt wird:

from core.capability import CapabilityRouter
from tool.common.pptx_check_tool import PptxCheckTool

router = CapabilityRouter()
router.add_tool(PptxCheckTool())  # Fähigkeit und Werkzeug werden auf derselben Ebene registriert

Die Fähigkeit ist kein Tool, daher wird zur Registrierung add_skill verwendet (build_capability_router verarbeitet dies automatisch), während pptx_check ein Tool ist und mit add_tool registriert wird.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills