CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

maps-utils-android

Guide for integrating the Google Maps Utility Library for Android (android-maps-utils) into an application. Use when users ask to add features like Marker Clustering, Heatmaps, GeoJSON, KML, Polyline encoding/decoding, or Units (distance and elevation conversion and formatting).

Quality

88%

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

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.

A strong, highly actionable reference: every feature comes with real class names, runnable code, and expected outputs. The weaknesses are structural — the Units section dominates the file with duplicated Kotlin/Java coverage and a pinned version number, and everything lives inline with no reference files despite the body exceeding the size where splitting pays off.

Suggestions

Move the detailed Units section (precision rules, converter overrides, and both code examples) to a one-level-deep reference file such as references/units.md, keeping only a 5-10 line summary and a pointer in the body.

Keep only one language's full example (Kotlin) inline; the Java example's unique bits (Units static helpers, UnitsConverter.create) could be a short note or folded into the reference file, roughly halving the Units section.

Replace the pinned "7.0.0" version with guidance to use the latest release (or move version notes to a dedicated section), since inline version pins go stale and require maintenance.

DimensionReasoningScore

Conciseness

The setup and core feature sections (clustering, heatmaps, GeoJSON/KML, polyline) are lean and direct, but the Units section runs ~90 lines — over half the body — duplicating the same API in both a full Kotlin and a full Java example, each with a complete import manifest. It also pins a time-sensitive version ("android-maps-utils:7.0.0") inline, which the guidelines penalize. It is not a 2 because the duplication is dense, correct API guidance rather than padded conceptual explanation, and not a 4 because the dual-language examples and full import lists could clearly be tightened.

3 / 5

Actionability

Everything is executable: the gradle dependency snippet, exact API calls (`HeatmapTileProvider.Builder().data(list).build()`, `GeoJsonLayer(map, R.raw.geojson_file, context)`), and long copy-paste-ready Kotlin and Java examples with expected outputs in comments ("1.0 mi", "14,440 ft", "1640 ft"). The examples cover the common cases (locale defaults, unit-system overrides, hybrid converters, custom formatters) comprehensively, matching anchor 5. The only flaw — undefined placeholder variables like `startLatLng`/`pointA` — is too minor to drop it to 4.

5 / 5

Workflow Clarity

Each feature has a clear, correctly-ordered sequence with real API names (clustering: create ClusterItem → init ClusterManager in onMapReady → wire listeners → addItem; heatmaps: data → builder → addTileOverlay), and the background-thread best practice covers the one genuinely risky operation (parsing huge GeoJSON). It is not a 5 because there are no verification or error-recovery checkpoints (e.g., how to check an overlay rendered or handle a malformed GeoJSON parse failure); it is not a 3 because the sequences that exist are unambiguous and the skill involves no destructive or batch operations that would mandate validation.

4 / 5

Progressive Disclosure

The body has good section structure (Setup → Core Features → Best Practices) but is entirely monolithic: no bundle files exist, and ~90 lines of detailed Units API reference — precision rules plus two exhaustive code examples — are inlined where a one-level-deep reference file would be the appropriate split. This matches anchor 3 ('content that should be separate is inline' with some structure present). It is not a 4 because the Units deep-dive is exactly the bulk content that should live in a separate file, and not a 2 because headers and subsections make it navigable as-is.

3 / 5

Total

15

/

20

Passed

Description

100%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 is exemplary: it names the library, gives a comprehensive list of its concrete capabilities, and provides an explicit 'Use when...' clause with the natural trigger terms a user would say. It follows third-person voice and avoids fluff entirely.

DimensionReasoningScore

Specificity

"Guide for integrating the Google Maps Utility Library for Android (android-maps-utils)" names the domain and concrete capability, then enumerates the library's feature set in full: "Marker Clustering, Heatmaps, GeoJSON, KML, Polyline encoding/decoding, or Units (distance and elevation conversion and formatting)" — multiple specific, concrete actions with comprehensive coverage, matching the anchor-5 example pattern. It is not a 4 because no meaningful feature of the library is left unlisted.

5 / 5

Completeness

It explicitly answers both questions: what ("Guide for integrating the Google Maps Utility Library for Android (android-maps-utils) into an application") and when ("Use when users ask to add features like Marker Clustering, Heatmaps, GeoJSON, KML, Polyline encoding/decoding, or Units...") with concrete trigger phrases — a direct match to the anchor-5 example structure. A 'Use when...' clause is present and explicit, so the completeness cap of 3 does not apply.

5 / 5

Trigger Term Quality

The trigger terms are exactly what a user would naturally say when needing this skill: "Marker Clustering", "Heatmaps", "GeoJSON", "KML", "Polyline encoding/decoding", plus "distance and elevation conversion and formatting" and the library name itself ("android-maps-utils"). Coverage is comprehensive across the feature vocabulary, matching the anchor-5 'natural terms including synonyms' example; a 4 would require identifiable common terms that users say but the description omits, and none are apparent.

5 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche: the android-maps-utils companion library specifically, with triggers (clustering, heatmaps, GeoJSON/KML import, polyline encoding) that are utility-library features rather than base Google Maps SDK tasks. It is not a 4 because the listed triggers would not plausibly route to a different skill — a user asking for these features needs exactly this library.

5 / 5

Total

20

/

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

googlemaps/android-maps-utils

Path

.agents/skills/android-maps-utils/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.