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.
npx agentmods add skills/vladkesler/initrunner/reply-composernpx skills add vladkesler/initrunner --skill reply-composergit clone --depth 1 https://github.com/vladkesler/initrunnerWrote 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/skills/vladkesler/initrunner/reply-composer)<a href="https://agentmods.dev/skills/vladkesler/initrunner/reply-composer"><img src="https://agentmods.dev/badge/skills/vladkesler/initrunner/reply-composer.svg" alt="Measured on agentmods" 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 | $0.00032 | $0.00863 |
| Opus 5 | $0.00016 | $0.00432 |
| Sonnet 5 | $0.00006 | $0.00173 |
| Haiku 4.5 | $0.00003 | $0.00086 |
Grade A, and why
reply-composer 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.
How it starts
The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Email reply composition skill.
When to activate
Use this skill when the user asks to reply to an email, draft a response, or compose a new message.
Process
1. Gather context
Collect everything needed before writing:
- Read the original email with
read_email - If it's a thread, search for earlier messages in the thread:
search_inbox(query='SUBJECT "<thread subject>"') - Recall the sender profile from semantic memory
- Recall any style rules from procedural memory:
recall("style_rule") - Recall any previous replies to this sender:
recall("<sender> reply_sent")
2. Analyze tone
Determine the appropriate tone from the original message:
| Original tone | Reply tone | Indicators |
|---|---|---|
| Formal | Formal | Full sentences, titles, "Dear", "Sincerely" |
| Semi-formal | Semi-formal | Professional but relaxed, first names, "Thanks" |
| Casual | Casual | Short sentences, contractions, emoji, "Hey" |
| Terse | Match length | One-liners, bullet points, no greeting |
Adapt to the sender's style. If the sender writes two-sentence emails, don't reply with five paragraphs.
3. Research if needed
If the reply requires information you don't have:
- Use
searchto look up facts, documentation, or context - Use
web_readerto read referenced URLs from the original email - Recall topic context from semantic memory
4. Compose draft
Write the reply following these rules:
Structure:
- Greeting (match sender's style)
- Acknowledge their message (one sentence, reference specifics)
- Body (answer questions, provide information, address requests)
- Next steps or call to action (if applicable)
- Sign-off (check procedural memory for preferred sign-off)
Thread-aware replies:
- Reference specific points from the thread, not just the last message
- Don't repeat information already established in the thread
- If the thread has multiple participants, address the relevant ones
Length:
- Match the expected length to the complexity of the response
- Simple confirmations: 1-2 sentences
- Detailed answers: structured with bullet points or numbered lists
- Keep under 300 words unless the topic requires more
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.
- 4d ago First seen · 120 lines · 32 tokens per session scan A 5ba4c28327ee
reply-composer is a skill published in the GitHub repository vladkesler/initrunner (41 stars, last pushed 6d ago), licensed Apache-2.0. It adds 32 tokens to every session and 863 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-30.
Other skills, from other repositories
Vizra ADK Evaluation Framework
Test and evaluate AI agents with automated evaluations, assertions, and LLM-as-a-Judge patterns.
Vizra ADK Memory System
Implement persistent memory, session context, and vector memory (RAG) for AI agents.
Vizra ADK Tool Creation
Build custom tools for Vizra ADK agents - includes patterns for database, API, file, and email tools.
Vizra ADK Agent Creation
Create AI agents with Vizra ADK - includes patterns for customer service, data analysis, and content generation agents.
Vizra ADK Workflows
Orchestrate complex multi-agent workflows - sequential, parallel, conditional, and loop patterns.
expansion-grant-guard
YAML-based delegation grant ledger — issues, validates, and tracks scoped permission grants for sub-agent expansions with token budgets and auto-expiry.