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 lugassawan/swe-workbench --skill language-kotlingit clone --depth 1 https://github.com/lugassawan/swe-workbenchWrote 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/lugassawan/swe-workbench/language-kotlin)<a href="https://agentmods.dev/skills/lugassawan/swe-workbench/language-kotlin"><img src="https://agentmods.dev/badge/skills/lugassawan/swe-workbench/language-kotlin/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/lugassawan/swe-workbench/language-kotlin"><img src="https://agentmods.dev/badge/skills/lugassawan/swe-workbench/language-kotlin.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.00052 | $0.01344 |
| Opus 5.5 | $0.00021 | $0.00538 |
| Sonnet 5.5 | $0.00010 | $0.00269 |
| Haiku 4.5 | $0.00005 | $0.00134 |
Grade A, and why
language-kotlin 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 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.
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 — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Kotlin
Null safety
?makes nullability explicit in the type —String?vsString.- Safe-call
?.returns null instead of throwing. Elvis?:provides a default. - Never use
!!in production code — it is a promise you will never break that can't be verified. - Jackson does not null-check collection elements even with
jackson-module-kotlin— a declaredList<Content>can hold nulls from{"content":[null]}. UsefilterNotNull()(notfilter { it != null }, which leaves the type asList<Content?>), or@JsonSetter(contentNulls = Nulls.SKIP)at the boundary.
val length = name?.trim()?.length ?: 0
user?.email?.let { send(it) } // null-guard + scoping
val ids = payload.content.filterNotNull().map { it.id }
Data classes and sealed interfaces
data classfor value containers: auto-generatesequals,hashCode,toString,copy, and destructuring.sealed interfacecloses a hierarchy and enables exhaustivewhenwithout anelsebranch.
sealed interface Result<out T>
data class Success<T>(val value: T) : Result<T>
data class Failure(val error: Throwable) : Result<Nothing>
fun handle(r: Result<User>) = when (r) {
is Success -> show(r.value)
is Failure -> log(r.error)
}
Coroutines — structured concurrency
suspendfunctions must be called from a coroutine or anothersuspendfunction.- Use
coroutineScope { }for fan-out — child coroutines are cancelled if one fails. withContext(Dispatchers.IO)for blocking IO; never block insideDispatchers.Default.
suspend fun fetchDashboard(id: String): Dashboard = coroutineScope {
val user = async { fetchUser(id) }
val orders = async { fetchOrders(id) }
Dashboard(user.await(), orders.await())
}
launchis fire-and-forget;asyncreturns aDeferred<T>.- Prefer
coroutineScopeoverGlobalScope— global coroutines outlive their logical parent.
Result and error handling
runCatching { }wraps a block inResult<T>without try/catch noise.- Chain with
map,recover,onSuccess,onFailure. - Exceptions for genuinely exceptional paths;
Resultfor recoverable failures.
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.
- 1mo ago First seen · 129 lines · 52 tokens per session scan A 45c99f8d2d2b
language-kotlin is a skill published in the GitHub repository lugassawan/swe-workbench (3 stars, last pushed yesterday), licensed MIT. It adds 52 tokens to every session and 1,344 once invoked, about $0.0002 per session on Opus 5.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-09-03.
Other skills, from other repositories
build-android-binary
Compile a PAM control's Android Kotlin module into the runtime-loadable DEX for a .ppmplugin. Creates a staged Gradle build with the pinned wrapper and react-android compile dependency, verifies manifest/module/package alignment and runtime-loading constraints, builds the release AAR, then runs d8 --min-api 24. Writes…
kotlin-android
Use when building or fixing a native Android app in Kotlin and Jetpack Compose on the UDF layered architecture — ViewModel/StateFlow, Hilt, Room, Retrofit, coroutines, type-safe Navigation, and the Gradle/AGP surface. NOT shared Android and iOS UI from one Kotlin codebase (that is compose-multiplatform).
wasm
WebAssembly (WASM) integration, WASI, component model, Rust/Go to WASM compilation. Use when implementing WASM modules, browser/edge compute, or polyglot runtime.
language-idioms-refiner
Facilitate a structured conversation to define language-specific idioms and patterns for a repository. Produces a language-idioms.md document consumed by multiple atoms to adapt pseudocode defaults to the project's language. Use when setting up a new project, switching languages, or when the user says 'setup…
functions-development
Build serverless Go or Python functions for Falcon Foundry apps. TRIGGER when user asks to "create a function", "write a serverless function", "build backend logic", runs foundry functions create, or needs help with FDK handler patterns, function testing, or collection integration from functions. Also TRIGGER when…
build-ios-binary
Compile a PAM control's iOS Obj-C/Swift module into the FLAT device-slice .framework for a .ppmplugin bundle (never an .xcframework — the wrap CI won't descend into one). Mac-only (Xcode). Builds from a throwaway staged copy so canonical ios/ and the podspec stay untouched, references React-Core headers only (React is…