Scala auto-derivation with Kindlings for Circe and PureConfig. Use when replacing circe-generic/circe-generic-extras or PureConfig generic derivation with Kindlings while keeping normal Circe JSON APIs and PureConfig loading/writing APIs.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Scala auto-derivation with Kindlings for Circe and PureConfig. Use when replacing circe-generic/circe-generic-extras or PureConfig generic derivation with Kindlings while keeping normal Circe JSON APIs and PureConfig loading/writing APIs.
Scala Kindlings Derivation
Quick start
Use Kindlings to derive type class instances; keep using library APIs for actual work.
Circe: derive Encoder, Decoder, or Codec.AsObject; keep using asJson, decode, parsers, printers.
PureConfig: derive ConfigReader, ConfigWriter, or ConfigConvert; keep using ConfigSource.load and PureConfig writers.
Prefer companion-object instances for root types used at call sites; nested product types are derived as needed.
Configure derivation with Kindlings config values/hints, not with Circe/PureConfig generic imports.
Do not import io.circe.generic.auto._, io.circe.generic.semiauto._, pureconfig.generic.auto._, or pureconfig.generic.semiauto._ when using Kindlings.
APIs to reach for
Circe JSON:
Use KindlingsEncoder.derived[A], KindlingsDecoder.derived[A], or KindlingsCodecAsObject.derived[A].
For one-off operations, use KindlingsEncoder.encode(value) or KindlingsDecoder.decode[A](json).
Cross-platform.
Default field names are unchanged.
ADTs are wrapped unless a discriminator is configured.
PureConfig HOCON:
Use KindlingsConfigReader.derived[A], KindlingsConfigWriter.derived[A], or KindlingsConfigConvert.derived[A].
JVM-only.
Defaults match PureConfig: kebab-case keys, type discriminator, defaults enabled, unknown keys allowed.
References
Load references/circe-derivation.md for Circe derivation, annotations, discriminators, and migration notes.
Load references/pureconfig-derivation.md for PureConfig derivation, default conventions, discriminator configuration, and supported PureConfig knobs.
Load references/best-practices.md for organization, call-site hygiene, and validation guidance.