kotlin-spring-proxy-compatibility

Diagnose Spring AOP interception failures caused by Kotlin final defaults, missing compiler plugins, or self-invocation.

14|1|Updated Mar 6, 2026
One-click install
npx skills add https://github.com/kbrgnj/kotlin-backend-agent-skills --skill kotlin-spring-proxy-compatibility-kbrgnj
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kotlin-spring-proxy-compatibility
Source: https://github.com/kbrgnj/kotlin-backend-agent-skills/tree/main/.agents/skills/kotlin-spring-proxy-compatibility
Command: npx skills add https://github.com/kbrgnj/kotlin-backend-agent-skills --skill kotlin-spring-proxy-compatibility-kbrgnj

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Kotlin + Spring apps often fail to intercept AOP annotations due to Kotlin final defaults, plugin misconfigurations, or self-invocation, causing runtime inconsistencies.

Core Features & Use Cases

  • Diagnose whether a proxy should exist and if a method call crosses the proxy boundary for annotated methods.
  • Recommend compiler plugin configurations and proxy strategies to restore interception for @Transactional, @Cacheable, @Async, and security annotations.
  • Use case: a Kotlin service method annotated with @Transactional but not proxied because of final classes, plugin missing, or self-invocation.

Quick Start

Run the Kotlin Spring Proxy Compatibility check on your module to verify whether proxies intercept annotated methods.

Frequently Asked Questions about kotlin-spring-proxy-compatibility

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

FAQPage Schema
Why is my @Transactional annotation not working in a Kotlin Spring service?

Spring AOP proxy interception fails in Kotlin when classes are final-by-default, the Kotlin compiler plugin is missing, or methods are self-invoked. This Skill diagnoses proxy eligibility and boundary crossing to propose a minimal verifiable fix.

How do I fix Spring AOP proxy issues for @Cacheable and @Async in Kotlin?

To fix Spring AOP proxy issues for @Cacheable and @Async in Kotlin, you must verify proxy eligibility, ensure method calls cross the proxy boundary, and apply correct compiler plugin configurations to restore annotation interception.

Does Kotlin final-by-default prevent Spring from creating AOP proxies?

Yes, Kotlin final-by-default prevents Spring from creating AOP proxies for method interception. You need the proper Kotlin compiler plugin configurations to open classes and allow proxying for annotations like @Transactional.

How to diagnose self-invocation preventing Spring proxy interception in Kotlin?

Diagnosing self-invocation preventing Spring proxy interception in Kotlin involves verifying whether a method call crosses the proxy boundary. This Skill checks annotated methods to confirm if proxy interception is actually occurring at runtime.

What is the best way to configure Kotlin compiler plugins for Spring AOP?

The best way to configure Kotlin compiler plugins for Spring AOP is to verify existing plugin setups and proxy strategies. This ensures annotations like @Transactional and @Cacheable are properly intercepted by restoring proxy eligibility.

When do I need to check proxy eligibility for Spring annotations in Kotlin?

You need to check proxy eligibility for Spring annotations in Kotlin when runtime inconsistencies occur with @Transactional, @Cacheable, or @Async. This happens due to Kotlin final defaults, missing plugins, or self-invocation preventing proxying.