Communitygithub.com

baronguyen001/ai-automation-skills

Erstellt aus einer Liste von Ergebnisdicts ein schema-definiertes CSV und eine Markdown-Tabelle auf Basis einer einzigen Spaltendefinition – einmal deklarieren, beides ausgeben, mit stabiler Sortierung und sicherer Maskierung, nur stdlib, kein Pandas. Verwende es, wenn der Benutzer fordert, Ergebnisse als CSV zu schreiben, einen Bericht zu exportieren, eine Markdown-Zusammenfassungstabelle zu erstellen oder die Ausgabe eines Laufs als Tabelle zu speichern.

Was ist ai-automation-skills?

Dieses Skill ermöglicht einem KI-Agenten (z. B. Claude Code, Cursor, Codex), die Ergebnisse einer Aufgabenausführung sauber und konsistent in zwei Formate zu exportieren: als CSV für Tabellenkalkulationen (z. B. Excel, Google Sheets) und als Markdown-Tabelle für PR-Kommentare, Telegram-Digests oder andere druckbare Zusammenfassungen. Die Kernidee ist die einmalige Definition von Spalten (Schlüssel, Kopfzeile, optionaler Formatierer) in einer `Column`-Datenklasse; beide Ausgaben nutzen exakt dieselbe Liste und Reihenfolge, sodass CSV und Tabelle nie auseinanderdriften. Es arbeitet ohne externe Abhängigkeiten (nur Python-Standardbibliothek), verwendet `csv.writer` für korrekte Quotierung, maskiert Pipe-Zeichen und Zeilenumbrüche in der Markdown-Tabelle, behandelt fehlende Schlüssel als leere Zellen und kommt ohne Pandas aus. Die Plattform ist jedes Python-3.x-System; der Agent kann den bereitgestellten `assets/report.py`-Helfer in Projekte kopieren und die Funktionen `write_csv` und `to_markdown` nutzen. Das Skill ist besonders nützlich für automatisierte Skripte, CI-Pipelines oder Chatbots, die strukturierte Ergebnisse schnell und fehlerfrei in verschiedene Formate bringen müssen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/baronguyen001/ai-automation-skills/tree/HEAD/skills/csv-report-writer

In Ihrer bevorzugten KI fragen

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

Dokumentation

CSV-Bericht-Schreiber

Verwende dieses Skill, wenn ein Job eine Liste von Ergebniszeilen erzeugt und du ein ordentliches CSV für Tabellenkalkulationen sowie eine Markdown-Tabelle für einen PR-Kommentar oder Telegram-Digest benötigst – aus einer einzigen Spaltendefinition, sodass die beiden Ausgaben nie auseinanderdriften. Du deklarierst die Spalten (Schlüssel, Kopfzeile, optionaler Formatierer) einmal; der Helfer gibt beides aus, in stabiler Spaltenreihenfolge, mit korrektem CSV-Quoting und Pipe-Maskierung für Markdown. Kein Pandas.

Wann verwenden

  • Der Benutzer sagt: „Schreibe die Ergebnisse in ein CSV“, „Exportiere einen Bericht“, „Erstelle eine Markdown-Tabelle davon“, „Speichere die Ausgabe des Laufs als Tabelle“.
  • Der Code im Gespräch enthält eine list[dict] (oder eine Liste von Objekten), die derzeit ad hoc ausgegeben wird.

Wann NICHT verwenden

  • Die Daten erfordern echte Dataframe-Arbeit – Joins, Group-bys, Pivots; greife stattdessen zu Pandas/Polars.
  • Ein einzelner skalarer Wert, bei dem ein CSV / eine Tabelle übertrieben wäre.

Konkretes Beispiel

Benutzereingabe:

Ich habe eine Liste gescannter Token mit einem Score und Preis. Speichere ein CSV und gib mir auch eine Markdown-Tabelle für den Telegram-Digest.

Ausgabe:

# Kopiere assets/report.py in dein Projekt, dann:
from report import Column, write_csv, to_markdown

columns = [
    Column("symbol", "Symbol"),
    Column("score", "Score", fmt=lambda v: f"{v:.1f}"),
    Column("price_usd", "Preis", fmt=lambda v: f"${v:,.4f}"),
]
rows = [
    {"symbol": "ABC", "score": 8.4, "price_usd": 0.0123},
    {"symbol": "XYZ", "score": 6.1, "price_usd": 1.5},
]

write_csv("scan.csv", columns, rows)        # schema-definiertes CSV, stabile Spaltenreihenfolge
print(to_markdown(columns, rows))           # gleiche Spalten, Markdown-Tabelle

Beide Ausgaben verwenden exakt dieselben Spalten in derselben Reihenfolge, sodass das CSV und die Digest-Tabelle immer übereinstimmen.

Anzuwendendes Muster

  1. Deklariere jede Column(key, header, fmt=...) einmal; beide Schreiber konsumieren dieselbe Liste, sodass Kopfzeilen und Reihenfolge synchron bleiben.
  2. Halte die Spaltenreihenfolge stabil und explizit – verlasse dich nicht auf die Dict-Einfügereihenfolge beliebiger Zeilen.
  3. Überlasse dem fmt-Callable die Präsentation (Währung, Rundung); speichere Rohwerte in den Zeilen-Dicts.
  4. Verwende csv.writer für korrektes Quoting; maskiere | und Zeilenumbrüche in der Markdown-Tabelle, damit das Layout nie kaputt geht.
  5. Behandle einen fehlenden Schlüssel als leere Zelle, anstatt abzustürzen, sodass unvollständige Zeilen trotzdem berichtet werden.

Referenz: assets/report.py.

Quelle

Destilliert aus dem produktiven Einsatz in den Automatisierungsprojekten des Autors. v1.0.0. Siehe auch: [[pr-body-formatter]], [[sqlite-state]], [[telegram-alerter]].

→ Erstelle den vollständig lauffähigen Bot mit Trawlkit.

Individual skills in this repo

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

baronguyen001/ai-automation-skills

Schedule any script to run on a recurring schedule on Windows (Task Scheduler) or Linux (cron) - register, list, and remove jobs from one command, with logging to a file and a guard against overlapping runs. Use for schedule a script, run nightly, set up a cron job, windows task scheduler, or run on a timer.

baronguyen001/ai-automation-skills

Strip HTML to clean plain text with the standard library only (no BeautifulSoup/lxml): drops script/style, turns block tags into line breaks, and collapses whitespace. Use when the user wants readable text from an HTML page/email, to clean scraped HTML before sending it to an LLM, or to build a text index from web content.

baronguyen001/ai-automation-skills

Persist records between scheduled runs as append-only JSON Lines (one object per line) with streaming reads and optional key-based dedup, stdlib only. Use when the user wants to log run results to JSONL, append events to a file, dedup records by id across runs, or keep a simple durable history without a database.

baronguyen001/ai-automation-skills

Extract text and simple table-like rows from a PDF for downstream AI without OCR binaries. Use when the user asks to read a PDF, turn a PDF into text, pull simple tables from statements/reports, or feed PDF content into an LLM pipeline.

baronguyen001/ai-automation-skills

Rotate a pool of HTTP/SOCKS proxies with round-robin selection, failure tracking, and a cooldown that benches dead proxies before retrying. BYO proxy list via env - none are shipped. Use for rotate proxies, spread requests across proxies, avoid IP bans, retry through a different proxy, or proxy health check.

baronguyen001/ai-automation-skills

Parse an RSS 2.0 or Atom feed into normalized item dicts (title, link, id, published, summary) with the standard library only - no feedparser. Use when the user asks to read an RSS/Atom feed, poll a blog/news feed, extract feed entries, or watch a site that publishes a feed.

baronguyen001/ai-automation-skills

Upload and download run artifacts from S3-compatible storage with BYO bucket and credentials from env. Use when the user asks to store scraper output, archive reports, publish artifacts to object storage, fetch a prior run file, or use MinIO/R2/Spaces/S3 without hardcoding credentials.

baronguyen001/ai-automation-skills

Draft a short-form TikTok/Reels/Shorts or long-form video script from a topic and creator persona file - hook variants, beat-structured body, CTA, b-roll cues, caption overlays, and [STORY]/[NUMBER] slots so the model never fabricates personal facts. Use for write a video script, tiktok script, youtube script, or /shortform-script.

baronguyen001/ai-automation-skills

Give scheduled scripts memory between runs with one SQLite file - a seen-set for dedup, a key/value cursor to resume where you left off, and order-preserving new-item filtering. Use for dedup across runs, don't re-alert the same item, remember the last id, resume a scraper, or persist state between cron runs.

Verwandte Skills