Teaches AI agents to write idiomatic Kotlin instead of Java-in-a-.kt-file.
98
98%
Does it follow best practices?
Impact
99%
1.20xAverage score across 8 eval scenarios
Passed
No known issues
JUnit assertion mapping to Kotest equivalents
assertEquals order
100%
100%
withClue for message
0%
100%
shouldThrow
100%
100%
shouldBeTrue
50%
100%
shouldBeFalse
50%
100%
shouldBeNull
100%
100%
shouldNotBeNull
100%
100%
JUnit imports removed
100%
100%
Kotest imports added
100%
100%
Imports sorted
100%
100%
File discovery, conversion, and verification script gate
Both files converted
100%
100%
Kotest assertions used
100%
100%
No JUnit imports remain
100%
100%
Verify script executed
100%
100%
Script exit code documented
100%
100%
File list in report
100%
100%
Files found via glob
40%
40%
No commit performed
100%
100%
Spec style selection and lifecycle hook migration
StringSpec for flat tests
0%
100%
BehaviorSpec for given/when/then
100%
100%
Tests in string blocks
50%
100%
beforeEach block used
100%
100%
Setup code preserved
100%
100%
Correct class declaration
66%
100%
Kotest spec import present
70%
100%
JUnit annotations removed
100%
100%
Optional API cleanup: Kotlin repository returning Optional<T> and using orElse/ifPresent/map/orElseThrow → idiomatic Kotlin nullable types with safe-call, elvis, and let. Caller code must be updated alongside.
No java.util.Optional import
100%
100%
findById returns User?
100%
100%
findByEmail returns User?
100%
100%
displayNameFor uses elvis
100%
100%
sendWelcome uses ?.let
100%
100%
requireById uses elvis throw
100%
100%
Optional.map replaced with ?.let
100%
100%
UserService caller updated
100%
100%
No !! introduced
100%
100%
POJO refactor: Java-style class with manual equals/hashCode/toString and bean accessors → idiomatic Kotlin value type
Declared as data class
100%
100%
Properties use val
100%
100%
No manual equals/hashCode/toString
100%
100%
No Java-bean accessors
100%
100%
Field order preserved
100%
100%
All seven fields retained
100%
100%
Implement a small todo-list application with addTask and markComplete operations.
addTask works
100%
100%
markComplete works
100%
100%
Implement a small todo-list application with addTask and markComplete operations.
addTask works
100%
100%
markComplete works
100%
100%
Implement a small todo-list application with addTask and markComplete operations.
Written in Kotlin
0%
100%
Task is a data class
0%
100%
Properties default to val
0%
100%
Nullable types use ?
0%
100%
No manual equals/hashCode/toString
50%
100%
addTask works
70%
100%
markComplete works
70%
100%