CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

android-performance

Optimize Android app startup, UI rendering, frame stability, and benchmark performance with Baseline Profiles, Macrobenchmark, and lazy initialization. Use when reducing startup time, diagnosing jank, or measuring rendering; defer Compose state API and test-only questions.

64

Quality

80%

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 ./skills/android/android-performance/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 is a compact, mostly actionable standards checklist that appropriately pushes code detail into a single well-scoped reference file. Its weaknesses are redundancy (duplicated anti-pattern bullets, a triple-repeated link), noise lines ('Priority: P1 (HIGH)', 'Canonical response anchors'), and the absence of any measure→fix→re-measure workflow with validation despite the skill being about measurable performance.

Suggestions

Collapse the Anti-Patterns section (it restates section 3's nested-weights and Activity-context bullets) and link references/implementation.md once from a single References section instead of three times with inconsistent labels.

Delete the unexplained 'Priority: P1 (HIGH)' header and the trailing 'Canonical response anchors: Additional task-grounded exact anchors: Baseline Profile' line — they add tokens without actionable meaning.

Add a short sequenced workflow with a validation checkpoint, e.g., 1) measure with Macrobenchmark, 2) diagnose jank with JankStats/Layout Inspector, 3) apply the relevant fix, 4) re-run the benchmark to confirm the improvement.

DimensionReasoningScore

Conciseness

Quotes: 'Never hold Activity context in Singletons — use Application context to prevent memory leaks' (section 3) is repeated nearly verbatim in 'No Activity Context in Singletons: Use Application context to prevent memory leaks' under Anti-Patterns, and the same reference link 'See [baseline & startup](references/implementation.md)' appears three times under two different guises. Trailing boilerplate 'Additional task-grounded exact anchors: Baseline Profile' and an unexplained 'Priority: P1 (HIGH)' header add tokens without meaning. Mostly efficient bullets with some clear tightening opportunities — matches anchor 3; not 2 because the body is short and the bullets themselves are lean, not padded explanations.

3 / 5

Actionability

Quotes: 'Generate **Baseline Profiles** for all production apps', 'Defer heavy SDK init using `App Startup` or lazy Singletons', 'LazyColumn must use `key` and stable item classes', and the linked references/implementation.md contains complete executable Kotlin (BaselineProfileRule, TimberInitializer, lazy singleton, LazyColumn keys). Mostly executable guidance with minor gaps — not 5 because Macrobenchmark is named in the description but never given runnable guidance, and baseline profile setup lacks the Gradle/module configuration needed to actually run it.

4 / 5

Workflow Clarity

Quotes: 'Create `:benchmark` module.' → 'Define `BaselineProfileGenerator`.' in the reference gives a rough two-step sequence, but the body is a topic checklist with no diagnostic sequence (e.g., measure → diagnose → fix → re-measure) and no validation checkpoints to confirm a change actually improved startup or jank. Steps exist but checkpoints are missing — matches anchor 3; not 4 because there is no verify/re-measure step anywhere despite the skill being measurement-centric.

3 / 5

Progressive Disclosure

The bundle is one real, one-level-deep file (references/implementation.md) holding the code details while SKILL.md stays an overview — quotes: 'See [baseline & startup](references/implementation.md) for lazy initialization patterns.' Good structure with minor organization gaps — not 5 because the reference is linked three times under inconsistent labels ('baseline & startup' also claimed to cover 'LazyColumn optimization'), the dedicated 'References' section is redundant, and the cryptic 'Canonical response anchors' trailer obscures navigation.

4 / 5

Total

14

/

20

Passed

Description

92%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 a strong example: it names concrete capabilities with the specific tooling that implements them, gives explicit natural-language triggers, and even includes boundary guidance to reduce mis-triggering. Trigger term coverage is good but could add a few more everyday synonyms (laggy, frame drops, slow startup).

DimensionReasoningScore

Specificity

Quotes: 'Optimize Android app startup, UI rendering, frame stability, and benchmark performance with Baseline Profiles, Macrobenchmark, and lazy initialization.' Multiple concrete capabilities are named alongside the specific tools that deliver them (Baseline Profiles, Macrobenchmark, lazy initialization), matching the comprehensive-coverage anchor. Not 4 because coverage spans four capability areas plus named mechanisms, with no minor gaps evident.

5 / 5

Completeness

What is answered explicitly ('Optimize Android app startup, UI rendering, frame stability, and benchmark performance...') and when is answered with concrete trigger phrases ('Use when reducing startup time, diagnosing jank, or measuring rendering'), plus an explicit deferral boundary ('defer Compose state API and test-only questions'). This clearly matches the both-what-and-when-with-concrete-triggers anchor; the neighboring anchor 4 requires a weaker or less explicit 'when', which does not apply.

5 / 5

Trigger Term Quality

Quotes: 'Use when reducing startup time, diagnosing jank, or measuring rendering' — natural phrases users would say ('startup time', 'jank'). Not 5 because common variations like 'slow app', 'laggy', 'frame drops', 'ANR', or file/keyword extensions are absent; not 3 because the included terms are genuinely natural rather than pure jargon and cover the three main use cases.

4 / 5

Distinctiveness Conflict Risk

Quotes: 'Baseline Profiles, Macrobenchmark' and 'defer Compose state API and test-only questions' — a clear Android-performance niche with distinct tool triggers and explicit boundary guidance steering neighboring topics (Compose state, test-only) away. Minimal conflict risk; anchor 4's 'minor overlap risk with closely related skills' is not met given the explicit deferral clause.

5 / 5

Total

19

/

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

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

HoangNguyen0403/agent-skills-standard

Path

skills/android/android-performance/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.