serialization-patterns

Implement kotlinx-serialization JSON, custom KSerializer, and YAML parsing in Gradle plugins.

Updated Apr 8, 2026
One-click install
npx skills add https://github.com/ClankerGuru/opsx --skill serialization-patterns-clankerguru
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: serialization-patterns
Source: https://github.com/ClankerGuru/opsx/tree/main/cli/src/main/resources/content/skills/serialization-patterns
Command: npx skills add https://github.com/ClankerGuru/opsx --skill serialization-patterns-clankerguru

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This guide provides a structured reference for implementing and validating serialization in Gradle plugins, covering JSON with kotlinx-serialization, custom serializers, YAML parsing, and Gradle's configuration cache compatibility.

Core Features & Use Cases

  • kotlinx-serialization for JSON with explicit field names and default values to ensure wire compatibility.
  • Custom KSerializer implementations for value classes and compact representations, enabling reliable cross-boundary data transfer.
  • Manual YAML parsing strategies for simple configs when dependencies are unnecessary.
  • java.io.Serializable usage for Gradle task properties and cache compatibility, with serialVersionUID guidelines.
  • Defensive decoding patterns, migration support, and rule-based error handling to prevent crashes on corrupted configs.

Quick Start

Follow this guide to implement and validate serialization patterns in your Gradle plugin data models.

Frequently Asked Questions about serialization-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I serialize data models in a Gradle plugin for configuration cache compatibility?

To serialize data models for Gradle configuration cache compatibility, use kotlinx-serialization with @Serializable data classes, explicit field names, and default values. This ensures safe traversal across task properties and IPC boundaries without cache invalidation.

When should I use a custom KSerializer instead of default kotlinx-serialization in Gradle?

Use a custom KSerializer in Gradle when you need compact representations for value classes or require reliable cross-boundary data transfer. Default kotlinx-serialization handles standard JSON, but custom serializers ensure robust type safety for complex build metadata.

How do I make Gradle task properties serializable for caching?

Make Gradle task properties serializable by implementing java.io.Serializable with an explicit serialVersionUID. This ensures your task inputs and outputs traverse Gradle's configuration cache safely and maintain compatibility across build invocations.

How do I prevent crashes when decoding corrupted JSON configurations in a Gradle plugin?

Prevent crashes on corrupted JSON configurations by applying defensive decoding patterns and safe migration support. Use explicit defaults and rule-based error handling during kotlinx-serialization decoding to guard against incompatible types or missing fields.