Borrowing it
Nothing to install: this file belongs to ekbatan-io/ekbatan. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ekbatan-io/ekbatan/main/.agents/skills/ekbatan-maintainer/SKILL.mdgit clone --depth 1 https://github.com/ekbatan-io/ekbatanWrote 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/ekbatan-io/ekbatan/ekbatan-maintainer)<a href="https://agentmods.dev/skills/ekbatan-io/ekbatan/ekbatan-maintainer"><img src="https://agentmods.dev/badge/skills/ekbatan-io/ekbatan/ekbatan-maintainer/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/ekbatan-io/ekbatan/ekbatan-maintainer"><img src="https://agentmods.dev/badge/skills/ekbatan-io/ekbatan/ekbatan-maintainer.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.00066 | $0.00655 |
| Opus 5 | $0.00033 | $0.00328 |
| Sonnet 5 | $0.00013 | $0.00131 |
| Haiku 4.5 | $0.00007 | $0.00065 |
Grade A, and why
ekbatan-maintainer 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 11d 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 — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ekbatan Maintainer
Use this skill when modifying the framework itself, not just an application that depends on Ekbatan.
First Reads
Read these before editing:
AGENTS.mdfor architecture, conventions, and durable project rules.README.mdfor public positioning and current published artifacts.- Relevant docs under
docs/when changing behavior that is documented. - Relevant tests under
ekbatan-integration-tests/before changing cross-database behavior.
For a compact refresher, read references/architecture-map.md.
Maintainer Rules
- Treat Ekbatan as a library, not an application.
- Keep domain objects immutable. Mutations return new instances.
- Keep
Action.perform()as intent declaration. It stages changes onActionPlan; the executor persists afterperform()returns. - Do not add nested/composable actions.
- Do not spawn concurrent work inside
Action.perform(). - Preserve optimistic locking with mandatory version checks.
- Use JOOQ explicitly; do not introduce ORM/session semantics.
- Keep PostgreSQL, MySQL, and MariaDB behavior aligned unless a dialect difference is intentional and documented.
- Use
TIMESTAMP/DATETIME(6)conventions from existing migrations. Do not introduceTIMESTAMPTZ. - For custom repository writes, prefer
txDbElseDb(...). For replica-tolerant reads, usereadonlyDb(...). - Acquire
KeyedLockProviderleases in callers that invoke actions when the lock is meant to serialize committed writes.
Workflow
- Map the change to the owning module before editing.
- Read nearby code and tests. Prefer existing local patterns over new abstractions.
- Keep changes narrow. Avoid unrelated refactors or metadata churn.
- Update docs when public semantics change.
- Add or adjust tests at the narrowest useful level first; broaden when behavior crosses modules, dialects, sharding, or DI integrations.
- Run focused tests first, then the relevant broader suite.
- If the change touches examples or verification behavior, use
ekbatan-examplesorekbatan-verificationtoo.
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.
- 11d ago First seen · 55 lines · 66 tokens per session scan A da2a17149b84
ekbatan-maintainer is a skill published in the GitHub repository ekbatan-io/ekbatan (20 stars, last pushed 6d ago), licensed Apache-2.0. It adds 66 tokens to every session and 655 once invoked, about $0.0003 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
micronaut
Use this skill when building Micronaut applications — compile-time DI, reactive HTTP server, AOT optimization, GraalVM native image. This skill enforces: annotation-based configuration, compile-time DI (no reflection), reactive programming with Project Reactor, declarative HTTP clients, and AOT compilation. Requires…
wxjava-api-contributor
A contributor guide for adding or maintaining official WeChat API support in WxJava, a Java software development kit. It covers services, request and response data objects, data conversion, HTTP handling, starter configuration, and regression tests.
wxjava-module-selector
A decision guide for choosing the correct WxJava Maven module, dependency management file, and example for a WeChat use case. WxJava is a Java software development kit for services such as official accounts, mini programs, and payments.
azure-communication-callautomation-java
Build call automation workflows with Azure Communication Services Call Automation Java SDK. Use when implementing IVR systems, call routing, call recording, DTMF recognition, text-to-speech, or AI-powered call flows.
azure-communication-chat-java
Build real-time chat applications with Azure Communication Services Chat Java SDK. Use when implementing chat threads, messaging, participants, read receipts, typing notifications, or real-time chat features.
azure-communication-common-java
Azure Communication Services common utilities for Java. Use when working with CommunicationTokenCredential, user identifiers, token refresh, or shared authentication across ACS services.