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.

52

Quality

58%

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

63%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 body delivers excellent, fully executable idiomatic Kotlin examples, but it is a monolithic reference that re-teaches concepts Claude already knows, repeats examples, and bakes in version-pinned build config. Splitting the bulk into reference files and trimming to non-obvious guidance would substantially improve token efficiency and structure.

Suggestions

Split the Gradle dependency manifest, DSL builder deep-dives, and idiom quick-reference table into one-level-deep reference files (e.g. references/gradle.md, references/dsl-builders.md) and keep SKILL.md as an overview with clearly signaled links.

Remove explanations of standard Kotlin knowledge (scope function semantics, null-safety basics, sequence/delegation primers) and keep only the project-specific conventions and good/bad contrasts.

De-duplicate repeated examples (null-safety email, sealed Result, fetchUserWithPosts each appear twice) and replace hardcoded version pins with a short 'check kotlinlang.org for latest versions' note.

DimensionReasoningScore

Conciseness

The ~700-line body extensively restates standard Kotlin knowledge Claude already has (scope function semantics, null-safety basics, sequences, delegation), duplicates several examples verbatim (null-safety email, sealed Result, fetchUserWithPosts), and inlines a fully pinned Gradle dependency manifest with time-sensitive version numbers (e.g. '2.3.10', '3.4.0', '1.10.2') outside any 'latest versions' caveat.

2 / 5

Actionability

Examples are complete, executable, copy-paste-ready Kotlin with good/bad contrasts covering the common cases: null safety ('user?.email ?: "unknown@example.com"'), structured concurrency ('coroutineScope { async { ... } }'), DSL builders with @DslMarker, and a runnable build.gradle.kts.

5 / 5

Workflow Clarity

A pattern-reference skill with no multi-step or destructive process, so the validation cap does not apply; 'When to Use' and good/bad pairs make the single action unambiguous. It falls short of 5 only because adopting the Gradle config or refactoring existing code has no ordered checklist.

4 / 5

Progressive Disclosure

Section headers are well organized, but the monolithic ~700-line file inlines content that belongs in separate one-level-deep references (full Gradle dependency manifest, DSL builder deep-dives, idiom quick-reference table) and there are no bundle files at all.

3 / 5

Total

14

/

20

Passed

Description

53%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 identifies the domain and relevant subtopics but reads as a category label rather than a capability statement: it lists no concrete actions and provides no 'use when' trigger guidance. Adding an explicit trigger clause and one or two specific actions would move it into the top anchors.

Suggestions

Add a 'Use when...' clause naming concrete triggers, e.g. 'Use when writing, reviewing, or refactoring Kotlin code, or when the user mentions coroutines, Kotlin null safety, or Kotlin DSL builders.'

Replace generic phrasing ('patterns, best practices, and conventions') with concrete capabilities such as 'Applies idiomatic null-safety, sealed-class, structured-concurrency, and DSL-builder patterns to Kotlin code.'

Include natural synonyms users would say (idiomatic Kotlin, Kotlin code review, .kt files, Gradle Kotlin DSL) to broaden trigger coverage.

DimensionReasoningScore

Specificity

Names the domain (Kotlin) and subtopics (coroutines, null safety, DSL builders), but the stated actions are generic ('patterns, best practices, and conventions for building robust, efficient, and maintainable applications') with no concrete capability listed.

3 / 5

Completeness

The 'what' is clear, but there is no 'Use when...' clause or equivalent trigger guidance anywhere in the description, which caps completeness at 3 per the rubric.

3 / 5

Trigger Term Quality

'Kotlin', 'coroutines', 'null safety', and 'DSL builders' are natural user terms, but common variations and synonyms ('idiomatic Kotlin', 'Kotlin code review', 'Gradle Kotlin DSL', '.kt') are missing.

3 / 5

Distinctiveness Conflict Risk

Clearly a Kotlin niche with distinctive subtopic triggers, so it is mostly distinct; minor overlap risk remains with narrowly focused Kotlin-adjacent skills (e.g., a coroutines-only or Gradle-only skill) given the absent 'use when' scoping.

4 / 5

Total

13

/

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.

Validation — 14 / 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.