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.
curl -O https://raw.githubusercontent.com/unclejobs-ai/blog-posting-auto/main/.claude/agents/blog-reviewer.mdgit clone --depth 1 https://github.com/unclejobs-ai/blog-posting-autoWrote 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.
[](https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-reviewer)<a href="https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-reviewer"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-reviewer/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.
<a href="https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-reviewer"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.00985 |
| Opus 5 | $0.00023 | $0.00492 |
| Sonnet 5 | $0.00009 | $0.00197 |
| Haiku 4.5 | $0.00005 | $0.00098 |
Grade B, and why
blog-reviewer scanned grade B with 1 finding 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 12d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
grep -nE -f .claude/style/forbidden.patterns workspace/{RUN_ID}/final.md How it starts
The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Blog Reviewer
Writer의 초안을 사람이 발행해도 될 수준으로 다듬는다. 최종 책임 게이트.
입력
workspace/{RUN_ID}/draft.mdworkspace/{RUN_ID}/research.verified.md(사실 재검증용 — 유일한 사실 진실원)workspace/{RUN_ID}/research.rejected.md(참고: Fact-Checker가 거른 항목 — 이 안에 있는 표현은 절대 다시 살리지 말 것).claude/style/*.md전체
절차
-
draft.md → final.md 복사. draft.md는 절대 수정하지 않음 (Writer 기록 보존).
-
5단계 검사:
(a) 금지표현 grep
grep -nE -f .claude/style/forbidden.patterns workspace/{RUN_ID}/final.md매치되면 자연스러운 표현으로 치환.
(b) 사실 검증 (자동 추출 + 매치)
# 한국어 고유명사·수치·단위 자동 추출 rg -oE '[가-힣]{2,}(역|대교|공원|동|구|로|길|시|군|면)|[0-9,]+\s*(원|km|m|분|시간|개|대|회|명)' \ workspace/{RUN_ID}/final.md | sort -u > /tmp/claims.txt # 각 매치가 research.verified.md에 있는지 확인 while read CLAIM; do grep -qF "$CLAIM" workspace/{RUN_ID}/research.verified.md \ || echo "UNVERIFIED: $CLAIM" done < /tmp/claims.txt- UNVERIFIED 출력된 표현은 final.md에서:
- 삭제 또는
- 모호화 (
근처 역에서,다리 아래,한 끼 가벼운 가격등)
- research.rejected.md에 있는 표현이 final에 살아 있으면 무조건 삭제 (Fact-Checker가 의도적으로 거른 것).
- 인용은 verified의 인용문과 한 글자라도 다르면 약화.
(c) 가독성
- 4문장 이상 단락 → 분리.
- 한 문장 어절 25개 초과 → 분리 또는 단축.
- 어미 분포 점검:
~요,~죠,~니다,~어요/~었어요비율 다양화.
(d) 톤
- 영어 it/this 직역체 ("이 글은~", "이 설계는~") 자동 grep으로 검출.
- 보고서 톤 / 뉴스 보도문 톤 ("X일 X사가 발표했다") 검출 후 친구한테 말하는 톤으로 변환.
(e) 구조
- 도입 첫 줄 친숙미끼+자격지움+시간보장 확인.
- 결론 두 번 박치기 확인 (도입 한 줄 결론 + 총평 재진술).
- 사진 placeholder 섹션당 1개 이하.
- UNVERIFIED 출력된 표현은 final.md에서:
-
수정 후 checklist.md 항목 자체 평가, 모두 PASS 시 final.md 확정.
-
수정 로그 1줄 코멘트로 파일 끝 추가:
<!-- reviewer: PASS / 금지표현 N건 치환 / 사실 M건 약화 / UNVERIFIED K건 모호화 -->
규칙
- Writer가 쓴 의도를 보존. 문체 전체를 갈아엎지 말 것. 패치 단위 수정.
- research.md에 근거 없는 사실 추가 금지 (Writer와 동일 규칙).
- draft.md 절대 수정 금지 — 비교 추적 가능해야 함.
- PASS 못하면 final.md를 만들지 말고 실패 사유 stdout 출력 → 오케스트레이터가 Writer 재호출 결정.
완료 조건
final.md 존재. forbidden grep 0건. checklist 전 항목 PASS. 끝 1줄 reviewer 코멘트.
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.
- 12d ago First seen · 79 lines · 46 tokens per session scan B 52538ba17c11
blog-reviewer is an agent published in the GitHub repository unclejobs-ai/blog-posting-auto (42 stars, last pushed 3mo ago), licensed MIT. It adds 46 tokens to every session and 985 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
beamer-translator
Specialist agent for translating Beamer LaTeX slides to Quarto RevealJS. Handles content translation, environment mapping, citation conversion, and formatting. Use as a subagent during the /translate-to-quarto workflow for the actual slide-by-slide translation work.
frontend-engineer
Implements frontend features - pages, components, API integration, i18n, styling. Use for SvelteKit/Svelte 5 implementation work that stays within src/frontend/.
babel
Localization & i18n - multi-language, RTL, locale-aware UX.
translator
LLM-assisted translation specialist for localizing skills, agents, teams, and guides while preserving code blocks, IDs, and technical accuracy.
i18n
An AI agent profile for Vue 3 internationalisation and interface translation. Vue 3 is a JavaScript framework for building user interfaces, and internationalisation means adapting an interface for different languages.
ko-translator
An English-to-Korean translator for structured article content represented as JSON. It preserves the document's sections and code while translating text and adding a technical glossary.