Communitygithub.com

baronguyen001/ai-automation-skills

예약 실행 간에 레코드를 추가 전용 JSON Lines(줄당 하나의 객체)로 유지하며, 스트리밍 읽기와 선택적 키 기반 중복 제거를 지원하고 표준 라이브러리만 사용합니다. 사용자가 JSONL에 실행 결과를 기록하거나, 이벤트를 파일에 추가하거나, 실행 간에 ID로 레코드를 중복 제거하거나, 데이터베이스 없이 간단한 지속형 히스토리를 유지하려 할 때 사용하세요.

ai-automation-skills란 무엇인가요?

이 스킬은 예약 작업이 완료된 작업을 기억해야 하지만 데이터베이스를 사용하기에는 번거로운 경우에 이상적입니다. JSONL(JSON Lines) 형식은 추가에 친화적이고, 사람이 읽을 수 있으며, grep 검색이 가능하고, 전체 파일을 로드하지 않고 스트리밍 방식으로 읽을 수 있습니다. 제공되는 도우미는 원자적 추가, 손상된 줄을 건너뛰는 스트리밍 읽기, 그리고 `append_unique(record, key)` 함수를 통한 실행 간 ID 중복 방지를 지원합니다. 주요 플랫폼(Claude Code, Cursor, Codex 등)에서 사용할 수 있으며, `assets/store.py`에 구현된 `JsonlStore` 클래스를 통해 간단한 파일 기반 상태 관리를 제공합니다. 사용자가 JSONL 파일에 결과를 기록하거나, 실행 간 중복을 방지하면서 이벤트를 추가하거나, 데이터베이스 없이 간단한 히스토리를 유지하려 할 때 이 스킬을 호출하세요. 그러나 쿼리, 인덱스, 동시 쓰기가 필요하거나 레코드가 크거나 바이너리인 경우에는 SQLite나 실제 데이터베이스를 사용해야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/baronguyen001/ai-automation-skills/tree/HEAD/skills/jsonl-store

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

JSONL Store

예약 작업이 이미 수행한 작업(발송된 알림, 처리된 ID, 캡처된 이벤트)을 기억해야 하지만 데이터베이스를 사용하기에는 과할 때 이 스킬을 사용하세요. JSON Lines(줄당 하나의 JSON 객체)는 추가에 친화적이며, 사람이 읽을 수 있고, grep으로 검색 가능하며, 전체 파일을 로드하지 않고 스트리밍 방식으로 읽을 수 있습니다. 이 도우미는 원자적 추가, 손상된 줄에서도 복구되는 스트리밍 읽기, 그리고 동일한 ID가 실행 간에 두 번 기록되지 않도록 하는 append_unique(record, key)를 제공합니다.

호출 시점

  • 사용자가 "JSONL 파일에 결과 기록", "디스크에 이벤트 추가", "실행 간 ID 중복 제거", "데이터베이스 없이 간단한 히스토리 유지"라고 말할 때.
  • 크론/예약 스크립트가 플랫 파일에서 실행 간 상태를 지속적으로 유지해야 할 때.

호출하지 말아야 할 때

  • 쿼리, 인덱스 또는 동시 쓰기가 필요한 경우 - SQLite(sqlite-state) 또는 실제 데이터베이스를 사용하세요.
  • 레코드가 크거나 바이너리인 경우 - JSONL은 작은 구조화된 행을 위한 것입니다.

구체적인 예시

사용자 입력:

각 실행 후 새 알림을 alerts.jsonl에 추가하되, 동일한 알림 ID가 두 번 추가되지 않도록 하세요.

출력:

# assets/store.py를 프로젝트에 복사한 후:
from store import JsonlStore

store = JsonlStore("data/alerts.jsonl")
for alert in new_alerts:
    if store.append_unique(alert, key="id"):
        send(alert)        # 이전 실행에서 보지 못한 ID에 대해서만 전송

print("히스토리 크기:", store.count())

읽기는 줄 단위로 스트리밍되므로 1년 치 히스토리도 메모리에 완전히 로드되지 않으며, 크래시로 인해 반쯤 쓰인 마지막 줄은 건너뛰어 다음 실행이 중단되지 않습니다.

적용 패턴

  1. 줄당 하나의 JSON 객체; 텍스트를 읽기 쉽게 유지하려면 ensure_ascii=False로 추가합니다.
  2. 제너레이터로 스트리밍 읽기; 오류를 발생시키는 대신 빈 줄이나 손상된 줄을 건너뜁니다.
  3. seen_keys(key) / append_unique(record, key)로 중복을 제거하여 실행을 멱등성 있게 만듭니다.
  4. 스케줄러와 함께 사용하여 파일이 실행 간 지속적인 메모리 역할을 하도록 합니다.

참고: assets/store.py.

출처

작성자의 예약 봇 상태 처리에서 비롯되었습니다. v1.0.0. 참고: [[sqlite-state]], [[cron-dispatch]], [[pipeline-orchestrator]].

→ 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.

관련 스킬