CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

navigation-and-di

Koin Annotations dependency injection and JetBrains Navigation 3 in Meshtastic-Android, including the anti-patterns that compile cleanly and then fail at runtime. Use this whenever you add a screen, a route, a ViewModel or a Koin module, or when navigation or injection behaves unexpectedly.

Quality

90%

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

SKILL.md
Quality
Evals
Security

Quality

Content

82%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.

A dense, high-signal architecture skill: nearly every sentence encodes non-obvious project constraints or runtime failure modes that would otherwise be discovered only in production. The main improvement opportunities are a copy-paste example for the most common task (adding a screen/feature graph) and splitting the longest anti-pattern explanation into a reference file.

Suggestions

Add a short copy-paste example of the canonical feature pattern — a @Serializable route object, an EntryProviderScope<NavKey> extension graph, and a @KoinViewModel/@Module pair wired into the app root — since that is the skill's most common use case and is currently only described in prose.

Consider moving the long MultiBackstack/decorator-reuse anti-pattern paragraph into a references/ file (e.g., references/multi-backstack.md) and keeping a two-line summary in SKILL.md, both to stay within a one-screen overview and to leave room for the skill to grow.

Make the validation feedback loop more explicit for DI changes: state directly that after editing @Module(includes = [...]) wiring, KoinVerificationTest should be run and must pass before proceeding, turning the implicit checkpoint into an explicit one.

DimensionReasoningScore

Conciseness

Every line carries project-specific knowledge Claude cannot already know (KOIN_ENTRY_POINTS, KOIN-D003, compileSafety whole-graph semantics, MultiBackstack decorator behavior, tab entry lifetime), with zero filler explaining what DI or navigation is and one tight code block. There is nothing to trim, so it matches the "every token earns its place" anchor rather than the minor-over-explanation anchor (4).

5 / 5

Actionability

Guidance names exact symbols and paths (MeshtasticNavDisplay, MultiBackstack, NavigationBackHandler, DeepLinkRouter.route(), AppKoinModule.kt, Routes.kt) plus one executable startup snippet. It falls short of fully copy-paste-ready (5) because the most common task — adding a feature graph via an EntryProviderScope<NavKey> extension — is described but never shown; it is well above pseudocode-level guidance (3).

4 / 5

Workflow Clarity

This is a rules/anti-pattern skill rather than a sequential workflow; each guideline is an unambiguous situation-to-do/don't mapping, and validation is named where it exists (KoinVerificationTest catches dropped includes; compileSafety catches graph errors at entry points). No explicit checkpointed sequence exists for a 5, but nothing is incoherent or validation-blind for a 3.

4 / 5

Progressive Disclosure

A single-file skill (~61 body lines) with clean sections (DI / Navigation 3 / anti-patterns / reference anchors) and no buried references. It slightly exceeds the under-50-line exception for a 5, and the long decorator-reuse anti-pattern paragraph is a candidate for a reference file if the skill grows, so it fits the good-structure-with-minor-gaps anchor (4).

4 / 5

Total

17

/

20

Passed

Description

95%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.

A strong description: it states a specific, well-bounded scope in third person and pairs it with an explicit, natural-language "Use this when" clause covering both feature work and debugging scenarios. The only minor gap is that it describes coverage rather than listing concrete actions, which keeps specificity just short of the top anchor.

DimensionReasoningScore

Specificity

"Koin Annotations dependency injection and JetBrains Navigation 3 in Meshtastic-Android, including the anti-patterns that compile cleanly and then fail at runtime" names a highly specific domain and a concrete failure mode, but declares scope rather than enumerating several concrete actions. It is clearly more specific than a generic domain statement (3) but not a comprehensive action list (5).

4 / 5

Completeness

It explicitly answers both what ("Koin Annotations dependency injection and JetBrains Navigation 3 in Meshtastic-Android, including the anti-patterns...") and when ("Use this whenever you add a screen, a route, a ViewModel or a Koin module, or when navigation or injection behaves unexpectedly") with concrete trigger phrases, matching the top anchor.

5 / 5

Trigger Term Quality

"add a screen, a route, a ViewModel or a Koin module", "navigation or injection behaves unexpectedly", and "dependency injection" cover the natural phrases a developer would actually say, including synonyms (injection, navigation, ViewModel). No common variation for this domain is obviously missing.

5 / 5

Distinctiveness Conflict Risk

Named libraries (Koin Annotations, Navigation 3), a named codebase (Meshtastic-Android), and distinctive triggers give this a clear niche with minimal risk of triggering for an unrelated skill.

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

meshtastic/Meshtastic-Android

Path

.skills/navigation-and-di/SKILL.md

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.