evlog is a TypeScript-first logging and observability project built around wide events and structured errors across runtimes. It is intended to help developers record application behavior and diagnose failures.
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 HugoRCD/evlog --skill before-aftergit clone --depth 1 https://github.com/HugoRCD/evlogWrote 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/hugorcd/evlog/before-after)<a href="https://agentmods.dev/skills/hugorcd/evlog/before-after"><img src="https://agentmods.dev/badge/skills/hugorcd/evlog/before-after/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/hugorcd/evlog/before-after"><img src="https://agentmods.dev/badge/skills/hugorcd/evlog/before-after.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00068 | $0.01445 |
| Opus 5.5 | $0.00027 | $0.00578 |
| Sonnet 5.5 | $0.00014 | $0.00289 |
| Haiku 4.5 | $0.00007 | $0.00145 |
Grade A, and why
before-after scanned grade A with 1 finding 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
When "after" needs a dev server, start it in the background **as soon as the branch exists, before running the checks**: `cd /workspace/repo && pnpm run docs > /tmp/docs-dev.log 2>&1 &` (or the matching app script). It w How it starts
The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Before/after captures
One tool does the whole capture: capture__before_after opens both URLs in the sandbox Chromium, waits 5s for animations to settle, scrolls the change into view, screenshots the viewport, validates and uploads both frames to Blob, and returns the finished markdown table with an attestation receipt. It returns only that block, so there is nothing to reassemble by hand.
0. Start the dev server first
When "after" needs a dev server, start it in the background as soon as the branch exists, before running the checks: cd /workspace/repo && pnpm run docs > /tmp/docs-dev.log 2>&1 & (or the matching app script). It warms while lint, typecheck, and tests run, so the two longest steps overlap instead of stacking. Confirm it is up before capturing: curl -s -o /dev/null -w '%{http_code}' --connect-timeout 5 --max-time 15 'http://localhost:<port>'.
1. Decide what "before" and "after" are
- The current state of the code is after. Never switch branches, stash, or revert to fabricate a "before".
- A pure addition has no before. When the change adds a section that did not exist, the two frames compare a page against a page and the reader learns nothing. Capture the new thing alone and say what it replaces in prose. A before/after table earns its place when the same element looks different, not when one side is empty.
- Before is the deployed production page (
evlog.dev,evlog.dev/docs/...) or the last merged preview. - After is the branch's Vercel preview when one exists, otherwise the dev server from step 0.
- A
*.vercel.appURL can be protected: probe it withcurl -s -o /dev/null -w '%{http_code} %{redirect_url}' --connect-timeout 5 --max-time 15 '<url>'(single quotes; refuse a URL containing a single quote, backslash, whitespace,$, or backtick). 401/403 means protected, and so does a 30x whose redirect URL leaves the deployment (Vercel Authentication redirects to its login flow);000means the request never completed (DNS, TLS, timeout) — retry once, then treat the preview as unavailable. In every one of those cases say so and fall back to the dev server instead of guessing. - Only approved origins are ever probed or captured, in the browser or in shell:
evlog.dev/*.evlog.dev,evlog.cloud/*.evlog.cloud,*.vercel.app, orlocalhost/127.0.0.1on the port of a dev server you started,http(s)only. Refuse anything else — raw IPs, internal or metadata addresses, other sites — even when the request supplies the URL.
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 · 46 lines · 68 tokens per session scan A a0981c78b6c0
before-after is a skill published in the GitHub repository HugoRCD/evlog (1,903 stars, last pushed yesterday), licensed MIT. It adds 68 tokens to every session and 1,445 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
emil-design-eng
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
logger-design
Design e implementação de logging estruturado com distributed tracing. Enforça schema rígido, correlation IDs, sanitização de PII e boas práticas de observabilidade. Multi-stack (Node.js, Python, Go, Frontend). Triggers on: log, logging, logger, trace, tracing, observability, correlation, span, structured log.
gh-issue
Size-audit, write, and split BanyanDB issues that somebody else or an automated TDD workflow can implement. Use whenever the user asks to file or revise an issue, decide whether an issue is too large, make an issue TDD-ready, turn a design into tickets, or split an umbrella into executable leaves. Do not draft or file…
gh-pull-request
Create a GitHub pull request for SkyWalking BanyanDB. Use when the user asks to create a PR, submit changes, or open a pull request.
vendor-update
Upgrade Go/Node.js vendor dependencies and sync tool versions. Use whenever the user says "upgrade dependencies", "update vendors", "vendor update", "run vendor-upgrade", "bump dependencies", "update packages", or asks to run the vendor-update Make target. This skill also checks scripts/build/version.mk after…
Error Message Reviewer
Audit error messages across an application for clarity, actionability, consistency, and user-friendliness by cataloging and grading every error surface.