Kotlin: Contract Implementation Rules

SkillDev tools

Kotlin rules for implementing CODEMANIFEST contracts

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

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Kotlin: Contract Implementation Rules skill

What this skill tells your AI

The instructions your AI receives, as published by qarium/goga in goga/assets/skills/goga-cell-kotlin/SKILL.md and read by ahel’s review.

Language skill for Kotlin.

Apply this specification within the context of the calling skill. Do not restate the content — use it for making decisions.

Invoked via the goga-lang-disp router.


Examples

Complete CODEMANIFEST example for Kotlin demonstrating all DSL constructs:

Imports:
  - Types:
      - UserModel
      - CacheConfig AS Config
    Usages:
      - caching
    From: path/to/cache_cell

Usages:
  conventions: .goga/usages/kotlin_conventions.md
  pattern: |
    Use data classes for models. Prefer immutable collections (List, Map) over mutable ones.
  testing: |
    Use JUnit 5. Each public method must have at least one test case.

Annotations: |
  Use `conventions` for code style.
  Use `testing` for test requirements.
  Use `caching` from Imports for cache invalidation patterns.

  Use `val` for all properties. Avoid `var` unless mutation is required by contract.

---

"calculateTotal(a: Int, b: Int) -> total: Int":
  location: calculator.kt
  annotations: |
    Calculate the sum of two integers.

    `a`: first operand
    `b`: second operand

    Use `pattern` for implementation.

"UserRepository(config: Config)":
  location: repository.kt
  annotations: |
    Repository for user data access with caching.

    `config`: repository configuration from `Config` type.

    Use `caching` from Imports for cache strategy.
    Use `conventions` for code style.
  properties:
    "tableName -> String": |
      Database table name for users.
    "cacheSize -> Int": |
      Maximum number of cached entries.
  methods:
    "findById(userId: String) -> user: UserModel?": |
      Find a user by ID.

      `userId`: unique user identifier
      `user`: found user or null

      Use `caching` from Imports for cache lookup.
    "deleteById(userId: String)": |
      Delete user by ID.

      `userId`: unique user identifier

"UserModel::AdminUser(userId: String)":
  location: admin.kt
  annotations: |
    Admin user extending UserModel with elevated permissions.

    `userId`: unique user identifier

    Use `caching` from Imports for permission cache.

->UserModel: {}

---

Author: Goga
CreatedAt: 22/05/26
Description: |
  Example CODEMANIFEST demonstrating all DSL constructs for Kotlin.

Cell

A cell is a package/module:

cell/
├── CODEMANIFEST
├── *.kt

Language Features

Facade: all public classes and top-level functions in the package define the facade. Private and internal declarations are not part of the contract.

Naming: camelCase for functions and properties, PascalCase for classes.

Constructors: Entity signature describes the primary constructor. Constructor parameters are the input data for obtaining an instance.

Nullability: T? — nullable, T — non-null. CODEMANIFEST represents these directly via T? and T.

Construct Mapping

KotlinCODEMANIFESTNote
class / data class (public)EntityPrimary constructor → Entity signature
Top-level funRoutinePublic function at file level
val / var class propertyPropertyType from declaration
Class method funMethod

Implementation

  • Public classes and functions
  • Use immutable types when possible

Signature Rules

Allowed:

String, Int, Double, Boolean
List<T>, Map<String, T>
T?

Forbidden:

Any
vararg
untyped collections

Signals

GitHub stars
29
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
goga-cell-kotlin
Source
github.com/qarium/goga