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/hugorcd/evlog/create-adapternpx skills add HugoRCD/evlog --skill create-adaptergit clone --depth 1 https://github.com/HugoRCD/evlogWhat 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.00075 | $0.02849 |
| Opus 5 | $0.00037 | $0.01425 |
| Sonnet 5 | $0.00015 | $0.00570 |
| Haiku 4.5 | $0.00007 | $0.00285 |
Grade A, and why
create-evlog-adapter 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 2d 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 — 196 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create evlog Adapter
Add a new built-in adapter to evlog. Every adapter follows the same architecture and is built on the public toolkit primitives in evlog/toolkit, so a community adapter has the same shape as a built-in one.
PR Title
feat({name}): add the {Name} drain adapter
Recent examples: feat(loki): add the Grafana Loki drain adapter, feat(clickhouse): add the ClickHouse drain adapter. Use the adapter name as the conventional-commit scope, and register that scope (see touchpoint 11).
Scope timing caveat: the semantic PR check reads its scope list from the base branch, so a brand-new scope can't validate the very PR that introduces it. Either register the scope in a small preceding PR (the Loki/ClickHouse pattern), or use an unscoped title (feat: add the {Name} drain adapter) on the introducing PR.
Touchpoints Checklist
| # | File | Action |
|---|---|---|
| 1 | packages/evlog/src/adapters/{name}.ts |
Create adapter source (built on defineHttpDrain from ../shared/drain) |
| 2 | packages/evlog/tsdown.config.ts |
Add build entry |
| 3 | packages/evlog/package.json |
Add exports + typesVersions entries |
| 4 | packages/evlog/test/adapters/{name}.test.ts |
Create unit tests (use test/helpers/fetch.ts) |
| 5 | packages/evlog/test/e2e/{name}.e2e.ts |
Create e2e test gated on env vars; extend the docker sandbox if self-hostable |
| 6 | packages/evlog/test/toolkit/__snapshots__/api-surface.test.ts.snap |
Regenerated by running the tests after a build (pnpm run build then pnpm test) |
| 7 | apps/docs/content/4.integrate/adapters/{category}/{NN}.{name}.md |
Create adapter doc page in the right category |
| 8 | apps/docs/content/4.integrate/adapters/01.overview.md |
Add adapter to overview (frontmatter link + card) |
| 9 | skills/review-logging-patterns/SKILL.md |
Add adapter row in the Drain Adapters table + frontmatter description |
| 10 | .changeset/{name}-adapter.md |
Create changeset (minor) describing the adapter |
| 11 | .github/workflows/semantic-pull-request.yml + .github/pull_request_template.md |
Register {name} as a PR scope in both files |
What ships with it
2 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.
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.
- 2d ago First seen · 196 lines · 75 tokens per session scan A cc32b998843b
create-evlog-adapter is a skill published in the GitHub repository HugoRCD/evlog (1,831 stars, last pushed today), licensed MIT. It adds 75 tokens to every session and 2,849 once invoked, about $0.0004 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
frontmcp-observability
Use when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server. Covers zero-config OpenTelemetry distributed tracing across all flows; the this.telemetry API for custom spans, events, and attributes in tools, plugins, agents, and skills; structured JSON logging with trace correlation and…
migrate-better-result-3
Migrate a TypeScript codebase from better-result 2.x to 3.0. Use when upgrading better-result across the TaggedError syntax, removed Result serialization helpers, recovery inference, matching, or retry APIs.
audit-better-result-dependents
Audit better-result changes or PRs against known Prisma and Better T Stack downstream dependents. Use when working on better-result API/type/runtime changes and the user asks whether a change breaks Prisma dependents, Better T Stack dependents, npm dependents, or PR compatibility.
dd-code-generation
Use pup CLI for immediate Datadog operations or generate code for integration into applications.
adopt-better-result
Adopt better-result in an existing TypeScript codebase. Use for a repository-wide error-handling audit and proposal, or for implementing a named vertical slice with TaggedError and Result.
agent-inspect
Local evidence debugger and trajectory-test toolkit for TypeScript AI agents. Use when capturing framework-faithful traces, asserting TraceContract/TraceFacts, packaging Evidence v2, or inspecting local runs over read-only MCP (gettracefacts).