kotlin

Revisar · 61
Indexado en Registry

Design, implement, and review Kotlin and Android APIs. Use when working on .kt files, Kotlin nullability, sealed classes/interfaces, coroutines, Android threading, Java interop, or Kotlin-backed React Native Nitro Module implementations.

Verified installs0
Estrellas161
Versión1.0.0
Calidad64/100 · Prometedor
Confianza61/100 · Solo sandbox
Auditoría75/100 · Requiere revisión

Perfil del activo

Agents de programación y desarrollo

Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.

Ver categoría

Escenario

GitHub automation

I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.

Afinidad con Agent

Claude Code + CLI + Codex

Funciona con Codex, Claude Code, Cursor, CLI o Agents personalizados.

Instalar

Listo

npx skills add margelo/react-native-skills --skill kotlin

Mantenimiento

Actual

2 días desde el último push

Riesgo

Requiere revisión

La licencia no está clara

Calidad de GitHub

161

64/100 Calidad · 69/100 Confianza

Etiquetas de cobertura

CodingGitHub automationDiseño y creatividadagent-skill

Notas de revisión

La licencia no está clara · Financial research output is not financial advice; require human review before any live investment decision

Tarjeta de adopción del Agent

Confianza, auditoría y preparación de instalación de un vistazo

Estas puntuaciones combinan metadatos públicos del repositorio, señales de revisión de OpenAgentSkill, actualidad de mantenimiento y preparación de instalación. Sirven para preseleccionar; no sustituyen la revisión humana.

Calidad

Prometedor
64

Useful candidate, but compare it with alternatives before adopting.

Confianza

Solo sandbox
61

Candidata útil con señales de confianza incompletas o mixtas. Manténgala en un espacio aislado hasta que el ciclo de resultados demuestre el ajuste.

Auditoría

Requiere revisión
75

Revisión legible por máquina de la preparación de instalación, los metadatos de seguridad, el mantenimiento y el riesgo de adopción.

Trust Score de OpenAgentSkill v5

Revisión humana antes de instalar

Ejecute solo en un sandbox y compare alternativas cercanas antes de usarla en trabajo real.

CodexClaude CodeCursorOpenAgentSkill CLI

Estrellas

161 estrellas de GitHub

Actividad del repositorio

161 estrellas y 7 forks

Mantenimiento

2 días desde el último push

Licencia

Desconocido

Instalar

npx skills add margelo/react-native-skills --skill kotlin

Seguridad de instalación

Ruta estándar de paquete o instalación en tiempo de ejecución

Superficie de permisos

filesystem or document access, network or browser access

Resultados del Agent

Aún no hay datos de resultados del Agent

Documentación

Contexto sólido de README/SKILL.md

Resumen de riesgo

Revisar antes de producción

  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • Financial research output is not financial advice; require human review before any live investment decision.
  • La licencia no está clara
  • Quality score needs review

Preparación de instalación

Ruta de instalación disponible

  • La ruta de instalación está disponible
  • La evidencia del repositorio está disponible
  • La licencia no está clara
  • Aún no hay evidencia de resultados Agent-Proven

Metadatos legibles por Agent

Datos de decisión legibles por máquina para este skill.

Usa este bloque o el JSON integrado para decidir si un Agent debe instalar este skill, elegir una alternativa o pedir revisión humana primero.

Abrir JSON

Tareas adecuadas

  • flujos de Automatización de flujos
  • Equipos de Claude Code
  • builders willing to evaluate younger projects
  • Move data between tools

Agents adecuados

CodexClaude CodeCursorOpenAgentSkill CLICLI

Decisión de instalación

Comando
npx skills add margelo/react-native-skills --skill kotlin
Política
Revisar
Revisión humana

Confianza y riesgo

Confianza
61/100
Auditoría
75/100
Nivel de riesgo
Requiere revisión

Ciclo de resultados

Endpoint
/api/agent/outcome
ID del evento
resolve
Resultados
5

Comando de instalación

npx skills add margelo/react-native-skills --skill kotlin

No usar cuando

  • Equipos que necesitan un SLA con soporte del proveedor
  • production agents without a repository review
  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • La licencia no está clara
  • Financial research output is not financial advice; require human review before any live investment decision

Seguridad de Agent v2

59/100 · Revisar antes de instalar

Revisado con notas de permisosRevisar

Candidato utilizable, pero el Agent debe mostrar las notas de permisos y auditoría antes de instalar.

Requiere aprobación humana antes de instalar en un espacio de trabajo real.

Resolver con API

Medio

Acceso a red

El skill probablemente consulta páginas remotas, API, repositorios o servicios externos.

Medio

Acceso al sistema de archivos

El skill puede leer o escribir archivos de proyecto, documentos, artefactos generados o estado local.

  • La licencia no está clara

Destinos de instalación

Instala este skill en tu flujo de Agent

Usa el endpoint público para obtener el comando, la lista de seguridad, prompts y enlaces canónicos.

skill install

OpenAgentSkill CLI

Resolve policy, run the source installer safely, and report a verified install receipt.

$ npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.2.1/openagentskill-0.2.1.tgz install margelo-kotlin

Plan de resolución de Agent

Deja que un Agent valide el ajuste antes de instalar.

La API Resolve devuelve la skill elegida, alternativas, política de seguridad, notas de auditoría, destino de instalación y un prompt listo para usar.

Abrir plan de texto

Agent debe revisar

  • Task fit and alternatives from Resolve API.
  • Audit score, trust score, and safety policy warnings.
  • Install target compatibility for Codex, Claude Code, Cursor, or CLI.

Copiar prompt

Task: Use kotlin in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20kotlin%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/margelo-kotlin/install
Install command: npx skills add margelo/react-native-skills --skill kotlin
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.

Traspaso de Agent

Da al Agent la ruta de instalación, no otro directorio.

Usa el endpoint público para obtener el comando, la lista de seguridad, prompts y enlaces canónicos.

Abrir API de instalación

Prompt de Agent

Use kotlin for this task. Review https://www.openagentskill.com/api/skills/margelo-kotlin/install, then install with: npx skills add margelo/react-native-skills --skill kotlin

Metadatos del Registry

Perfil legible por Agent para seleccionar skills automáticamente.

La API Registry expone señales de decisión, confianza, auditoría, casos de uso e instalación sin raspar la interfaz.

Abrir Manifest

Afinidad con Agent

65/100

Automatización de flujos

Plataformas

Claude Code

Informe de auditoría

Requiere revisión · 75/100

Revisión legible por máquina de la preparación de instalación, los metadatos de seguridad, el mantenimiento y el riesgo de adopción.

Ver informe de auditoríaVer informe de evaluación

Panel de decisión de Agent

Fallback candidate for Workflow automation

Prototype with this skill first; keep a fallback candidate ready.

65
Preparación
Prototipo
Etapa

Rol en la pila

Candidata de respaldo

Ajuste principal

Automatización de flujos

Etiqueta de confianza

Prototipar primero

Ruta de instalación

Comando listo

Úsalo cuando

  • flujos de Automatización de flujos
  • Equipos de Claude Code
  • builders willing to evaluate younger projects

Evidencia

  • recent repository activity
  • install command or GitHub repo available
  • perfil de calidad 64/100
  • 6 eventos de interacción de OpenAgentSkill

revisar primero

  • The repository license is unknown, which may raise concerns about usage rights and redistribution.

Ruta de implementación

  1. 1Instálalo en un Agent de sandbox y ejecuta una tarea de Automatización de flujos de principio a fin.
  2. 2Compare output quality, latency, and failure behavior against at least one alternative.
  3. 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.

Perfil de confianza

Solo sandbox

Candidata útil con señales de confianza incompletas o mixtas. Manténgala en un espacio aislado hasta que el ciclo de resultados demuestre el ajuste.

61
Trust Score de OpenAgentSkill

Adopción en GitHub

Info

161 estrellas de GitHub

Actividad de stars/forks

Revisar

161 estrellas y 7 forks; la actividad de issues no está disponible en los metadatos actuales

Mantenimiento reciente

Aprobado

2 días desde el último push

Claridad de licencia

Revisar

Desconocido

Señales positivas

  • Revisión de IA aprobada
  • La ruta de instalación está disponible
  • La evidencia del repositorio está disponible
  • Repositorio mantenido recientemente
  • El comando de instalación no muestra un patrón de alto riesgo evidente
  • El ciclo de resultados está listo, pero necesita la primera ejecución real de Agent

Revisar antes de instalar

  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • Financial research output is not financial advice; require human review before any live investment decision.
  • La licencia no está clara
  • Quality score needs review
  • Stars/forks activity: 161 stars, 7 forks; issue activity unavailable in current metadata
  • License clarity: Unknown
  • Aún no hay informes reales de resultados del Agent
  • Se requiere revisión humana antes de una instalación desatendida

Acción recomendada

Ejecute solo en un sandbox y compare alternativas cercanas antes de usarla en trabajo real.

Perfil de calidad

Prometedor candidato para flujos de Agent

Useful candidate, but compare it with alternatives before adopting.

64
Estrellas de GitHub
161
Actualidad
hace 2 días
Listo para instalar
Licencia
Desconocido
Revisar antes de instalar: The repository license is unknown, which may raise concerns about usage rights and redistribution.

Ajuste de flujo

Usa esta skill en estos escenarios

Ajuste de flujo

Añadir a un flujo completo

Lista de alternativas

Compara antes de instalar

Similar skills that may fit this task.

Comparar todo

Resumen

--- name: kotlin description: Design, implement, and review Kotlin and Android APIs. Use when working on .kt files, Kotlin nullability, sealed classes/interfaces, coroutines, Android threading, Java interop, or Kotlin-backed React Native Nitro Module implementations. ---

# Kotlin

Use this skill for Kotlin code that needs strong type modeling, explicit async boundaries, and idiomatic Android integration. When the code is part of a Nitro Module, pair this with `build-nitro-modules` for generated specs, Promise mapping, annotations, and HybridObject constraints.

## Workflow

1. Read the local Kotlin code, generated abstract classes, and public API shape before editing. 2. Model valid states with Kotlin types before implementing behavior. 3. Choose whether work is synchronous, coroutine-based, or explicitly dispatched. 4. Keep properties cheap and nonblocking. 5. Make thread hops, Android service access, I/O, and fallible work visible in the API.

## Type-Safe API Design

- Represent state variants with sealed interfaces/classes, normal interfaces, or concrete classes. Do not encode variants as one data class with many nullable fields. - Keep related values non-null on the variant where they are valid. If `barcode` and `barcodeType` must exist together, put them on `ScannedBarcode`. - Use nullable types for real absence inside one state, not for "maybe this object is a different kind of thing". - Prefer compile-time narrowing over caller-side null probing. Repeated null checks for related fields usually mean the model is too loose.

```kotlin // Avoid: related fields are nullable and the valid combinations are implicit. data class ScannedData( val position: Point, val text: String?, val barcode: String?, val barcodeType: BarcodeType?, val face: Rect?, )

// Prefer: each variant exposes only the fields that are valid for it. sealed interface ScannedData { val position: Point }

data class ScannedText( override val position: Point, val text: String, ) : ScannedData

data class ScannedBarcode( override val position: Point, val barcode: String, val barcodeType: BarcodeType, ) : ScannedData

data class ScannedFace( override val position: Point, val face: Rect, ) : ScannedData ```

## Async and Threading

- Use coroutines for naturally suspending APIs and Android I/O that already has coroutine support. - Keep quick, deterministic, local work synchronous. Do not introduce coroutines, dispatchers, or Promise plumbing for simple value construction, cached metadata, or pure transforms. - Use explicit owned dispatchers/scopes or Nitro `Promise.parallel` for CPU-bound synchronous work that should not run on the caller thread. - Avoid the main dispatcher unless the Android API requires it, such as view/UI mutation or lifecycle APIs. Keep main-thread blocks small and move parsing, conversion, I/O, session negotiation, and CPU work to an owned dispatcher or async API. - Do not use `runBlocking` in library code, property getters, setters, or JS-facing entry points. - Do not hide a thread hop, service lookup, blocking I/O, permission flow, or fallible native operation behind a property. - If a value is emitted by a specific Android callback/thread, prefer a listener, Flow, or event API. In Nitro specs, expose a listener or a `Promise<T>` method. - Treat repeated `launch`, `withContext`, dispatcher, handler, or executor hops as an architecture smell. A component should either own the coroutine scope/dispatcher/lifecycle it works on, or cross into that owner once at the public async boundary or native callback boundary. - If a workflow bounces between main, IO, default, native, and JS/Nitro contexts in multiple nested places, stop and redesign the object/lifecycle/API. Excessive hops hide latency, make ordering harder to reason about, and create future performance problems. - Do not fix races or readiness bugs with `delay`, `Thread.sleep`, `Handler.postDelayed`, timers, extra dispatcher hops, or calling the same method twice. Fix the owner dispatcher/lifecycle, state machine, callback/event, Flow, or async API boundary instead. Retry only for external nondeterminism such as hardware, OS services, remote services, or network, and keep retries bounded, cancellable, and idempotent. - Keep mutable shared state owned by one coroutine scope, dispatcher, lock, or Android component lifecycle. Avoid mixing ownership models without a clear boundary. - Treat `Mutex`, `synchronized`, and `ReentrantLock` as last-resort synchronization, not default listener or callback plumbing. Before adding one, identify the exact shared mutable values, concurrent callers, and why a single owner dispatcher/lifecycle, channel/Flow, or immutable snapshot is not enough. - Never hold a lock while invoking callbacks, calling into JS/Nitro, or calling unknown user code. Snapshot listeners under the lock if needed, unlock, then call them. A listener removed during an in-flight emission may receive that current event.

## Properties

- Use `val` and `var` for cheap in-memory state or derived values. - Use methods for side effects, I/O, Android service calls, permission checks, allocation, blocking work, or operations that can fail. - If a property would need to wait for another thread, redesign it as an async method or event.

```kotlin // Avoid: blocking work hidden in a getter. val status: SessionStatus get() = runBlocking { session.status() }

// Prefer: make the async boundary explicit. fun getStatus(): Promise<SessionStatus> { return Promise.async { session.status() } } ```

## Kotlin Style

- Make classes final by default. Kotlin classes already are final unless marked `open`; keep them that way unless inheritance is intentional. - Prefer `data class` for plain values and regular classes for owned resources or lifecycle. - Prefer `sealed interface` or `sealed class` for closed result families. - Use `require`, `check`, or specific exceptions for invalid inputs and invalid state. Do not silently no-op user-reachable failures. - Keep Java interop explicit. Convert platform types into Kotlin types before exposing them through the public API where practical. - Avoid `!!` except at narrow boundaries where a prior check makes the invariant obvious. Prefer early returns, `requireNotNull`, or typed state. - Prefer explicit `return` statements inside multi-line control flow. Do not lift the return outside a multi-line `try`/`catch`, `if`, `when`, or lambda just to make it expression-like; use `try { return value } catch (...) { return fallback }`. - In multi-line lambdas, use labeled returns such as `return@map value` for the result. Omit the label only for true single-expression lambdas like `items.map { it.toString() }`; do not write `items.map { return@map it.toString() }`. - Prefer inline shorthand for unambiguous single-expression lambdas: `formats.map { it.toMLKitFormat() }`, not a multi-line `map { format -> format.toMLKitFormat() }`. Do not use `it` when a surrounding or nested lambda already uses `it`; name parameters in nested lambdas or when clarity needs it. - Treat a filename as a scope contract. `HybridDataScanner.kt` should implement `HybridDataScanner`; it should not also contain Android helpers, geometry conversions, listeners, or extension utilities. - Keep one top-level implementation type per file. Do not put secondary classes, interfaces, enums, option adapters, coordinators, delegates, or helper types below the primary type. If a helper deserves a type, it deserves its own file. - Keep one focused extension/conversion per file. Do not create a catch-all extension file just because every helper is an extension. Split conversions into named files such as `Barcode+toScannedCode.kt`, `TargetBarcodeFormat+toMLKitFormat.kt`, and `BarcodeFormat+fromMLKitBarcodeFormat.kt` with `internal` visibility where appropriate. - Never put extension `fun`, `val`, or `var` declarations inside `Hybrid*` implementation files or other primary implementation files, even when they are private, tiny, or only used by that file. Put every extension in a separate named `Type+operation.kt` extension/converter file so code splitting, maintainability, and future diffs stay clean. - Do not place private top-level extension properties/functions below a primary class just because Kotlin allows it. Companion extensions, enum/platform mappings, barcode format conversions, and ML Kit/CameraX adapters belong in their own named files. - Use private top-level helpers in the same file only when they are tiny, non-extension functions/properties, and exist solely to support that file's primary type. - Extract Android preflight checks and platform boilerplate out of `Hybrid*` factories and implementation methods. Permission checks, manifest feature/permission validation, `PackageManager` capability checks, service availability checks, and similar setup guards belong in focused helper files; the HybridObject call site should stay one or two lines. - Do not create broad `Utils.kt` files for these helpers. Name the file after the platform type or domain check and keep each helper focused on one behavior. - Use line count as a review signal: files below roughly 300 lines are usually fine only after the one-type-per-file and no-helpers-in-factory rules are satisfied. Size caused by helpers, conversions, or Android glue is a design issue. - Put conversions on the element type, not on `List` or array types, when the conversion only reads one element. Prefer `TargetBarcodeFormat.toMLKitFormat()` plus `formats.map { it.toMLKitFormat() }` at the call site over `Array<TargetBarcodeFormat>.toMLKitFormats()`. - Do not put domain conversions on broad/common receivers such as `Int`, `String`, `Double`, or `Any`, even privately. Prefer the domain type's companion/factory direction, such as `BarcodeFormat.Companion.fromFormat(format: Int)`, over `Int.toBarcodeFormat()`. - Add collection extension functions only when the collection has real domain behavior, such as validation across elements, deduplication, ordering, batching, caching, nonempty checks, or error aggregation. If the receiver is a concrete `Array<SomeDomainType>` or `List<SomeDomainType>` and the body is mostly `map { ... }`, keep it in caller code. - When a Kotlin converter returns or accepts Android platform `Int` constants, apply the matching AndroidX/Java/Kotlin annotation where the API supports it, such as a CameraX `@ImageCapture.FlashMode`-style annotation on the function, return value, or parameter. Check the annotation target and retention before placing it; do not annotate blindly when the platform API exposes only a plain `Int`. - When converting from an annotated platform `Int`, put the annotation on the `format: Int` parameter if the annotation target supports parameters. For example, prefer `BarcodeFormat.Companion.fromFormat(@SomeBarcodeFormat format: Int)` over an untyped primitive input.

## Nitro Notes

- Kotlin HybridObject implementations must extend the generated `Hybrid*Spec` class and include `@Keep` plus `@DoNotStrip`. - Use `Promise.async` for suspending or I/O work and `Promise.parallel` for CPU-bound synchronous work. - Avoid manually creating or passing around `Promise<T>` instances. Prefer `Promise.async`, `Promise.parallel`, `Promise.resolved`, and `Promise.rejected`; use a manual Promise only for real native completion/listener/callback bridges that cannot be wrapped as suspend APIs. - For general callback APIs such as Google `Task<T>`, first write a generic suspend adapter in its own extension file, such as `Task+await.kt`, then call it from `Promise.async { task.await() }`. Do not hand-wire `addOnSuccessListener`/`addOnFailureListener`/`addOnCanceledListener` into public HybridObject methods. - Use `Promise<Unit>` for `Promise<void>`. - Access `NitroModules.applicationContext` lazily and fail explicitly if it is unavailable. - Generated properties are synchronous JS entry points. Redesign them as methods or listeners if they need Android

Detalles técnicos

Versión
1.0.0
Licencia
Unknown
Última actualización
21 ago 2026
Publicado
21 ago 2026

Resumen de decisión

Candidata de respaldo

65
Listo
Prototipo
Etapa

recent repository activity

Auditoría

Revisión de instalación

Revisión de instalación y adopción

75
Requiere revisión
Seguridad
73/100
Mantenimiento
100/100
Instalar
92/100
Abrir auditoría completaVer informe de evaluación

Evidencia probada por Agent

Evidencia probada por Agent

Informes de resultados tras resolver, revisar, instalar y una ejecución limitada.

0
Probado
Needs first agent runAuto-instalación: revisar primeroÚltimo: Desconocido
Tasa de éxito
Fallo reciente
Resultados
0
Calidad de salida
Fallidos
0
No relevante
0
Instalaciones
0
Bloqueado por riesgo
0
Configuración necesaria
0
Producción
0

Aún no hay datos de resultados de Agent. La primera ejecución puede informar éxito, configuración necesaria, bloqueos de riesgo, fallo o irrelevancia mediante /api/agent/outcome.

Instalar

Añadir al flujo de Agent

Gratis y de código abierto. Revisa el informe antes de instalar en Agents de producción.

Bucle de crecimiento

Kit para compartir

X

Borrador basado en un caso para kotlin, listo para publicar manualmente en X.

Nota del curador
A practical pick for design or creative work:

kotlin: Design, implement, and review Kotlin and Android APIs. Use when working on .kt files, Kotlin nullability, sealed classes/in...

161 stars

https://www.openagentskill.com/skills/margelo-kotlin?ref=x
Abrir borrador de X
Respuesta opcional con comando de instalación
Listing + install path for kotlin:
https://www.openagentskill.com/skills/margelo-kotlin?ref=x

Install: npx skills add margelo/react-native-skills --skill kotlin

Fuente de la ficha

Indexado por Registry

Reclamable

Esta ficha se indexó desde fuentes públicas y no está marcada como oficial hasta que se apruebe una reclamación de mantenedor.

Creador
margelo
Indexado por
Índice comunitario de OpenAgentSkill

La atribución enlaza al repositorio público o al perfil del creador. Los creadores pueden reclamar la ficha para actualizar las señales de propiedad.

Reclamar este skill

Reclamación del propietario

Reclamar esta ficha de skill

Esta ficha Indexado por Registry se atribuye a margelo, pero aún no está marcada como oficial. Reclámala para añadir una señal de propietario verificado y hacer más fiables futuras actualizaciones de lanzamiento, instalación y auditoría.

Kit de enlaces para creadores

Añade las insignias de evidencia a tu README

Muestra la ficha canónica, las señales actuales de confianza y auditoría, y evidencia real de Agent-Proven donde los desarrolladores evalúan el repositorio.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/margelo-kotlin?metric=listed&label=Listed)](https://www.openagentskill.com/skills/margelo-kotlin)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/margelo-kotlin?metric=trust&label=Trust)](https://www.openagentskill.com/skills/margelo-kotlin)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/margelo-kotlin?metric=audit&label=Audit)](https://www.openagentskill.com/skills/margelo-kotlin/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/margelo-kotlin?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/margelo-kotlin)

Autor

M

margelo

@margelo

Etiquetas

Afinidad con plataforma

Señales de salud

Estrellas de GitHub
161
Puntuación de calidad
39/100
Último push de GitHub
21 ago 2026
Pistas del framework
Desconocido
Vistas de OpenAgentSkill
6
Copias de instalación
0
Clics externos
0

Señal de comunidad

Comparte si este skill resulta útil para tu flujo de Agent. Los comentarios agregados mejoran la clasificación con el tiempo.

Confianza y seguridad

Solo sandbox

61
  • Adopción en GitHub161 estrellas de GitHubInfo
  • Actividad de stars/forks161 estrellas y 7 forks; la actividad de issues no está disponible en los metadatos actualesRevisar
  • Mantenimiento reciente2 días desde el último pushAprobado
  • Claridad de licenciaDesconocidoRevisar
  • Completitud de README/SKILL.mdLos metadatos incluyen suficiente contexto de uso y flujo de trabajoAprobado
  • Riesgo de dependencias/runtimenetwork or browser surfaceAprobado