desquared/agents-rules-skills

android-kotlin-api-design-reviewer

Review function and class interfaces for Kotlin Coding Conventions compliance. Use when creating public APIs, reusable components, library interfaces, or when the user asks for API design review or Kotlin naming conventions.

First seen Mar 13, 2026

Installation

$ npx skills add desquared/agents-rules-skills --skill android-kotlin-api-design-reviewer

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from desquared/agents-rules-skills · top by installs.

npx skills add desquared/agents-rules-skills

Browse all from desquared/agents-rules-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 4
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,455 B
  • docs SUMMARY.md 266 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 19 installs

SKILL.md

Kotlin API Design Review

Naming Rules

  • Clear at point of use
  • Omit needless words
  • lowerCamelCase: properties, functions, variables
  • UpperCamelCase: classes, interfaces, objects
  • UPPERSNAKECASE: constants
  • Booleans: is, has, can, should prefix
  • Collections: plural names (users, not userList)

Compose-specific Naming

  • Composable functions returning Unit: use PascalCase nouns (e.g., UserProfileCard, not userProfile)
  • Avoid spaces and backticked identifiers in function names, especially in public APIs (discouraged by Kotlin conventions)

Common Issues

Issue Fix
var visible var isVisible
fun getData() fun getUserName()
var nameString var name
userList users
Composable named like regular function Rename to PascalCase noun (ProfileScreen)
Implicit return type in library Add explicit : String

Function Design

  • Named parameters for clarity beyond first param
  • Default parameters at end
  • Suspend functions for async operations
  • Extension functions for utility methods
  • Operator overloading when semantically appropriate
  • Prefer properties over parameterless functions when the operation is cheap and non-throwing
  • Use named arguments + trailing commas for multi-parameter calls in public APIs

Return Types

  • Nullable when null is meaningful
  • Result<T> for failable operations
  • Flow<T> for streams
  • sealed class for finite states
  • Explicitly declare return types in public library APIs (even if inferable)

Data Classes

  • Use for data transfer objects
  • Immutable by default (val over var)
  • Copy function for updates
  • Destructuring support

Public API / Library

  • Provide KDoc for all public members
  • Use @JvmName for interop-friendly naming
  • Use backing properties (_internalValue) for observed state
  • Consider type aliases for repeated complex function types

Severity

  • 🔴 Critical: Violates conventions
  • 🟡 Improvement: Could be clearer
  • 🟢 Enhancement: Optional polish