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 skills add tokencanopy/e2a --skill email-evalsgit clone --depth 1 https://github.com/tokencanopy/e2aWrote 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/tokencanopy/e2a/email-evals)<a href="https://agentmods.dev/skills/tokencanopy/e2a/email-evals"><img src="https://agentmods.dev/badge/skills/tokencanopy/e2a/email-evals/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/skills/tokencanopy/e2a/email-evals"><img src="https://agentmods.dev/badge/skills/tokencanopy/e2a/email-evals.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 3 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Prompt Injection · line 12 Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
- high Prompt Injection · line 15 Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
- high Prompt Injection · line 17 Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
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.00053 | $0.01841 |
| Opus 5.5 | $0.00021 | $0.00736 |
| Sonnet 5.5 | $0.00011 | $0.00368 |
| Haiku 4.5 | $0.00005 | $0.00184 |
Grade A, and why
email-evals 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 1mo 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 — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Email evals
Gather the suite one answer at a time
Ask one logical question at a time; do not dump a questionnaire. Ask exactly one prompt, wait for the answer, then advance. Conditionally omit a later prompt only when an earlier answer proves its field irrelevant; never bundle prompts.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- email-evals.sh 824 B runs code
- launcher.mjs 30 KB runs code
- runtime/cli.mjs 20 KB runs code
- runtime/email-evals-runtime.bundle.mjs 1221 KB runs code
- runtime/lib/cli-arguments.mjs 3.0 KB runs code
- runtime/lib/contract.mjs 39 KB runs code
- runtime/lib/e2a-adapter.mjs 79 KB runs code
- runtime/lib/errors.mjs 2.9 KB runs code
- runtime/lib/grade-content.mjs 30 KB runs code
- runtime/lib/grade-core.mjs 19 KB runs code
- runtime/lib/mime.mjs 11 KB runs code
- runtime/lib/normalize.mjs 17 KB runs code
- runtime/lib/report.mjs 47 KB runs code
- runtime/lib/result-contract.mjs 769 B runs code
- runtime/lib/runner.mjs 78 KB runs code
- runtime/lib/safe-pattern.mjs 580 B runs code
- runtime/package-lock.json 16 KB
- runtime/package.json 423 B
- runtime/test/bundle.test.mjs 3.8 KB runs code
- runtime/test/cli.test.mjs 20 KB runs code
- runtime/test/contract.test.mjs 29 KB runs code
- runtime/test/e2a-adapter-observe.test.mjs 61 KB runs code
- runtime/test/e2a-adapter-preflight.test.mjs 11 KB runs code
- runtime/test/final-security.test.mjs 14 KB runs code
- runtime/test/grade-content.test.mjs 27 KB runs code
- runtime/test/grade-core.test.mjs 19 KB runs code
- runtime/test/launcher.test.mjs 19 KB runs code
- runtime/test/live-responder.mjs 2.4 KB runs code
- runtime/test/mime.test.mjs 8.0 KB runs code
- runtime/test/report.test.mjs 26 KB runs code
- runtime/test/runner.test.mjs 81 KB runs code
- runtime/test/safe-pattern.test.mjs 1.7 KB runs code
- runtime/test/scaffold.test.mjs 6.5 KB runs code
- runtime/test/setup.test.mjs 3.7 KB runs code
- runtime/testdata/contracts/invalid/bad-duration/suite.yaml 265 B
- runtime/testdata/contracts/invalid/bad-regex/case.yaml 145 B
- runtime/testdata/contracts/invalid/bad-regex/suite.yaml 248 B
- runtime/testdata/contracts/invalid/case-traversal/suite.yaml 253 B
- runtime/testdata/contracts/invalid/duplicate-key/suite.yaml 250 B
- runtime/testdata/contracts/invalid/escape.yaml 103 B
- runtime/testdata/contracts/invalid/missing-envelope-expectation/case.yaml 206 B
- runtime/testdata/contracts/invalid/missing-envelope-expectation/suite.yaml 248 B
- runtime/testdata/contracts/invalid/missing-environment/case.yaml 110 B
- runtime/testdata/contracts/invalid/missing-environment/suite.yaml 262 B
- runtime/testdata/contracts/invalid/partial-environment/suite.yaml 246 B
- runtime/testdata/contracts/invalid/recipient-outside-allowlist/case.yaml 262 B
- runtime/testdata/contracts/invalid/recipient-outside-allowlist/suite.yaml 248 B
- runtime/testdata/contracts/invalid/unknown-key/suite.yaml 257 B
- runtime/testdata/contracts/valid/cases/happy-path.yaml 791 B
- runtime/testdata/contracts/valid/cases/missing-information.yaml 435 B
- runtime/testdata/contracts/valid/cases/unsafe-request.yaml 338 B
- runtime/testdata/contracts/valid/suite.yaml 398 B
- runtime/testdata/e2a/events-blocked.json 1.4 KB
- runtime/testdata/e2a/events-success.json 2.3 KB
- runtime/testdata/e2a/protection-safe.json 374 B
- runtime/testdata/e2a/protection-wide.json 158 B
- runtime/testdata/evidence/core-forward.json 671 B
- runtime/testdata/evidence/core-safe-reply.json 685 B
- runtime/testdata/mime/attachment.eml 642 B
- runtime/testdata/mime/header-injection.eml 441 B
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.
- 1mo ago First seen · 145 lines · 53 tokens per session scan A 52c316e24f2f
email-evals is a skill published in the GitHub repository tokencanopy/e2a (194 stars, last pushed yesterday), licensed Apache-2.0. It adds 53 tokens to every session and 1,841 once invoked, about $0.0002 per session on Opus 5.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
go-127
What changed in Go 1.27 (released August 2026) and how it changes the way Go is written in pi-go. Use this skill when writing or reviewing Go that could use a 1.27 feature, when bumping the go directive in go.mod, when a build or test behaves differently after a toolchain upgrade, or when code-guidelines-go points…
bubbletea-testing
Use this skill whenever writing tests for Bubble Tea (charmbracelet/bubbletea) TUI applications in Go. Triggers include any mention of testing Bubble Tea models, teatest, golden file testing for TUIs, testing tea.Cmd or tea.Msg, snapshot testing terminal output, or writing tests for any Go CLI/TUI that uses the Elm…
vhs-e2e-gif
Record a test run, a TUI session, or any terminal command as a GIF with VHS and attach it to a GitHub PR as a release-hosted asset, never a repo commit. Use when asked to record an e2e run, demo a fix on a PR, attach a GIF or screen recording to a pull request, show a test passing visually, or produce a terminal…
lsp-refactor
End-to-end safe refactor workflow — blast-radius analysis, speculative preview, apply to disk, verify build, run affected tests. Inlines lsp-impact + lsp-safe-edit + lsp-verify + lsp-test-correlation into one coordinated sequence.
lsp-test-correlation
Find and run the tests that cover a source file. Use after editing a file to discover exactly which test files and test functions need to run — without running the entire test suite.
config-loader-helper
Diagnose configuration-related failures, enumerate required env vars, and guide safe local test setup (no secrets).