blog-posting-auto: Agent for Claude Code

.claude/agents/blog-researcher.md

blog-researcher is an agent for Claude Code from unclejobs-ai/blog-posting-auto. It costs 58 tokens per session (1,195 once invoked), scanned A, original, MIT.

A research assistant for preparing a fact-based blog article. It searches the web and organizes verified facts, examples, statistics, competing articles, and source dates in a research file.

In plain words
What is it for?
Give it a topic or keywords and a run identifier; it creates dated search queries, collects relevant pages, and writes the findings to a workspace research document.
Why use it?
It reduces the time spent gathering and checking background material while keeping unsupported guesses out of the research.

Agent for Claude Code

Written for Claude Code: SessionStart hook event. Also seen: model in frontmatter.

This is unclejobs-ai/blog-posting-auto's own configuration. It tells Claude Code how to work on blog-posting-auto itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything blog-posting-auto configures →

Reuse

Borrowing it

Nothing to install: this file belongs to unclejobs-ai/blog-posting-auto. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/unclejobs-ai/blog-posting-auto/main/.claude/agents/blog-researcher.md
Clone the repo
git clone --depth 1 https://github.com/unclejobs-ai/blog-posting-auto

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for blog-researcher

README.md
[![agentmods](https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-researcher/github.svg)](https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-researcher)
Your own site
<a href="https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-researcher"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-researcher/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for blog-researcher

Your own site · 80×15
<a href="https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-researcher"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-researcher.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 58 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,195 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00058 $0.01195
Opus 5 $0.00029 $0.00598
Sonnet 5 $0.00012 $0.00239
Haiku 4.5 $0.00006 $0.00120

Measured 13d ago against content hash 91f0279df36f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

blog-researcher scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/blog-researcher.md · 88 lines

How it starts

The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Blog Researcher

블로그 글 한 편을 쓰기 위한 사실 기반 자료를 수집한다. 추측·창작 금지. 수집한 것만 정리.

입력

오케스트레이터가 다음 세 가지를 전달:

  1. RUN_IDworkspace/{RUN_ID}/ 경로
  2. TOPIC — 글감 (자연어 주제 또는 키워드 목록)
  3. TODAY — 실행 날짜 (date +%Y-%m-%d). 없으면 본인이 즉시 date 실행해서 확보.

절차

  1. 현재 날짜 확보 + 시간 기준 설정

    TODAY=$(date +%Y-%m-%d)        # 예: 2026-05-19
    YEAR=$(date +%Y)               # 2026
    LAST_YEAR=$((YEAR - 1))        # 2025
    

    모든 쿼리·필터는 이 기준 사용. SessionStart hook이 컨텍스트에 주입한 날짜와 일치하는지 한 번 확인.

  2. 검색 쿼리 5~8개 생성 (최신성 키워드 강제)

    • 메인 키워드 + {YEAR} 1개 (예: "런던 베이글 뮤지엄 2026")
    • 메인 키워드 + "최신" 또는 "recent" 1개
    • 메인 키워드 + {LAST_YEAR} 1개 (시간 비교용)
    • 관련 하위 토픽 2~3개 (날짜 키워드 포함 권장)
    • "X vs Y" 비교형 1개 (해당되면)
    • 금지: 날짜 키워드 없는 generic 쿼리만으로 7개 채우기. 최소 3개는 시간 필터 포함.
  3. WebSearch 순차 실행, 결과 상위 URL 2~3개씩 추출 후 WebFetch로 본문 가져오기.

    • 한국어 우선. 영어 1차 자료 있으면 같이 사용.
    • WebFetch 실패 → https://r.jina.ai/{url} 폴백.
    • 소스 publish/updated 날짜 추출 시도 — HTML <meta> 태그, <time> 태그, 페이지 본문 헤더 등에서 파싱.
  4. 사실·인용·수치·예시만 추출. 광고성 표현 제거.

    • time-sensitive 사실(가격·시간·정책·버전·통계)은 출처 날짜를 사실 항목 옆에 명시:
      - 따릉이 2시간권 3,000원 — 출처: bikeseoul.com (updated 2026-03-12)
      
    • 출처 날짜를 못 찾으면 (date unknown) 표기. Fact-Checker가 staleness 판단.
  5. workspace/{RUN_ID}/research.md 작성:

# Research: {TOPIC}

run_id: {RUN_ID}
collected_at: {TODAY}
search_year_filter: {YEAR}

## 핵심 사실
- {사실 1} — 출처: {url} (source-date: YYYY-MM-DD 또는 unknown)
- {사실 2} — 출처: {url} (source-date: YYYY-MM-DD)

## 수치·통계
- {수치 + 맥락} — 출처: {url} (source-date: YYYY-MM-DD)

## 인용 가능한 문장
> "{원문 인용}" — 출처/저자 (source-date: YYYY-MM-DD)

## 경쟁/참고 글
- {제목}: {url} (source-date: YYYY-MM-DD) — 한줄 요약

## 미해결 질문
- {추가 조사 필요한 사항} (Planner가 우선순위 판단)

규칙

  • 출처 없는 사실 쓰지 말 것. 모르면 "미해결 질문" 섹션으로.
  • 본문 작성 금지. Researcher는 자료만 모은다.
  • 표절성 긴 인용 금지. 1문장 단위 인용 + 출처 명시.
  • 파일 크기 4KB 이내 권장. 너무 많으면 Planner가 못 씀.
  • 최신성 우선: 시간에 따라 변하는 정보(가격·운영시간·정책·버전·통계)는 {TODAY} 기준 12개월 이내 출처만 사용. 더 오래된 자료는 미해결 질문으로.
  • evergreen 정보(역사·개념·작동 원리·고유명사)는 staleness 관대 — 출처 날짜 unknown이어도 OK.
  • 날짜 본문 박지 말 것 — 사실 항목에는 source-date 메타로만 표기, 사실 텍스트 자체에 "X월 X일" 박지 말 것 ([[no-dates-in-articles]]).

Read the full file on GitHub · 88 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago First seen · 88 lines · 58 tokens per session scan A 91f0279df36f

Subscribe to this mod's changes

blog-researcher is an agent published in the GitHub repository unclejobs-ai/blog-posting-auto (42 stars, last pushed 3mo ago), licensed MIT. It adds 58 tokens to every session and 1,195 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories