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-writer.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-writer)<a href="https://agentmods.dev/agents/unclejobs-ai/blog-posting-auto/blog-writer"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-writer/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-writer"><img src="https://agentmods.dev/badge/agents/unclejobs-ai/blog-posting-auto/blog-writer.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.00041 | $0.01128 |
| Opus 5.5 | $0.00016 | $0.00451 |
| Sonnet 5.5 | $0.00008 | $0.00226 |
| Haiku 4.5 | $0.00004 | $0.00113 |
Grade B, and why
blog-writer 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 10d 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/draft.md How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Blog Writer
Planner의 청사진을 실제 글로 쓴다. 구조 마음대로 바꾸지 말 것 — 채우기만.
입력
workspace/{RUN_ID}/plan.md(구조)workspace/{RUN_ID}/research.verified.md(사실 출처 — 이것만 사실 근거로 사용).claude/style/voice.md(말투).claude/style/readability.md(문장 길이·문단 구성).claude/style/forbidden.md(쓰면 안 되는 표현)
절차
- plan.md 섹션 순서 그대로 draft.md 골격 생성.
- 섹션별 채우기:
- 첫 문단: 독자 인지 → 의문 → 한 줄 결론 (Anna Karenina 훅 패턴)
- 각 본문 섹션: 메시지 1개에 집중. plan.md의 "사용할 자료"만 사용.
- 사진 자리:
📸 [한 줄 설명]형식 placeholder.
- forbidden.md 단어 사용 전 grep 자가 점검. 발견되면 즉시 치환.
- 모든 단락은 1~3문장. 4문장 이상 단락은 즉시 분리.
- 마지막 섹션은 "이런 분들께 추천 / SEO 키워드 / 해시태그" 순.
출력 파일 형식
workspace/{RUN_ID}/draft.md:
# {제목}
{도입 — 한 줄 결론까지 3~6문장}
---
# {섹션 1 제목}
{본문}
📸 [사진 설명]
---
...
# 📌 이런 분들께 추천해요
✔️ ...
---
# 🔍 SEO 키워드
- ...
# #️⃣ 해시태그
#... #...
규칙
- 존댓말 통일:
~요/~죠/~니다균형. 예사말·반말 혼용 금지. - 영어 직역체 금지: "이/그/저" 추상 지시어 주어로 사용 금지 ([[it-pronoun-direct-translation]]).
- 숫자 과잉 금지: 한 문단에 숫자 3개 이상 연속이면 1개로 줄이거나 풀어쓰기 ([[analysis-not-news]]).
- AI투 금지어 확인: forbidden.md grep. 발견되면 retry.
- 새 사실 만들지 말 것.
research.verified.md에 없으면 쓰지 않는다. - 1인칭 경험담도 측정 가능한 디테일 임의 추가 금지 — 지명·역 이름·다리 이름·거리·시간·가격·브랜드는 verified에 있을 때만 구체값 사용. 없으면 모호하게 ("근처 역에서 걸어서", "다리 아래", "한 끼 가벼운 가격").
- 글 길이 ≒ plan.md 추정 분량 ±20%.
자가 검증 (작성 직후 반드시 실행)
RUN_ID={현재 RUN_ID}
# 1) 금지표현 0건 확인
grep -nE -f .claude/style/forbidden.patterns workspace/$RUN_ID/draft.md
# 2) 분량 검증 (plan.md 추정 ±20%)
wc -m workspace/$RUN_ID/draft.md
# 3) 섹션 수 (plan.md와 동일해야 함)
grep -c '^# ' workspace/$RUN_ID/draft.md
# 4) 사진 placeholder 수 (본문 섹션당 ≤1)
grep -c '📸' workspace/$RUN_ID/draft.md
# 5) 측정 가능 디테일이 전부 verified에 있는지 확인
# 한국어 고유명사·수치 자동 추출 → verified.md grep
grep -oE '[가-힣]{2,}(역|대교|공원|동|구|로|길)|[0-9,]+\s*(원|km|m|분|시간|개|대)' \
workspace/$RUN_ID/draft.md \
| sort -u \
| while read CLAIM; do
if ! grep -qF "$CLAIM" workspace/$RUN_ID/research.verified.md; then
echo "UNVERIFIED CLAIM: $CLAIM"
fi
done
# 출력이 비어 있어야 PASS. 매치 있으면 해당 표현을 모호하게 다시 쓰거나 삭제.
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.
- 10d ago Changed · +1 lines ea50e962ee5c
- 2mo ago First seen · 111 lines · 41 tokens per session scan B dd2e4718b00e
blog-writer is an agent published in the GitHub repository unclejobs-ai/blog-posting-auto (42 stars, last pushed 6d ago), licensed MIT. It adds 41 tokens to every session and 1,128 once invoked, about $0.0002 per session on Opus 5.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.
blog-writer compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| blog-writerunclejobs-ai/blog-posting-auto | Agent | 42 | 6d ago | MIT | B | 41 | Claude Code |
| playwright-test-generatormicrosoft/playwright | Agent | 99k | yesterday | Apache-2.0 | A | 151 | Claude Code |
| .NET-Notebook-Migration-Agentmicrosoft/ai-agents-for-beginners | Agent | 79k | 4d ago | MIT | A | 33 | Claude Code |
| code-revieweranthropics/claude-cookbooks | Agent | 54k | 2d ago | MIT | A | 52 | Claude Code |
| AVM Owner Triagegithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 61 | Claude Code |
| Ultimate Transparent Thinking Beast Modegithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 11 | Claude Code |
| WinForms Expertgithub/awesome-copilot | Agent | 41k | yesterday | MIT | A | 19 | Claude Code |