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 rossoctl/examples --skill eventbridgegit clone --depth 1 https://github.com/rossoctl/examplesWrote 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/rossoctl/examples/eventbridge)<a href="https://agentmods.dev/skills/rossoctl/examples/eventbridge"><img src="https://agentmods.dev/badge/skills/rossoctl/examples/eventbridge/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/rossoctl/examples/eventbridge"><img src="https://agentmods.dev/badge/skills/rossoctl/examples/eventbridge.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.00107 | $0.03933 |
| Opus 5.5 | $0.00043 | $0.01573 |
| Sonnet 5.5 | $0.00021 | $0.00787 |
| Haiku 4.5 | $0.00011 | $0.00393 |
Grade A, and why
eventbridge 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 today.
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.
Service, do not probe or curl `/healthz` to find out whether something is listening, How it starts
The opening of the file, as written. The whole thing — 291 lines — stays where its author put it; the contents beside it link to each section on GitHub.
When to invoke
Match the user's phrasing to one of these commands. Different surface forms all map to the same intent — pick the right verb, not a literal string match.
| The user says… | Run | Notes |
|---|---|---|
| "run an agent to X" · "run agent to X and print the response" · "ask an agent to X" | run "X" |
Default output prints the model's reply inline. |
| "run agent to X quietly" · "just start it, I'll check later" | run "X" --no-watch |
Returns as soon as the correlationid is minted. |
| "show every step" · "verbose" · "with tool calls" | run "X" --verbose |
One labeled line per stream-json event. |
| "check on " · "what happened with " · "any progress on " | watch <corr> |
Polls until the correlation reaches final=true. |
| "continue : Y" · "follow up on with Y" · "and now Y" (after a recent run) | cont <corr> "Y" |
Resumes the same claude session. |
| "chat " · "show the conversation for " · "print the transcript" | chat <corr> |
Turn-grouped USER/ASSISTANT view. |
| "run agent1 to X and agent2 to Y" · "run two agents" · "start these in parallel" | runmany "X" "Y" |
Submits ALL prompts first, then follows them all. This is what makes KEDA scale past one pod. |
| "run a batch of N agents, each …" · "run N agents as a group" · "100 agents saying Hello N" | group run --template "…{n}…" --count N |
A batch: one start + one finish notification instead of N, a shared progress page, and watching is the default. Say "batch"/"group"/a count ≥ ~5 and this is the intent. |
Two or more agents at once — use runmany, never two separate run calls:
python3 .../eventbridge-cli.py runmany "Say hello" "Say world" \
--label agent1 --label agent2
How the words in the request map to the command — follow this literally, so the same request always produces the same command:
N agents from a pattern ("run 100 agents, each saying Hello N") — use
--template/--count, never 100 positional arguments:
python3 .../eventbridge-cli.py group run \
--template "Say Hello {n}" --count 100 --label hello-100
{n} is 1-based (shift it with --start), {i} is 0-based. This is the reliable form:
100 shell-quoted arguments is easy to get wrong and hard to read back, and the CLI echoes
the first and last generated prompt so the pattern is visible before anything runs.
With --watch (the default) the command then prints a progress line every 2s until the
batch finishes, so the monitoring happens right in the transcript. It also prints the two
URLs to open — the group page and the group list.
| In the request | Becomes |
|---|---|
| each task, in the order given | one positional PROMPT, quoted |
| the agents are given names ("agent1 … agent2", "researcher … writer") | --label <name> once per agent, in the same order |
| the agents are not named | omit --label; they default to agent1, agent2, … |
| an environment or URL is named ("on ykt1", "on kind") | --base-url — resolve it per the table below |
| a shared constraint ("one word each", "be brief") | append it to every prompt |
| a numbered pattern ("each saying Hello N", "for N=1..100") | --template "…{n}…" --count N, not N positional prompts |
| "monitor it" · "show progress" · "print updates" | nothing — group run watches by default and prints a line every 2s. --interval changes the cadence |
| "quietly" · "don't wait" | --no-watch |
So "run agent1 to say hello and agent2 to say world, one word each" becomes just:
python3 .../eventbridge-cli.py runmany \
"Say hello. One word." "Say world. One word." \
--label agent1 --label agent2
with no --base-url at all when $EVENTBRIDGE_URL is exported — which is the usual
case. Add --base-url <url> only when the user names a target for this one command.
The ordering is the whole point. runmany POSTs every prompt before it watches
anything, so N requests sit on the topic together, KEDA sees lag N and scales to N
pods. Two sequential run calls would each finish before the next was submitted —
lag would never exceed 1, one pod would serve both, and nothing would scale.
Verified on a cluster: two prompts took the Deployment 0 → 1 → 2 with two pods
Running and two notifications delivered.
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.
- today First seen · 291 lines · 107 tokens per session scan A d672b36c5c04
eventbridge is a skill published in the GitHub repository rossoctl/examples (11 stars, last pushed today), licensed Apache-2.0. It adds 107 tokens to every session and 3,933 once invoked, about $0.0004 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-09-30.
Other skills, from other repositories
importing-a-codebase
Use when asked to create the initial spec graph for an existing codebase that has source code but no specs. Normally reached via setting-up-a-project.
starting-a-new-project
Use when the workspace is empty, has no code, and the user brings a raw project idea. Normally reached via setting-up-a-project; not for an existing project.
todos
Use when the user asks for a shared plan, a task needs at least three substantive execution steps, or a user-origin TODO is pending. Without an explicit plan request, not for one-shot answers or checks, or one- to two-step work that is not already in the list.
writing-workflow-skills
Use when adding a new workflow skill to pi-thinkrail-workflow, changing an existing workflow skill's role, trigger, handoff, or structure, or checking a workflow skill against the workflow system's rules. Not for authoring general-purpose skills outside this package.
spec-graph
Use when locating, reading, creating, updating, or validating project specs, or when work is governed by or may alter a documented boundary, contract, invariant, behavior, or architecture decision.
asking-user-questions
Use when composing an askuserquestion round inside a workflow, or when a workflow skill names it at a question step. Shared norms for the tool — not a workflow, nothing to execute.