kotlin
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.
供給アセットの概要
コーディングと開発 Agent
コードレビュー、リポジトリ分析、テスト、CI、GitHub、DevOps、開発ワークフロー向けのスキルです。
シナリオ
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 信頼
対象タグ
レビュー注記
ライセンスが不明確です · Financial research output is not financial advice; require human review before any live investment decision
Agent 導入スコアカード
信頼、監査、インストール準備状況を一目で確認
公開リポジトリのメタデータ、OpenAgentSkill のレビューシグナル、保守の鮮度、インストール準備状況を組み合わせたスコアです。候補選定の目安であり、人によるレビューの代替ではありません。
品質
有望有用な候補ですが、採用前に代替と比較してください。
信頼
サンドボックス限定信頼シグナルが不足または混在する有用な候補です。結果ループがタスク適合を示すまで、隔離されたワークスペースで使用してください。
監査
要レビューインストール準備、安全メタデータ、保守、採用リスクの機械可読なレビュー。
OpenAgentSkill Trust Score v5
インストール前に人のレビュー
実作業で使う前に、サンドボックスでのみ実行し、近い代替と比較してください。
スター
GitHub スター 161
リポジトリ活動
スター 161、フォーク 7
メンテナンス
最終プッシュから 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-Proven の成果エビデンスはまだありません
Agent 可読メタデータ
このスキルの機械可読な判断データ。
このブロックまたは埋め込み JSON を使い、Agent がこのスキルをインストールすべきか、代替を選ぶべきか、先に人のレビューを求めるべきかを判断できます。
適したタスク
- ワークフロー自動化 ワークフロー
- Claude Code チーム
- builders willing to evaluate younger projects
- Move data between tools
適した Agent
インストール判断
- コマンド
- npx skills add margelo/react-native-skills --skill kotlin
- ポリシー
- レビュー
- 人によるレビュー
- はい
信頼とリスク
- 信頼
- 61/100
- 監査
- 75/100
- リスクレベル
- 要レビュー
成果ループ
- エンドポイント
- /api/agent/outcome
- イベント ID
- resolve
- 成果
- 5
使わない場合
- ベンダー提供の SLA が必要なチーム
- production agents without a repository review
- 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
代替スキル
Frontend Design
170.9K スター
npx skills add anthropics/skills --skill frontend-design
代替スキル
Taste Skill: Anti-Slop Frontend
79.0K スター
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
代替スキル
Canvas Design
170.9K スター
npx skills add anthropics/skills --skill canvas-design
代替スキル
Anthropic Brand Guidelines
170.9K スター
npx skills add anthropics/skills --skill brand-guidelines
Agent セーフティ v2
59/100 · インストール前にレビュー
利用可能な候補ですが、Agent はインストール前に権限と監査メモを提示する必要があります。
実際のワークスペースへインストールする前に人の承認が必要です。
中
ネットワークアクセス
Skill はリモートページ、API、リポジトリ、外部サービスにアクセスする可能性があります。
中
ファイルシステムアクセス
Skill はプロジェクトファイル、ドキュメント、生成物、ローカルワークスペース状態を読み書きする可能性があります。
- ライセンスが不明確です
インストール先
Agent ワークフローにこのスキルをインストール
公開インストールエンドポイントからコマンド、安全チェックリスト、対象プロンプト、正規リンクを取得します。
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-kotlinAgent 解決プラン
インストール前に Agent に適合性を検証させます。
Resolve API は第一候補、代替、安全ポリシー、監査メモ、インストール先、Agent がそのまま使えるプロンプトを返します。
JSON を開く
/api/agent/resolve?task=Use%20kotlin%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve テキスト
/api/agent/resolve?task=Use%20kotlin%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
インストール引き継ぎ
/api/skills/margelo-kotlin/install
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 に渡します。
公開インストールエンドポイントからコマンド、安全チェックリスト、対象プロンプト、正規リンクを取得します。
インストール引き継ぎ
/api/skills/margelo-kotlin/install
LLM テキスト形式
/api/skills/margelo-kotlin/install?format=text
代替を探す
/api/skills/search?q=kotlin&limit=3
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 kotlinRegistry メタデータ
自動スキル選択用の Agent 可読プロファイル。
Registry API 経由で判断、信頼、監査、ユースケース、インストールのシグナルを提供し、UI をスクレイピングせずに Agent が順位付けできます。
Agent 判断パネル
Fallback candidate for Workflow automation
まずこのスキルでプロトタイプを作り、代替候補を用意してください。
スタック内の役割
代替候補
主な適合
ワークフロー自動化
信頼ラベル
まずプロトタイプ
インストールパス
コマンド準備済み
使う場面
- ワークフロー自動化 ワークフロー
- Claude Code チーム
- builders willing to evaluate younger projects
根拠
- 最近のリポジトリ活動
- インストールコマンドまたは GitHub リポジトリが利用可能
- 品質プロファイル 64/100
- OpenAgentSkill エンゲージメント 6 件
先にレビュー
- The repository license is unknown, which may raise concerns about usage rights and redistribution.
実装パス
- 1サンドボックスの Agent にインストールし、ワークフロー自動化 タスクを一度最初から最後まで実行します。
- 2Compare output quality, latency, and failure behavior against at least one alternative.
- 3Promote it into production only after reviewing repository permissions, license, and maintenance signals.
信頼プロファイル
サンドボックス限定
信頼シグナルが不足または混在する有用な候補です。結果ループがタスク適合を示すまで、隔離されたワークスペースで使用してください。
GitHub 採用度
情報GitHub スター 161
スター/フォーク活動
確認スター 161、フォーク 7; 現在のメタデータでは Issue 活動を利用できません
最近のメンテナンス
合格最終プッシュから 1 日
ライセンスの明確さ
確認不明
良いシグナル
- AI レビュー承認済み
- インストールパスを利用できます
- リポジトリの根拠を利用できます
- 最近保守されたリポジトリ
- インストールコマンドに明確な高リスクパターンはありません
- 成果ループは準備済みですが、最初の実行が必要です
インストール前にレビュー
- 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 ワークフロー向けの候補
有用な候補ですが、採用前に代替と比較してください。
ワークフロー適合
このスキルを使うシナリオ
Automate repeated work
Workflow automation
I need my agent to automate a repeated workflow across tools and files.
Manage repositories
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
Local desktop
I need my agent to operate local files and desktop apps in a repeatable workflow.
ワークフロー適合
完全なワークフローに追加
Turn skills into distribution
Content growth agent
A workflow for turning newly indexed skills into SEO briefs, social drafts, comparison pages, and reusable publishing workflows.
Design, build, test, and ship interfaces
Frontend and UI
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Inspect, patch, and verify code
Coding review agent
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
代替候補
インストール前に比較
このタスクに適する可能性のある類似スキル。
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Taste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Canvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
Anthropic Brand Guidelines
Apply Anthropic official brand colors, typography, and visual standards to appropriate Anthropic-related artifacts.
概要
--- 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日
判断の要約
代替候補
最近のリポジトリ活動
Agent 実証エビデンス
Agent 実証エビデンス
Resolve、レビュー、インストール、限定実行後の成果レポート。
- 成功率
- —
- 直近の失敗
- —
- 成果
- 0
- 出力品質
- —
- 失敗
- 0
- 非該当
- 0
- インストール数
- 0
- リスクによりブロック
- 0
- 設定が必要
- 0
- 本番
- 0
Agent の実行結果はまだありません。最初の実行では /api/agent/outcome を通じて成功、設定要件、リスクによるブロック、失敗、非該当を報告できます。
成長ループ
共有キット
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
任意:インストールコマンド付きの返信
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 コミュニティインデックス
帰属は公開リポジトリまたは作成者プロフィールにリンクされています。作成者は掲載を申請して所有権シグナルを更新できます。
このスキルを申請所有者の申請
このスキル掲載を申請
この Registry により登録 掲載は margelo に帰属していますが、まだ公式として表示されていません。申請すると、確認済み所有者シグナルが追加され、今後の公開、インストール、監査更新の信頼性が高まります。
クリエイター被リンクキット
README にエビデンスバッジを追加
開発者がリポジトリを評価する場所で、正規掲載、現在の信頼・監査シグナル、実際の Agent-Proven エビデンスを表示します。
[](https://www.openagentskill.com/skills/margelo-kotlin)
[](https://www.openagentskill.com/skills/margelo-kotlin)
[](https://www.openagentskill.com/skills/margelo-kotlin/audit)
[](https://www.openagentskill.com/skills/margelo-kotlin)作者
margelo
@margelo
プラットフォーム適合
健全性シグナル
- GitHub スター
- 161
- 品質スコア
- 39/100
- 最終 GitHub プッシュ
- 2026年8月21日
- フレームワークのヒント
- 不明
- OpenAgentSkill 閲覧数
- 6
- インストールコピー数
- 0
- 外部クリック
- 0
コミュニティシグナル
このスキルが Agent ワークフローに役立つかを共有してください。集約されたフィードバックがランキングを改善します。
信頼と安全性
サンドボックス限定
- GitHub 採用度GitHub スター 161情報
- スター/フォーク活動スター 161、フォーク 7; 現在のメタデータでは Issue 活動を利用できません確認
- 最近のメンテナンス最終プッシュから 1 日合格
- ライセンスの明確さ不明確認
- README/SKILL.md の完全性メタデータには十分な利用・ワークフロー文脈があります合格
- 依存関係/ランタイムのリスクnetwork or browser surface合格
関連スキル
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
170.9K スターTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
79.0K スターCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
170.9K スターAnthropic Brand Guidelines
Apply Anthropic official brand colors, typography, and visual standards to appropriate Anthropic-related artifacts.
170.9K スター