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 agentmods add skills/snk-devcenter/addon-studio/type-adapternpx skills add snk-devcenter/addon-studio --skill type-adaptergit clone --depth 1 https://github.com/snk-devcenter/addon-studioWhat 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 | $0.00150 | $0.02677 |
| Opus 5 | $0.00075 | $0.01339 |
| Sonnet 5 | $0.00030 | $0.00535 |
| Haiku 4.5 | $0.00015 | $0.00268 |
Grade A, and why
type-adapter 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 2d 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 — 228 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Adaptadores de Tipo (@GlobalTypeAdapter) — Addon Studio 2.0
@GlobalTypeAdapter registra adaptadores customizados no SDK para converter tipos entre JSON, objetos Java e valores Jape (camada de persistencia). Aplicado automaticamente em todo marshal/unmarshal de DTOs.
1. Quando criar um adaptador global
Use @GlobalTypeAdapter quando o tipo nao possui suporte nativo no SDK nem no Gson, ou quando o comportamento nativo precisa ser sobrescrito.
Casos de uso comuns:
| Situacao | Exemplo |
|---|---|
Tipo java.time.* nao coberto pelos nativos |
ZonedDateTime, YearMonth |
| Conversao customizada JSON ↔ Java | Formato de data proprietario |
| Sobrescrever adaptador nativo do SDK | BooleanAdapter com logica diferente |
| Tipo de dominio especifico do addon | Value Objects, tipos wrapper |
Precedencia: global > nativo. Adaptador global sobrescreve o nativo equivalente.
2. Interfaces disponíveis
Classe anotada com @GlobalTypeAdapter pode implementar uma ou mais:
| Interface | Responsabilidade |
|---|---|
TypeAdapter<T> |
Converte o tipo entre objeto Java e valor Jape (banco/VO) |
JsonSerializer<T> |
Define como o tipo e convertido para JSON |
JsonDeserializer<T> |
Define como o tipo e convertido a partir de JSON |
Implemente somente as interfaces necessarias para o caso de uso.
3. Anatomia de um @GlobalTypeAdapter
import br.com.sankhya.studio.adapters.TypeAdapter;
import br.com.sankhya.studio.stereotypes.GlobalTypeAdapter;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import java.lang.reflect.Type;
@GlobalTypeAdapter
public class MeuTipoAdapter
implements TypeAdapter<MeuTipo>, JsonSerializer<MeuTipo>, JsonDeserializer<MeuTipo> {
// TypeAdapter<T> — conversao Java ↔ Jape (banco)
@Override
public MeuTipo fromVO(Object o) {
if (o == null) return null;
// converter valor do banco -> MeuTipo
}
@Override
public Object toVO(MeuTipo value) {
if (value == null) return null;
// converter MeuTipo -> valor para banco
}
@Override
public void setType(Class<? extends MeuTipo> aClass) {} // geralmente vazio
// JsonSerializer<T> — conversao Java -> JSON
@Override
public JsonElement serialize(MeuTipo value, Type type, JsonSerializationContext ctx) {
return new JsonPrimitive(value.toString());
}
// JsonDeserializer<T> — conversao JSON -> Java
@Override
public MeuTipo deserialize(JsonElement el, Type type, JsonDeserializationContext ctx)
throws JsonParseException {
try {
return MeuTipo.parse(el.getAsString());
} catch (Exception e) {
throw new JsonParseException("Erro ao desserializar MeuTipo: " + el, e);
}
}
}
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.
- 2d ago First seen · 228 lines · 150 tokens per session scan A 797aa6ccd6bb
type-adapter is a skill published in the GitHub repository snk-devcenter/addon-studio (5 stars, last pushed 2d ago), licensed MIT. It adds 150 tokens to every session and 2,677 once invoked, about $0.0007 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-31.
Other skills, from other repositories
airflow-java-sdk
Guide for contributing to the Airflow Java SDK (AIP-108). Use this skill whenever a contributor is working in the java-sdk/ directory or on the Java coordinator in task-sdk/src/airflow/sdk/coordinators/java/ — whether they want to add a feature, write tests, fix a bug, understand the architecture, or prepare a PR.…
jni-type-conversion
How to use @JniType annotations for ergonomic JNI. Relevant for Java files that use @NativeMethods or @CalledByNative.
wxjava-module-selector
根据微信公众号、小程序、微信支付、企业微信、开放平台、视频号或微信小店、腾讯企点和微信智能对话等业务场景,为用户选择合适的 WxJava Maven 模块、BOM 和示例入口。适用于用户询问“该用哪个模块”、依赖坐标、产品边界或单/多账号 Starter 选择时。.
azure-ai-formrecognizer-java
Azure AI Document Intelligence SDK for Java (com.azure:azure-ai-documentintelligence). Use for extracting text, tables, key-value pairs from documents, receipts, invoices, IDs, or building custom document models. Triggers: "document intelligence java", "form recognizer java", "extract text from PDF java", "OCR…
azure-ai-anomalydetector-java
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
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.