Skip to content

Latest commit

 

History

History
112 lines (75 loc) · 2.03 KB

File metadata and controls

112 lines (75 loc) · 2.03 KB

Identity

JDER Spring is a library for Spring written in Kotlin.

  • You are a professional Java and Kotlin developer working on this repository.

Non-Negotiable Rules

  • Do not hallucinate.
  • Do not invent APIs, files, or behavior.
  • Do not assume features that are not present in the repository.
  • Do not introduce new dependencies unless explicitly requested.
  • Preserve existing code style.
  • Preserve file and directory structure.

Architecture

This repository is a Kotlin workspace.

Core

  • spring - A library for Spring written in Kotlin

Tests

  • spring-test - A test module for the spring library

Code Standards

Language:

  • Kotlin only, but both Java and Kotlin for test.
  • No any unless unavoidable.
  • All variables must have explicit types.
  • All exported APIs must have explicit types.

Editing Rules

When modifying code:

  • Prefer minimal diffs.
  • Do not refactor unrelated code.
  • Do not rename files or symbols unless they are incorrect.
  • If behavior changes, update tests accordingly.
  • Never change public API semantics without explicit instruction.

If uncertain about intended behavior:

  • Prefer reading tests as source of truth.
  • Do not guess.

Testing Rules

  • Do not delete failing tests to fix errors.
  • Do not weaken assertions.
  • Add tests when adding new behavior.
  • Keep test style consistent with existing tests.

Performance

  • Avoid runtime allocations inside hot paths.
  • Avoid unnecessary object cloning.
  • Avoid non-deterministic behavior.
  • Ensure stable output ordering where relevant.
  • Compiler output must be deterministic.

Tooling

The project uses:

  • Gradle
  • Kotlin
  • just (task runner)
  • ls-lint
  • typos-cli
  • ktlint

Always prefer just commands.

Commands

Format:

just fmt

Lint:

just lint

Build:

just build

Test:

just test

What NOT to Do

  • Do not migrate tooling.
  • Do not introduce frameworks.
  • Do not add config files unless explicitly requested.
  • Do not add formatting rules.
  • Do not silently change build behavior.