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 rudderlabs/rudder-agent-skills --skill rudder-ai-events-verifygit clone --depth 1 https://github.com/rudderlabs/rudder-agent-skillsWrote 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/rudderlabs/rudder-agent-skills/rudder-ai-events-verify)<a href="https://agentmods.dev/skills/rudderlabs/rudder-agent-skills/rudder-ai-events-verify"><img src="https://agentmods.dev/badge/skills/rudderlabs/rudder-agent-skills/rudder-ai-events-verify/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/rudderlabs/rudder-agent-skills/rudder-ai-events-verify"><img src="https://agentmods.dev/badge/skills/rudderlabs/rudder-agent-skills/rudder-ai-events-verify.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00066 | $0.02133 |
| Opus 5.5 | $0.00026 | $0.00853 |
| Sonnet 5.5 | $0.00013 | $0.00427 |
| Haiku 4.5 | $0.00007 | $0.00213 |
Grade A, and why
rudder-ai-events-verify 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 yesterday.
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.
allowed-tools: "Bash(python3 *), Bash(python *), Bash(npm *), Bash(npx *), Bash(node *), Bash(uv *), Bash(env *), Bash(curl *), Bash(tar *), Bash(lsof *), Bash(kill *), Bash(go build *), Bash(go run *), Bash(date *), Rea How it starts
The opening of the file, as written. The whole thing — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
RudderStack AI Events Verification
Proves the instrumentation sends what ai-events.yaml promises, before any real traffic. Runs offline: a stub or mock RudderStack client, a mock model, no provider keys. Scripts and the checklist: references/verification.md.
Workflow
- Read the plan.
ai-events.yamlgives the surfaces, identity sources, content capture setting, legacy events and event rules to check. No plan: check against the spec only, and say so in the report. - Scratch directory. Create one outside the repo (for example
$TMPDIR/ai-events-verify/). Captures, schemas, scripts and the virtualenv go there, never into the user's source tree. - Get the schemas.
ai-events-v0.3.schema.jsonfrom the@rudderstack/ainpm release that ships spec v0.3, or the Go module'sspec/directory (it is not in the Python wheel), and the client-event schema fromrudder-ai-events-instrument. - Capture what each planned surface sends (skip surfaces the app does not have):
- A. Stub client, when the app has a test runner that can call its routes or job functions:
configure()with an in-memory client (Go: ananalytics.Clientstub passed toConfigure/ the MCP wrapper), then drive the surfaces. - B. Mock data plane and mock model, when it has no such tests, or is a script or cron job: run the app unchanged with its RudderStack data plane URL and provider base URL pointed at a local mock server, then send sample requests or run the job.
- C. Live Events, after A or B passes: a development source in RudderStack, inspected in Live Events or through
rudder-mcp-workflow. - D. MCP servers: the stub or the mock data plane, driven by an MCP client script (list tools, valid and invalid calls,
_metawith aninteraction_id). - Browser events: a recorder in place of
rudderanalytics, appended to the same capture.
- A. Stub client, when the app has a test runner that can call its routes or job functions:
- Run the app's own tests too: instrumentation must not break them.
- Validate with
check_events.pyand the flags that match the plan: schema,specVersion: 0.3.0and a known SDK (context.wrapperLibrary.name@rudderstack/ai,rudderstack-aiorai-sdk-go) per event, one serverai_response_receivedperinteraction_id(and at most one client copy), client copies of the prompt, answer and feedback unless the plan opts out, joins oninteraction_idandconversation_id, feature, surface, user ID and session, no content unless the plan turns capture on, system runs without a user ID, MCP events without argument values and with planned server names and intents, legacy events still sent. Compare the printed background runs and MCP calls with the plan. - Fix and repeat. A failure in app wiring goes back to
rudder-ai-events-instrument; a wrong plan assumption goes back torudder-ai-events-setup(plan back todraft). A gap that matches a known limit (setup skill, "Known limits") is reported, not fixed. - Record the time. On the first PASS, set
metadata.time_to_integrate.verified_atinai-events.yaml(date -u +%Y-%m-%dT%H:%MZ), and ask the user forhours_spentandnotes; leave themnullif they do not say. - Report.
What ships with it
1 file 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.
- yesterday First seen · 83 lines · 66 tokens per session scan A 899998618691
rudder-ai-events-verify is a skill published in the GitHub repository rudderlabs/rudder-agent-skills (19 stars, last pushed today), licensed MIT. It adds 66 tokens to every session and 2,133 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-10-20.
Other skills, from other repositories
completion-verification
Verifies that work is actually complete before it is claimed to be — running the checks, reading the output, and confirming the original request was satisfied rather than approximated. Use this before saying something is done, fixed, or passing; before committing or opening a pull request; and whenever a claim of…
execute
Dispatch and execute implementation plans with TDD and checkpoints. Use when plan is ready. Parallel by default for independent tasks.
pdlc-feature
An automated workflow for taking a new software feature from a description or requirements document through requirements, design, testing, implementation, review, and release preparation. It keeps one feature ID across the documents and requires tests before implementation.
browser-agent
Autonomous human-like browser control and professional QA/QC testing. Powered by agent-browser (Rust native CDP, zero Playwright) with ISTQB test matrix generation, automated testcase execution, console/network error tracing, and defect reporting.
pdlc-implement
A guarded coding workflow that implements a feature from its design document and existing tests, then checks the result. It requires tests to be written first, following TDD (test-driven development).
pdlc-tdd
A test-first development workflow guided by existing design documents. TDD means writing tests before the code they check; PDLC is a staged product-development process with required preparation steps.