blog-write-sample

blog-write-sample is a skill for Claude Code, Codex from CocoRoF/Geny. It costs 31 tokens per session (1,021 once invoked), scanned A, original, Apache-2.0.

A sample template for delegating a blog-writing task to an external AI service. It demonstrates sending a long-running job, notifying the user, and later reporting the result in plain language.

In plain words
What is it for?
Use it as a starting point for connecting a writing workflow to an external service, including submitting jobs, checking status when asked, and handling completed results.
Why use it?
It provides a model for handling work that takes more than a few seconds and finishes through a notification or webhook. It also shows when direct execution is simpler for quick tasks.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/cocorof/geny/blog_write_sample
Any agent
npx skills add CocoRoF/Geny --skill blog_write_sample
Clone the repo
git clone --depth 1 https://github.com/CocoRoF/Geny

Made for: Claude Code, Codex.

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-write-sample

README.md
[![agentmods](https://agentmods.dev/badge/skills/cocorof/geny/blog_write_sample.svg)](https://agentmods.dev/skills/cocorof/geny/blog_write_sample)
Your own site
<a href="https://agentmods.dev/skills/cocorof/geny/blog_write_sample"><img src="https://agentmods.dev/badge/skills/cocorof/geny/blog_write_sample.svg" alt="Measured on agentmods" height="20"></a>
Per session 31 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,021 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00031 $0.01021
Opus 5 $0.00015 $0.00511
Sonnet 5 $0.00006 $0.00204
Haiku 4.5 $0.00003 $0.00102

Measured 4d ago against content hash 8fa8dbcd7144, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

blog-write-sample 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 4d 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.

backend/skills/samples/blog_write_sample/SKILL.md · 93 lines

How it starts

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

Blog Write — Sample / Template

이 파일은 학습용 샘플입니다. 실제로 사용하려면:

  1. SkillsTab → CUSTOM 샘플 섹션 → "Copy to my skills" 버튼으로 ~/.geny/skills/ 로 복사
  2. 복사된 파일의 name을 자기 슬러그로 바꾸기 (예: my-blog-write)
  3. allowed_tools 의 도구 이름과 본문의 호출 예시를 자기 시나리오에 맞게 수정
  4. SkillsTab 상단에서 user_skills_enabled 토글이 ON 인지 확인 — Off면 user-skills 자체가 로드되지 않습니다

이 샘플은 blog_write (Geny-bundled) 와 동일한 동작을 하지만, 외부 API 위임 패턴을 직접 따라 쓰기 위한 주석이 풍부한 버전입니다.


핵심 패턴 — fire-and-poll 위임

이 패턴은 다음 3가지 조건을 만족하는 외부 시스템에 적합합니다:

  1. 시간이 걸리는 작업 (5초 이상): 답이 즉시 안 옴.
  2. 사용자가 결과를 기다림: 사용자는 알림이 필요.
  3. 외부 시스템이 SSE / webhook 등으로 완료를 알릴 수 있음: Geny의 inbox 로 결과 도착 가능.

블로그 위임은 위 3가지를 다 만족. 만약 본인이 만들 도구가 동기적으로 답하면(예: 단순 GET API), 굳이 이 패턴을 쓸 필요 없고 그냥 직접 호출 → paraphrase 하면 됩니다.


A. 새 작업 위임

<your_delegate_tool>(
  task="<외부 AI 에게 줄 지시문 — 자세히>",
  task_summary="<사용자에게 들려줄 한 줄, 5단어 이내>"
)

위임 후:

  • 사용자에게는 "맡겼어. 잠깐만 기다려." 정도로만.
  • 당신의 turn 은 여기서 종료. 백그라운드 진행.
  • 끝나면 [EXTERNAL_TASK_RESULT] 메시지가 새 turn 에서 도착 → 그때 결과를 paraphrase.

B. 진행 상황 확인

사용자가 묻기 전에 status 를 폴링하지 말 것. 사용자가 물을 때만 호출하고, JSON / task_id 를 노출하지 말고 자연어로:

<your_status_tool>(task_id="...")
→ 결과의 progress_hint, elapsed_s, last_event_age_s 를 보고 1-2 문장으로 답

C. 취소

사용자가 명시적으로 "취소", "그만" 등을 표현하면:

<your_cancel_tool>(task_id="...")

D. 참고 조회

읽기 전용 lookup 도구 (이 sample 의 list_posts / get_post)는 사용자가 명시적으로 요청할 때만 호출. 위임의 사전 조사로 자동 호출하지 말 것 — 지연만 늘어남.


자신만의 외부 위임 skill 만들 때 체크리스트

  • allowed_tools 에 외부 시스템의 모든 도구 이름이 들어갔는가?
  • task_summary 길이 제한이 description 에 명시되어 있나?
  • turn 종료 시점이 명확한가? (delegate 직후 종료, 결과 도착 시 paraphrase)
  • 사용자에게 내부 식별자 (task_id, UUID 등) 노출 금지를 명시했나?
  • 동시 위임 상한 / 중복 호출 금지가 description 에 있나?

추가 자료

Read the full file on GitHub · 93 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. 4d ago First seen · 93 lines · 31 tokens per session scan A 8fa8dbcd7144

Subscribe to this mod's changes

blog-write-sample is a skill published in the GitHub repository CocoRoF/Geny (10 stars, last pushed 5d ago), licensed Apache-2.0. It adds 31 tokens to every session and 1,021 once invoked, about $0.0002 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-31.