kotlin

Revoir · 61
Indexé dans 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
Stars161
Version1.0.0
Qualité64/100 · Prometteur
Confiance61/100 · Sandbox uniquement
Audit75/100 · Revue nécessaire

Profil de l’actif

Agents de code et de développement

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

Voir la catégorie

Scénario

GitHub automation

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

Adéquation Agent

Claude Code + CLI + Codex

Compatible avec Codex, Claude Code, Cursor, CLI ou des Agents personnalisés.

Installer

Prêt

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

Maintenance

À jour

1 jours depuis le dernier push

Risque

Revue nécessaire

La licence est ambiguë

Qualité GitHub

161

64/100 Qualité · 69/100 Confiance

Tags de couverture

CodingGitHub automationDesign et créationagent-skill

Notes de revue

La licence est ambiguë · Financial research output is not financial advice; require human review before any live investment decision

Carte d’adoption Agent

Confiance, audit et préparation à l’installation en un coup d’œil

Ces scores combinent les métadonnées publiques du dépôt, les signaux de revue OpenAgentSkill, la fraîcheur de maintenance et la préparation à l’installation. Ils servent à présélectionner et ne remplacent pas la revue humaine.

Qualité

Prometteur
64

Useful candidate, but compare it with alternatives before adopting.

Confiance

Sandbox uniquement
61

Candidate utile avec des signaux de confiance incomplets ou mixtes. Gardez-la dans un espace isolé jusqu’à ce que la boucle de résultats confirme son adéquation.

Audit

Revue nécessaire
75

Revue lisible par machine de la préparation à l’installation, des métadonnées de sécurité, de la maintenance et du risque d’adoption.

Trust Score OpenAgentSkill v5

Revue humaine avant installation

Exécutez uniquement dans un sandbox et comparez les alternatives proches avant usage réel.

CodexClaude CodeCursorOpenAgentSkill CLI

Stars

161 stars GitHub

Activité du dépôt

161 stars et 7 forks

Maintenance

1 jours depuis le dernier push

Licence

Inconnu

Installer

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

Sécurité d’installation

Chemin d’installation standard de package ou runtime

Surface de permissions

filesystem or document access, network or browser access

Résultats Agent

Pas encore de données de résultats Agent

Documentation

Contexte README/SKILL.md solide

Résumé des risques

Revoir avant production

  • 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 licence est ambiguë
  • Quality score needs review

Préparation à l’installation

Chemin d’installation disponible

  • Le chemin d’installation est disponible
  • La preuve du dépôt est disponible
  • La licence est ambiguë
  • Pas encore de preuve de résultat Agent-Proven

Métadonnées lisibles par Agent

Données de décision lisibles par machine pour ce skill.

Utilisez ce bloc ou le JSON intégré pour décider si un Agent doit installer ce skill, choisir une alternative ou demander d’abord une revue humaine.

Ouvrir JSON

Tâches adaptées

  • workflows Automatisation de workflow
  • Équipes Claude Code
  • builders willing to evaluate younger projects
  • Move data between tools

Agents adaptés

CodexClaude CodeCursorOpenAgentSkill CLICLI

Décision d’installation

Commande
npx skills add margelo/react-native-skills --skill kotlin
Politique
Revoir
Revue humaine
Oui

Confiance et risque

Confiance
61/100
Audit
75/100
Niveau de risque
Revue nécessaire

Boucle de résultat

Endpoint
/api/agent/outcome
ID d’événement
resolve
Résultats
5

Commande d’installation

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

Ne pas utiliser quand

  • Équipes qui nécessitent un SLA soutenu par le fournisseur
  • production agents without a repository review
  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • La licence est ambiguë
  • Financial research output is not financial advice; require human review before any live investment decision

Sécurité Agent v2

59/100 · Revoir avant installation

Révisé avec notes de permissionsRevoir

Candidat utilisable, mais l’Agent doit afficher les notes de permissions et d’audit avant l’installation.

Une approbation humaine est requise avant l’installation dans un espace de travail réel.

Résoudre via API

Moyen

Accès réseau

La skill récupère probablement des pages distantes, API, dépôts ou services externes.

Moyen

Accès au système de fichiers

La skill peut lire ou écrire des fichiers de projet, documents, artefacts générés ou l’état local de l’espace de travail.

  • La licence est ambiguë

Cibles d’installation

Installer ce skill dans votre workflow Agent

Utilisez le point de terminaison public pour récupérer la commande, la checklist, les prompts et les liens canoniques.

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 résolution Agent

Laissez un Agent vérifier la pertinence avant l’installation.

L’API Resolve renvoie la skill sélectionnée, des alternatives, la politique de sécurité, les notes d’audit, la cible d’installation et un prompt prêt à l’emploi.

Ouvrir le plan texte

L’Agent doit vérifier

  • 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.

Copier le 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.

Relais Agent

Donnez à l’Agent le chemin d’installation, pas un autre annuaire.

Utilisez le point de terminaison public pour récupérer la commande, la checklist, les prompts et les liens canoniques.

Ouvrir l’API d’installation

Prompt 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

Métadonnées Registry

Profil lisible par Agent pour la sélection automatique de skills.

L’API Registry fournit les signaux de décision, confiance, audit, cas d’usage et installation sans analyser l’interface.

Ouvrir Manifest

Adéquation Agent

65/100

Automatisation de workflow

Plateformes

Claude Code

Rapport d’audit

Revue nécessaire · 75/100

Revue lisible par machine de la préparation à l’installation, des métadonnées de sécurité, de la maintenance et du risque d’adoption.

Voir le rapport d’auditVoir le rapport d’évaluation

Panneau de décision Agent

Fallback candidate for Workflow automation

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

65
Préparation
Prototype
Étape

Rôle dans la pile

Candidate de secours

Pertinence principale

Automatisation de workflow

Libellé de confiance

Prototyper d’abord

Chemin d’installation

Commande prête

À utiliser lorsque

  • workflows Automatisation de workflow
  • Équipes Claude Code
  • builders willing to evaluate younger projects

Preuves

  • recent repository activity
  • install command or GitHub repo available
  • profil qualité 64/100
  • 6 événements OpenAgentSkill

revoir d’abord

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

Chemin d’implémentation

  1. 1Installez-le dans un Agent en sandbox et exécutez une tâche de Automatisation de workflow de bout en bout.
  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.

Profil de confiance

Sandbox uniquement

Candidate utile avec des signaux de confiance incomplets ou mixtes. Gardez-la dans un espace isolé jusqu’à ce que la boucle de résultats confirme son adéquation.

61
Trust Score OpenAgentSkill

Adoption GitHub

Info

161 stars GitHub

Activité stars/forks

Vérifier

161 stars et 7 forks; l’activité des issues n’est pas disponible dans les métadonnées actuelles

Maintenance récente

Validé

1 jours depuis le dernier push

Clarté de licence

Vérifier

Inconnu

Signaux positifs

  • Revue IA approuvée
  • Le chemin d’installation est disponible
  • La preuve du dépôt est disponible
  • Dépôt maintenu récemment
  • La commande d’installation ne présente aucun motif de haut risque évident
  • La boucle de résultats est prête mais nécessite la première exécution réelle de l’Agent

Réviser avant installation

  • 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 licence est ambiguë
  • Quality score needs review
  • Stars/forks activity: 161 stars, 7 forks; issue activity unavailable in current metadata
  • License clarity: Unknown
  • Pas encore de rapports de résultats Agent réels
  • Une revue humaine est requise avant une installation sans surveillance

Action recommandée

Exécutez uniquement dans un sandbox et comparez les alternatives proches avant usage réel.

Profil qualité

Prometteur candidat pour les workflows Agent

Useful candidate, but compare it with alternatives before adopting.

64
Stars GitHub
161
Actualité
il y a 1 jours
Prêt à installer
Oui
Licence
Inconnu
Réviser avant installation: The repository license is unknown, which may raise concerns about usage rights and redistribution.

Adéquation au workflow

Utilisez cette skill dans ces scénarios

Adéquation au workflow

Ajouter à un workflow complet

Liste d’alternatives

Comparer avant installation

Similar skills that may fit this task.

Tout comparer

Vue d’ensemble

--- 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

Détails techniques

Version
1.0.0
Licence
Unknown
Dernière mise à jour
21 août 2026
Publié
21 août 2026

Instantané de décision

Candidate de secours

65
Prêt
Prototype
Étape

recent repository activity

Audit

Revue d’installation

Revue d’installation et d’adoption

75
Revue nécessaire
Sécurité
73/100
Maintenance
100/100
Installer
92/100
Ouvrir l’audit completVoir le rapport d’évaluation

Preuves validées par Agent

Preuves validées par Agent

Rapports après resolve, revue, installation et une exécution limitée.

0
Validé
Needs first agent runAuto-installation: revoir d’abordDernier: Inconnu
Taux de réussite
Échec récent
Résultats
0
Qualité de sortie
Échecs
0
Non pertinent
0
Installations
0
Bloqué par le risque
0
Configuration requise
0
Production
0

Aucune donnée de résultat Agent pour l’instant. La première exécution peut signaler succès, besoin de configuration, blocage de risque, échec ou non-pertinence via /api/agent/outcome.

Installer

Ajouter au workflow Agent

Gratuit et open source. Examinez le rapport avant l’installation dans des Agents de production.

Boucle de croissance

Kit de partage

X

Brouillon guidé par scénario pour kotlin, prêt pour une publication manuelle sur X.

Note du curateur
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
Ouvrir le brouillon X
Réponse facultative avec commande d’installation
Listing + install path for kotlin:
https://www.openagentskill.com/skills/margelo-kotlin?ref=x

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

Source de la fiche

Indexé par Registry

Revendiable

Cette fiche a été indexée à partir de sources publiques et n’est pas marquée officielle tant qu’une revendication de mainteneur n’est pas approuvée.

Créateur
margelo
Indexé par
Index communautaire OpenAgentSkill

L’attribution renvoie au dépôt public ou au profil du créateur. Les créateurs peuvent revendiquer la fiche pour mettre à jour les signaux de propriété.

Revendiquer ce skill

Revendication du propriétaire

Revendiquer cette fiche de skill

Cette fiche Indexé par Registry est attribuée à margelo, mais n’est pas encore marquée officielle. Revendiquez-la pour ajouter un signal de propriétaire vérifié et rendre les futures mises à jour de lancement, d’installation et d’audit plus fiables.

Kit de backlinks créateur

Ajoutez les badges de preuve à votre README

Affichez la fiche canonique, les signaux actuels de confiance et d’audit, ainsi que de vraies preuves Agent-Proven là où les développeurs évaluent le dépôt.

[![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)

Auteur

M

margelo

@margelo

Adéquation plateforme

Signaux de santé

Stars GitHub
161
Score de qualité
39/100
Dernier push GitHub
21 août 2026
Indications de framework
Inconnu
Vues OpenAgentSkill
6
Copies d’installation
0
Clics sortants
0

Signal de communauté

Indiquez si ce skill semble utile à votre workflow Agent. Les retours agrégés améliorent le classement au fil du temps.

Confiance et sécurité

Sandbox uniquement

61
  • Adoption GitHub161 stars GitHubInfo
  • Activité stars/forks161 stars et 7 forks; l’activité des issues n’est pas disponible dans les métadonnées actuellesVérifier
  • Maintenance récente1 jours depuis le dernier pushValidé
  • Clarté de licenceInconnuVérifier
  • Complétude README/SKILL.mdLes métadonnées incluent suffisamment de contexte d’usage et de workflowValidé
  • Risque dépendances/runtimenetwork or browser surfaceValidé