CtrlK
BlogDocsLog inGet started
Tessl Logo

kotlin-patterns

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

58

Quality

68%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.kiro/skills/kotlin-patterns/SKILL.md

The canonical home for this skill is kotlin-patterns in affaan-m/ECC

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

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

The content is highly actionable with abundant executable, copy-paste-ready Kotlin examples and clear Good/Bad contrasts, and it is well organized by topic. Its main weaknesses are repeated examples across sections (conciseness) and a monolithic single-file structure with no progressive disclosure of the bulk reference material.

Suggestions

Deduplicate the repeated examples — keep the Elvis and sealed-Result snippets in one place and reference them elsewhere — to tighten conciseness toward 4-5.

Move the large Gradle dependency block and the Quick Reference idiom table into separate reference files (e.g. references/gradle.md, references/idioms.md) and link to them from SKILL.md to improve progressive_disclosure.

Add a short 'How to apply' sequence at the top (identify the pattern area → apply the idiomatic form → verify with the compiler/detekt) to give the skill an explicit workflow spine.

DimensionReasoningScore

Conciseness

The body is mostly efficient with tight code+prose, but the Elvis null-safety example is repeated in both Examples and Core Principles, the sealed Result class appears in both Examples and Sealed Classes, and the Quick Reference table restates idioms already shown in code. It is not 4 because these duplications and the slightly padded section intros are unnecessary tokens Claude does not need.

3 / 5

Actionability

The body is packed with concrete, executable Kotlin code covering the common cases — null safety, sealed classes, coroutines/Flow, DSL builders, Gradle Kotlin DSL — with Good/Bad contrasts that are copy-paste ready. It fully meets the top anchor of fully executable, specific examples covering common cases.

5 / 5

Workflow Clarity

This is a patterns/reference skill rather than a multi-step destructive workflow, so the simple-skill exception applies and no validation loop is required; content is clearly organized into well-labeled topical sections. It is not 5 because there is no explicit sequenced process or checklist, only topic grouping, which is appropriate here but stops short of the top anchor's explicit checkpoints.

4 / 5

Progressive Disclosure

Everything is inlined into a single ~710-line SKILL.md with no bundle files and no external references, and substantial reference material (the full Gradle dependency block, the idiom table) that could live in separate files is inlined. It is not 4 because the file is well beyond the 'under 50 lines' simple-skill allowance and does not split or signal one-level-deep references for the bulk reference content.

3 / 5

Total

15

/

20

Passed

Description

66%Weight 40%Scale 1-5

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 clearly conveys what the skill covers and names specific Kotlin capability areas with natural trigger terms, but it omits any explicit 'Use when ...' guidance, which caps completeness and limits trigger-term sharpness. Adding a concrete trigger clause would lift the two dimensions currently held back.

Suggestions

Add an explicit 'Use when writing, reviewing, or refactoring Kotlin code, or configuring Gradle Kotlin DSL builds' clause to supply the missing 'when' and raise completeness above 3.

Expand trigger terms with common synonyms users actually say — 'suspend functions', 'Flow', 'data classes', '.kt files' — to push trigger_term_quality toward 5.

Trim the fluffy adjectives ('robust, efficient, and maintainable applications') to sharpen specificity and reduce verbosity.

DimensionReasoningScore

Specificity

Names the Kotlin domain and several concrete capability areas — 'coroutines, null safety, and DSL builders' plus 'patterns, best practices, and conventions' — listing multiple specific actions, though 'robust, efficient, and maintainable' is mildly fluffy padding. It is below 5 because the capability list, while specific, is not as comprehensive as the top anchor and the adjectives add slight verbosity.

4 / 5

Completeness

The 'what' is clearly stated ('Idiomatic Kotlin patterns, best practices, and conventions ... with coroutines, null safety, and DSL builders'), but there is no 'when' / 'Use when ...' clause at all, so per the judging guideline a missing trigger clause caps completeness at 3. It is not 2 because the 'what' is clear and concrete rather than vague.

3 / 5

Trigger Term Quality

Includes natural terms a user would say — 'Kotlin', 'coroutines', 'null safety', 'DSL builders' — giving good keyword coverage. It is not 5 because common variations/synonyms (e.g., 'suspend functions', 'Flow', '.kt') are absent and there is no explicit trigger phrasing to round out coverage.

4 / 5

Distinctiveness Conflict Risk

Kotlin-specific with concrete niche triggers (coroutines, null safety, DSL) makes it mostly distinct from other skills with only minor overlap risk against a generic Kotlin skill. It is not 5 because without explicit 'use when' phrasing the trigger boundary is implied rather than sharply drawn.

4 / 5

Total

15

/

20

Passed

Validation

87%

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

Validation14 / 16 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

14

/

16

Passed

Repository
affaan-m/ECC
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.