用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-kotlin --skill kotlin-serialization命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | kotlin-serialization |
| description | kotlinx.serialization - JSON, Protobuf, custom serializers |
| version | 1.0.0 |
| sasmp_version | 1.3.0 |
| bonded_agent | 01-kotlin-fundamentals |
| bond_type | SECONDARY_BOND |
| execution | {"timeout_ms":30000,"retry":{"max_attempts":3,"backoff":"exponential","initial_delay_ms":1000}} |
| parameters | {"required":[{"name":"format","type":"string","validation":"^(json|protobuf|cbor|custom)$"}],"optional":[{"name":"version","type":"string","default":"1.6.3"}]} |
| logging | {"level":"info","events":["skill_invoked","format_loaded","error_occurred"]} |
Type-safe serialization with kotlinx.serialization.
@Serializable
data class User(
val id: Long,
val name: String,
@SerialName("email_address") val email: String,
val createdAt: Instant = Instant.now()
)
val json = Json {
ignoreUnknownKeys = true
encodeDefaults = true
prettyPrint = true
}
val user = json.decodeFromString<User>(jsonString)
val output = json.encodeToString(user)
object InstantSerializer : KSerializer<Instant> {
override val descriptor = PrimitiveSerialDescriptor("Instant", PrimitiveKind.LONG)
override fun serialize(encoder: Encoder, value: Instant) = encoder.encodeLong(value.toEpochMilli())
override fun deserialize(decoder: Decoder) = Instant.ofEpochMilli(decoder.decodeLong())
}
@Serializable
data class Event(
@Serializable(with = InstantSerializer::class) val timestamp: Instant
)
@Serializable
sealed {
( : String) : Response()
( message: String) : Response()
}
json = Json { classDiscriminator = }
| Issue | Resolution |
|---|---|
| "Serializer not found" | Add @Serializable or plugin |
| Unknown property fails | Set ignoreUnknownKeys = true |
Skill("kotlin-serialization")