CtrlK
BlogDocsLog inGet started
Tessl Logo

tdg-personal/kotlin-patterns

Idiomatic Kotlin patterns, best practices, and conventions for building robust, efficient, and maintainable Kotlin applications with coroutines, null safety, and DSL builders.

48

Quality

48%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Quality

Discovery

32%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description identifies the Kotlin domain and mentions a few specific language features, but reads more like a tagline than a functional skill description. It lacks concrete actions (what it actually does) and completely omits trigger guidance (when Claude should select it), making it difficult to reliably match to user requests.

Suggestions

Add an explicit 'Use when...' clause with trigger conditions, e.g., 'Use when the user asks about Kotlin code, .kt files, coroutine patterns, null safety handling, or converting Java to idiomatic Kotlin.'

Replace vague phrases like 'patterns, best practices, and conventions' with concrete actions such as 'Refactors code to use idiomatic Kotlin constructs, implements coroutine-based concurrency, designs type-safe DSL builders, and applies null safety patterns.'

Add more natural trigger terms users might say, such as 'data classes', 'sealed classes', 'extension functions', 'scope functions', 'suspend functions', or '.kt files'.

DimensionReasoningScore

Specificity

Names the domain (Kotlin) and mentions some specific features (coroutines, null safety, DSL builders), but 'patterns, best practices, and conventions' is vague and doesn't describe concrete actions like 'refactor code to use sealed classes' or 'convert Java code to idiomatic Kotlin'.

2 / 3

Completeness

Describes what the skill covers at a high level but completely lacks any 'Use when...' clause or explicit trigger guidance. Per the rubric, a missing 'Use when...' clause should cap completeness at 2, and since the 'what' is also vague, this scores a 1.

1 / 3

Trigger Term Quality

Includes relevant keywords like 'Kotlin', 'coroutines', 'null safety', and 'DSL builders' that users might mention, but misses common variations and related terms like '.kt files', 'data classes', 'sealed classes', 'extension functions', 'scope functions', or 'Kotlin style'.

2 / 3

Distinctiveness Conflict Risk

The mention of Kotlin-specific features like coroutines, null safety, and DSL builders provides some distinctiveness, but 'best practices and conventions' is generic enough to overlap with general code review or programming style skills.

2 / 3

Total

7

/

12

Passed

Implementation

42%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

This skill is essentially a comprehensive Kotlin language reference/cheat sheet that covers many topics Claude already knows well. While the code examples are high-quality and executable, the content is far too verbose and monolithic for a skill file—it explains fundamental language features (null safety, data classes, scope functions) that Claude has extensive training on. The skill would be dramatically improved by trimming to only project-specific conventions or non-obvious patterns and splitting detailed references into separate files.

Suggestions

Reduce content by 70-80% by removing explanations of standard Kotlin features Claude already knows (null safety basics, scope functions, collection operations, data classes) and focus only on project-specific conventions or non-obvious decisions.

Split detailed sections (coroutines patterns, DSL builders, Gradle config, error handling) into separate reference files and keep SKILL.md as a concise overview with links.

Remove or relocate the Gradle dependency version numbers to a separate file, as they will become stale quickly and consume tokens on every load.

Add a brief workflow section for the 'Refactoring existing Kotlin code' use case with validation steps (e.g., run detekt, run tests) to improve workflow clarity.

DimensionReasoningScore

Conciseness

The skill is extremely verbose at ~500+ lines, covering many topics Claude already knows well (null safety, data classes, scope functions, collection operations, basic Kotlin idioms). It explains fundamental Kotlin concepts with good/bad comparisons that are unnecessary for Claude, and includes a reference table of basic idioms. The Gradle section includes specific version numbers that will become stale. Very little here adds knowledge Claude doesn't already possess.

1 / 3

Actionability

All code examples are fully executable, concrete, and copy-paste ready. The examples cover real-world patterns with complete function signatures, proper imports context, and realistic use cases like coroutineScope with async/await, Flow operators, DSL builders, and Gradle configuration.

3 / 3

Workflow Clarity

This is primarily a patterns/conventions skill rather than a multi-step workflow skill, so explicit workflows aren't strictly required. However, the content lacks any sequencing guidance for when to apply which patterns, and there are no validation checkpoints for the build configuration or refactoring processes mentioned in 'When to Use'. The content reads as a reference catalog rather than a guided process.

2 / 3

Progressive Disclosure

The entire skill is a monolithic wall of content with no references to external files. All topics (null safety, coroutines, DSL builders, Gradle config, collections, delegation, error handling) are inlined in a single massive document. This would benefit enormously from splitting into separate reference files with a concise overview in the main skill.

1 / 3

Total

7

/

12

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation9 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (712 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

9

/

11

Passed

Reviewed

Table of Contents