CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/kotlin-tutor

Teaches AI agents to write idiomatic Kotlin instead of Java-in-a-.kt-file.

98

1.20x
Quality

98%

Does it follow best practices?

Impact

99%

1.20x

Average score across 8 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

task.mdevals/scenario-4/

User Repository API Modernisation

Problem Description

The platform team owns a UserRepository and a UserService that calls into it. Both files live under inputs/ (UserRepository.kt, UserService.kt). The repository's public surface was designed to defend against the absence of a user — every lookup operation returns a wrapped value, and the service handles the wrapping explicitly at each call site.

The team has been modernising older API surfaces to match current project conventions. The UserRepository is the next in the queue. The change must:

  • Update the repository's public surface to the current convention for "may be absent"
  • Update UserService (the caller) so it still compiles against the modernised surface
  • Preserve the externally-observable behaviour — every operation must produce the same result for the same input as it did before

Output Specification

Write the modernised files to output/UserRepository.kt and output/UserService.kt. Both files must compile against each other after the change. No new operator is introduced to silence the compiler — null handling stays explicit.

evals

README.md

tile.json