kotlin

审查 · 61
已收录

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
版本1.0.0
质量64/100 · 有潜力
信任61/100 · 仅限沙盒
审计75/100 · 需审查

供给资产档案

编程与开发 Agent

代码审查、仓库分析、测试、CI、GitHub、DevOps 与开发工作流 Skill。

浏览赛道

场景

GitHub automation

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

适配 Agent

Claude Code + CLI + Codex

适用于 Codex、Claude Code、Cursor、CLI 或自定义 Agent。

安装

就绪

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

维护状态

新鲜

距上次推送 1 天

风险

需审查

许可证不清晰

GitHub 质量

161

64/100 质量 · 69/100 信任

覆盖标签

编程GitHub automation设计与创意agent-skill

审查说明

许可证不清晰 · Financial research output is not financial advice; require human review before any live investment decision

Agent 采用评分卡

一眼查看信任、审计与安装准备度

这些分数综合公开仓库元数据、OpenAgentSkill 审查信号、维护新鲜度与安装准备度。它用于候选筛选,不替代人工审查。

质量

有潜力
64

有用的候选项,但采用前应与替代方案比较。

信任

仅限沙盒
61

有用但信任信号不足或混杂的候选项。在结果闭环证明任务匹配前,请保持在隔离工作区内使用。

审计

需审查
75

对安装准备度、安全元数据、维护情况与采用风险的机器可读审查。

OpenAgentSkill 信任评分 v5

安装前需人工审查

仅在沙盒中运行,并在用于真实工作前比较接近的替代方案。

CodexClaude CodeCursorOpenAgentSkill CLI

Stars

161 个 GitHub Stars

仓库活跃度

161 个 Star,7 个 Fork

维护状态

距上次推送 1 天

许可证

未知

安装

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

安装安全性

标准软件包或运行时安装路径

权限范围

filesystem or document access, network or browser access

Agent 结果

暂未有 Agent 结果数据

文档

README/SKILL.md 上下文充分

风险摘要

生产前审查

  • 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.
  • 许可证不清晰
  • Quality score needs review

安装准备度

安装路径可用

  • 安装路径可用
  • 仓库证据可用
  • 许可证不清晰
  • 暂无 Agent 验证结果证据

Agent 可读元数据

这个 Skill 的机器可读决策数据。

使用此区块或内嵌 JSON 判断 Agent 是否应安装该 Skill、选择替代方案,或先请求人工审查。

打开 JSON

适用任务

  • 工作流自动化 工作流
  • Claude Code 团队
  • builders willing to evaluate younger projects
  • Move data between tools

适用 Agent

CodexClaude CodeCursorOpenAgentSkill CLICLI

安装决策

命令
npx skills add margelo/react-native-skills --skill kotlin
策略
审查
人工审查

信任与风险

信任
61/100
审计
75/100
风险级别
需审查

结果闭环

端点
/api/agent/outcome
事件 ID
resolve
结果
5

安装命令

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

不适用场景

  • 需要厂商支持 SLA 的团队
  • production agents without a repository review
  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • 暂未有 OpenAgentSkill 使用反馈数据
  • 许可证不清晰
暂未收录接近的替代方案。

Agent 安全 v2

59/100 · 安装前审查

已审查并附权限说明审查

可用候选,但 Agent 在安装前应展示权限与审计说明。

在真实工作区安装前需要人工批准。

通过 API 解析

网络访问

Skill 可能访问远程页面、API、仓库或外部服务。

文件系统访问

Skill 可能读取或写入项目文件、文档、生成产物或本地工作区状态。

  • 许可证不清晰

安装目标

在你的 Agent 工作流中安装此 Skill

通过公开安装端点获取命令、安全清单、目标提示词和该 Skill 的规范链接。

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

Agent 解析计划

让 Agent 在安装前验证匹配度。

Resolve API 返回首选 Skill、替代方案、安全策略、审计说明、安装目标和可直接执行的提示词,无需抓取此页面。

打开文本计划

Agent 应检查

  • 从 Resolve API 检查任务匹配与替代方案。
  • 检查审计评分、信任评分和安全策略警告。
  • 检查 Codex、Claude Code、Cursor 或 CLI 的安装目标兼容性。

复制提示词

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.

Agent 交接

把安装路径交给 Agent,而不是再给一个目录页。

通过公开安装端点获取命令、安全清单、目标提示词和该 Skill 的规范链接。

打开安装 API

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

Registry 元数据

用于自动选择 Skill 的 Agent 可读档案。

本页通过 Registry API 提供相同的决策、信任、审计、场景和安装信号,让 Agent 无需抓取界面即可排序。

打开 Manifest

适配 Agent

63/100

工作流自动化

平台

Claude Code

审计报告

需审查 · 75/100

对安装准备度、安全元数据、维护情况与采用风险的机器可读审查。

查看审计报告查看评估报告

Agent 决策面板

Fallback candidate for Workflow automation

先用此 Skill 做原型验证,并保留备选方案。

63
就绪度
原型验证
阶段

栈中角色

备选候选

主要匹配

工作流自动化

信任标签

先做原型验证

安装路径

命令已就绪

适用场景

  • 工作流自动化 工作流
  • Claude Code 团队
  • builders willing to evaluate younger projects

证据

  • 仓库近期活跃
  • 已提供安装命令或 GitHub 仓库
  • 64/100 质量档案

先审查

  • The repository license is unknown, which may raise concerns about usage rights and redistribution.
  • 暂未有 OpenAgentSkill 使用反馈数据

实施路径

  1. 1在沙盒 Agent 中安装它,并端到端完成一次工作流自动化任务。
  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.

信任档案

仅限沙盒

有用但信任信号不足或混杂的候选项。在结果闭环证明任务匹配前,请保持在隔离工作区内使用。

61
OpenAgentSkill 信任评分

GitHub 采用度

信息

161 个 GitHub Stars

Star/Fork 活跃度

检查

161 个 Star,7 个 Fork; 当前元数据中没有议题活跃度信息

近期维护

通过

距上次推送 1 天

许可证清晰度

检查

未知

积极信号

  • AI 审查已通过
  • 安装路径可用
  • 仓库证据可用
  • 近期维护的仓库
  • 安装命令未发现明显高风险模式
  • 结果闭环已就绪,但需要首次真实 Agent 运行

安装前审查

  • 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.
  • 许可证不清晰
  • Quality score needs review
  • Stars/forks activity: 161 stars, 7 forks; issue activity unavailable in current metadata
  • License clarity: Unknown
  • 暂未有真实 Agent 结果报告
  • 无人值守安装前需要人工审查

建议操作

仅在沙盒中运行,并在用于真实工作前比较接近的替代方案。

质量档案

有潜力 适用于 Agent 工作流的候选

有用的候选项,但采用前应与替代方案比较。

64
GitHub Stars
161
新鲜度
1 天前
安装就绪
许可证
未知
安装前审查: The repository license is unknown, which may raise concerns about usage rights and redistribution.

工作流匹配

在这些场景使用此 Skill

工作流匹配

加入完整工作流

概览

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

技术详情

版本
1.0.0
许可证
Unknown
最近更新
2026年8月21日
发布时间
2026年8月21日

决策摘要

备选候选

63
就绪
原型验证
阶段

仓库近期活跃

审计

安装审查

安装与采用审查

75
需审查
安全性
73/100
维护状态
100/100
安装
92/100
打开完整审计查看评估报告

Agent 验证证据

Agent 验证证据

来自解析、审查、安装和一次小范围运行后的结果报告。

0
已验证
Needs first agent run自动安装: 先审查最近: 未知
成功率
近期失败
结果
0
输出质量
失败
0
不相关
0
安装次数
0
风险拦截
0
需要配置
0
生产环境
0

暂时没有 Agent 结果数据。首次 Agent 执行可以通过 /api/agent/outcome 报告成功、需要设置、风险拦截、失败或不相关。

安装

加入 Agent 工作流

免费且开源. 在生产 Agent 中安装前请先审查报告。

增长闭环

分享工具包

X

为 kotlin 准备的场景化草稿,可手动发布到 X。

策展说明
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
打开 X 草稿
可选:带安装命令的回复
Listing + install path for kotlin:
https://www.openagentskill.com/skills/margelo-kotlin?ref=x

Install: npx skills add margelo/react-native-skills --skill kotlin
打开回复草稿

收录来源

Registry 收录

可认领

此列表来自公开来源,维护者认领获批前不会标记为官方。

创作者
margelo
收录方
OpenAgentSkill 社区索引

归属链接指向公开仓库或创作者主页。创作者可认领列表以更新所有权信号。

认领此 Skill

所有者认领

认领此 Skill 页面

这条 Registry 收录 列表归属于 margelo,但尚未标记为官方。认领后可增加已验证所有者信号,使后续发布、安装和审计更新更值得信赖。

创作者外链工具包

将证据徽章加入你的 README

在开发者评估仓库的位置展示规范页面、当前信任与审计信号,以及真实的 Agent 验证证据。

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

作者

M

margelo

@margelo

平台适配

健康信号

GitHub Stars
161
质量评分
39/100
最近 GitHub 推送
2026年8月21日
框架提示
未知
OpenAgentSkill 浏览量
0
复制安装命令
0
跳转点击
0

社区信号

告诉我们这个 Skill 是否对你的 Agent 工作流有帮助。汇总反馈会持续改善排序。

信任与安全

仅限沙盒

61
  • GitHub 采用度161 个 GitHub Stars信息
  • Star/Fork 活跃度161 个 Star,7 个 Fork; 当前元数据中没有议题活跃度信息检查
  • 近期维护距上次推送 1 天通过
  • 许可证清晰度未知检查
  • README/SKILL.md 完整度元数据包含足够的用法与工作流上下文通过
  • 依赖与运行时风险network or browser surface通过