npx skills add smithery/mindrally --skill kotlin-development
mindrally/skills
kotlin-development
Kotlin development guidelines with best practices for clean code, naming conventions, function design, and data handling
Installation
npx skills add mindrally/skills --skill kotlin-development
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Guidance for distinctive, intentional visual design when building new UI or reshaping an existi…
866.4K installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsDebug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe …
568.9K installsAlso in this package
Other skills from mindrally/skills · top by installs.
npx skills add mindrally/skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md3,564 B -
docs
SUMMARY.md3,513 B
History
- First seen on skills.sh
- First recorded snapshot · 658 installs
SKILL.md
Kotlin Development Best Practices
General Principles
- Use English for all code and documentation
- Always declare the type of each variable and function
- Avoid the
anytype; create necessary types instead - No blank lines within function bodies
Naming Conventions
Case Standards
- PascalCase: Classes, interfaces, enums
- camelCase: Variables, functions, methods, parameters
- UPPERCASE: Environment variables, constants
- underscores_case: Files and directories
Naming Guidelines
- Start each function with a verb (get, set, create, update, delete, etc.)
- Use complete words over abbreviations
- Allowed abbreviations: API, URL, i/j for loops, err, ctx, req/res/next
- Avoid magic numbers; define constants instead
- Boolean variables use prefixes:
isLoading,hasError,canDelete
Function Design
Size and Responsibility
- Keep functions under 20 instructions
- Each function should have a single responsibility
- Extract logic into utility functions when complexity increases
Naming Functions
- Use verb-based naming that describes the action
- Prefix boolean-returning functions with
is,has, orcan - Prefix void functions with action verbs like
execute,save,send
Reducing Nesting
- Use early returns to handle edge cases first
- Extract nested logic into separate functions
- Employ higher-order functions (map, filter, reduce) to minimize loops
- Prefer arrow functions for simple operations; use named functions otherwise
Parameters
- Use default parameters instead of null checks
- When functions have multiple parameters, consolidate them into objects (RO-RO pattern)
- Keep parameter lists short (max 3-4 parameters)
Data Handling
Data Classes
- Use data classes for data structures
- Encapsulate primitive types in composite types when they represent domain concepts
- Validate data internally within data classes
Immutability
- Prefer immutability for data
- Use
valfor variables that don't change - Use immutable collections when possible
- Create new instances instead of mutating existing ones
Classes and Objects
Size Guidelines
- Keep classes under 200 instructions
- Limit to fewer than 10 public methods
- Limit to fewer than 10 properties
Design Principles
- Follow SOLID principles
- Favor composition over inheritance
- Use interfaces for abstraction
- Keep classes focused on a single responsibility
Exception Handling
When to Use Exceptions
- Reserve exceptions for truly unexpected errors
- Don't use exceptions for control flow
- Catch exceptions only to:
- Fix an anticipated issue - Add context before re-throwing
Best Practices
- Create custom exception types for domain-specific errors
- Include meaningful error messages
- Log exceptions at appropriate levels
Testing
Unit Tests
- Follow Arrange-Act-Assert convention
- Write unit tests for all public functions
- Use test doubles (mocks, stubs, fakes) for dependencies
- Name tests descriptively to document behavior
Acceptance Tests
- Follow Given-When-Then convention
- Test user-facing behavior and scenarios
- Keep tests independent and repeatable
Code Organization
- Group related functionality together
- Keep files focused and cohesive
- Use packages/modules to organize code by feature or layer
- Maintain consistent file structure across the project