Communitygithub.com

baronguyen001/ai-automation-skills

Persistiert Datensätze zwischen geplanten Ausführungen als append-only JSON Lines (ein Objekt pro Zeile) mit Streaming-Lesevorgängen und optionaler, schlüsselbasierter Deduplizierung, nur Standardbibliothek. Verwenden Sie dies, wenn der Benutzer Ausführungsergebnisse in JSONL protokollieren, Ereignisse an eine Datei anhängen, Datensätze nach ID über Ausführungen hinweg deduplizieren oder einen einfachen dauerhaften Verlauf ohne Datenbank führen möchte.

Was ist ai-automation-skills?

Dieser Skill bietet ein einfaches, dateibasiertes System zur dauerhaften Speicherung von Datensätzen im JSON Lines Format (JSONL), ideal für geplante Jobs, die sich erinnern müssen, was sie bereits getan haben – wie das Protokollieren von Ergebnissen, das Verfolgen verarbeiteter IDs oder das Erfassen von Ereignissen – ohne eine Datenbank zu verwenden. Er unterstützt atomare Anhängevorgänge, gestreamte Lesevorgänge, die auch bei einer beschädigten Zeile nicht abbrechen, und eine `append_unique(record, key)` Funktion, die verhindert, dass dieselbe ID zweimal geschrieben wird. Der Skill ist als Python-Modul (`store.py`) implementiert und verwendet nur die Standardbibliothek, was ihn portabel und einfach in jedes Projekt integrierbar macht. Entwickler sollten diesen Skill nutzen, wenn sie eine menschenlesbare, durchsuchbare und streamingfähige Historie benötigen, und auf SQLite oder echte Datenbanken zurückgreifen, wenn sie Abfragen, Indizes oder gleichzeitige Schreiber brauchen.

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

In Ihrer bevorzugten KI fragen

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

Dokumentation

JSONL Store

Verwenden Sie diesen Skill, wenn ein geplanter Job sich merken muss, was er bereits getan hat – ausgelöste Warnungen, verarbeitete IDs, erfasste Ereignisse – aber eine Datenbank übertrieben ist. JSON Lines (ein JSON-Objekt pro Zeile) ist append-freundlich, menschenlesbar, grep-bar und streamt ohne die gesamte Datei zu laden. Dieser Helfer fügt atomare Anhängevorgänge, gestreamte Lesevorgänge, die auch bei einer beschädigten Zeile funktionieren, und append_unique(record, key) hinzu, sodass dieselbe ID nie zweimal geschrieben wird.

Wann verwenden

  • Der Benutzer sagt: „Ergebnisse in eine JSONL-Datei protokollieren“, „Ereignisse an die Festplatte anhängen“, „nach ID über Ausführungen hinweg deduplizieren“, „einen einfachen Verlauf ohne Datenbank führen“.
  • Ein Cron/geplantes Skript benötigt einen dauerhaften Zustand zwischen den Ausführungen in einer einfachen Datei.

Wann NICHT verwenden

  • Sie benötigen Abfragen, Indizes oder gleichzeitige Schreiber – verwenden Sie SQLite (sqlite-state) oder eine echte Datenbank.
  • Datensätze sind riesig oder binär – JSONL ist für kleine strukturierte Zeilen.

Konkretes Beispiel

Benutzereingabe:

Nach jeder Ausführung neue Warnungen an alerts.jsonl anhängen, aber niemals dieselbe Warnungs-ID zweimal.

Ausgabe:

# Kopieren Sie assets/store.py in Ihr Projekt, dann:
from store import JsonlStore

store = JsonlStore("data/alerts.jsonl")
for alert in new_alerts:
    if store.append_unique(alert, key="id"):
        send(alert)        # wird nur für IDs ausgelöst, die in keiner vorherigen Ausführung gesehen wurden

print("Historiengröße:", store.count())

Lesevorgänge streamen Zeile für Zeile, sodass ein Jahr Historie nie vollständig in den Speicher geladen wird, und eine halbgeschriebene letzte Zeile nach einem Absturz wird übersprungen, anstatt die nächste Ausführung zu unterbrechen.

Anzuwendendes Muster

  1. Ein JSON-Objekt pro Zeile; mit ensure_ascii=False anhängen, damit Text lesbar bleibt.
  2. Lesevorgänge mit einem Generator streamen; leere/beschädigte Zeilen überspringen, statt einen Fehler zu werfen.
  3. Deduplizieren mit seen_keys(key) / append_unique(record, key), um Ausführungen idempotent zu machen.
  4. Mit einem Scheduler kombinieren, sodass die Datei der dauerhafte Speicher zwischen den Aufrufen ist.

Referenz: assets/store.py.

Quelle

Abgeleitet aus der Zustandsverwaltung des geplanten Bots des Autors. v1.0.0. Siehe auch: [[sqlite-state]], [[cron-dispatch]], [[pipeline-orchestrator]].

→ Bauen Sie den vollständig ausführbaren 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

Turn a run's list of result dicts into a schema'd CSV and a Markdown table from one column spec - declare columns once, emit both, with stable ordering and safe escaping, stdlib only, no pandas. Use when the user asks to write results to CSV, export a report, make a markdown summary table, or save a run's output as a spreadsheet.

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

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