Scala Kindlings Derivation

SkillDev tools

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.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Scala Kindlings Derivation skill

What this skill tells your AI

The instructions your AI receives, as published by alexandru/skills in skills/scala-kindlings-derivation/SKILL.md and read by ahel’s review.

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.

Signals

GitHub stars
53
Forks
3
Last commit
Sep 2026
Advanced
Item type
skill
Key
scala-kindlings-derivation
Source
github.com/alexandru/skills