reply-draft

reply-draft is a skill for Claude Code, Codex from ozzy-labs/suasor. It costs 164 tokens per session (971 once invoked), scanned A, original, MIT.

A Japanese-language procedure for preparing reply drafts in Suasor MCP, a system for working with messages and other sources. It requires a person to review and approve a draft before it is saved, and it does not send messages.

In plain words
What is it for?
Use it to find the message being answered, generate a reply candidate, list pending drafts, approve or reject candidates, and optionally export an approved draft to a local text file.
Why use it?
It prevents an automatically generated reply from being saved or sent without human review.

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/ozzy-labs/suasor/reply-draft
Any agent
npx skills add ozzy-labs/suasor --skill reply-draft
Clone the repo
git clone --depth 1 https://github.com/ozzy-labs/suasor

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 reply-draft

README.md
[![agentmods](https://agentmods.dev/badge/skills/ozzy-labs/suasor/reply-draft.svg)](https://agentmods.dev/skills/ozzy-labs/suasor/reply-draft)
Your own site
<a href="https://agentmods.dev/skills/ozzy-labs/suasor/reply-draft"><img src="https://agentmods.dev/badge/skills/ozzy-labs/suasor/reply-draft.svg" alt="Measured on agentmods" height="20"></a>
Per session 164 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 971 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.00164 $0.00971
Opus 5 $0.00082 $0.00485
Sonnet 5 $0.00033 $0.00194
Haiku 4.5 $0.00016 $0.00097

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

Security

Grade A, and why

reply-draft 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.

docs/skills/reply-draft/SKILL.md · 47 lines

What it actually says

reply-draft

返信下書きを生成する HITL write skill。生成だけでは送信も保存もしない(ADR-0004)。

いつ発火するか

  • 「返信案を考えて」「これに返信したい」「この返信の下書き作って」
  • 返信文脈(返信すべき相手・元メッセージ)が明示されているときだけ発火する。対象のない「下書き作って」は本 skill ではなく、告知・引き継ぎなら draft、計画なら plan-draft が受ける(reply_to_source_id を要求して脱線しない)

何をするか(MCP tool flow)

write tool は HITL。auto-apply 経路は存在しないADR-0004)。

  1. 返信元 source を特定する(必要なら source.get / searchexternalId を確定)
  2. propose.generate(mode=reply_draftreply_to_source_id=<externalId>)で返信下書き候補を生成する。これは ReplyDraftProposed event(HITL・未適用、data-model.md)に対応する候補で、まだ確定・送信されない
  3. propose.liststate=pending)で生成済みの下書き候補を一覧し、ユーザーに提示して確認を取る(native framing: ホスト側で人の承認を促す。Issue #89
  4. ユーザーが承認した候補のみ propose.apply で保存する(idempotent)。不要な下書きは propose.reject(任意で理由)で却下する(却下は記録され、再 apply されない)

制約

  • HITL。人の承認なしに propose.apply を呼ばない。auto-apply しない。propose.list は read(候補確認)、propose.reject は却下の記録
  • 外部 SaaS への送信は行わない。ユーザーが下書きを確認して手で送る
  • 下書きをファイルで欲しい場合は draft.export(HITL write)で .md / .txt にローカル書き出しできる(送信はしない・ADR-0025
  • 本 skill は手順書のみで実処理を持たない
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 · 47 lines · 164 tokens per session scan A e2a6bf8ebe5b

Subscribe to this mod's changes

reply-draft is a skill published in the GitHub repository ozzy-labs/suasor (0 stars, last pushed 25d ago), licensed MIT. It adds 164 tokens to every session and 971 once invoked, about $0.0008 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.