CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

earllm-build

Build, maintain, and extend the EarLLM One Android project — a Kotlin/Compose app that connects Bluetooth earbuds to an LLM via voice pipeline.

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 ./plugins/AI-Agents-Safe-Coding-Skills-claude/skills/earllm-build/SKILL.md

The canonical home for this skill is earllm-build in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

57%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 strong project-specific ground truth — module maps, hard-won device facts, and exact commands — that makes it genuinely useful for this codebase. Its weaknesses are template boilerplate padding, workflows without validation checkpoints, and inlined reference material that should live in separate files.

Suggestions

Delete the generic 'Best Practices' and 'Common Pitfalls' sections — their content ('Provide clear, specific context', 'Review all suggestions before applying') is template filler unrelated to the EarLLM project, and they are the main conciseness drag.

Add validation checkpoints to the workflows: after 'Add unit tests' in the feature workflow, state 'Run ./gradlew test and fix failures before proceeding', and after the ZIP regeneration command, verify the archive (the excluded _zip_verify directory suggests this step exists but it is not documented).

Move the STT engine reference table, Phase 2 roadmap, and target-hardware specs into reference files (e.g. references/stt-engines.md, references/roadmap.md) and link them from short overview sections, so SKILL.md acts as the navigable hub.

DimensionReasoningScore

Conciseness

The body is mostly dense, non-obvious project-specific material (module dependency graph, critical technical facts, key-file tables), but it includes unnecessary generic filler: the 'Best Practices' section ('Combine with other complementary skills for comprehensive analysis') and 'Common Pitfalls' section are boilerplate unrelated to this project, and 'How It Works' repeats the overview sentence verbatim. This matches the 'mostly efficient but includes some unnecessary explanation' anchor rather than anchor 4, whose over-explanation would be minor rather than whole padded sections.

3 / 5

Actionability

Concrete, executable guidance dominates: exact commands ('./gradlew test --stacktrace', the Compress-Archive powershell), specific file names per module, and precise technical details ('getMinBufferSize().coerceAtLeast(4096)', 'TYPE_BLE_HEADSET = 26'). It is below anchor 5 because the StateFlow pattern is named but never shown in code and the powershell code block is malformed (the '## From Project Root' heading sits inside the fence), leaving minor gaps.

4 / 5

Workflow Clarity

The 'Adding A New Feature' workflow lists a sensible ordered sequence and the data flow is explicit, but validation checkpoints are missing or implicit: it says 'Add unit tests' without running them, and the ZIP regeneration performs a destructive Remove-Item/repack with no verification step. Per the guideline capping workflows with destructive/batch operations lacking validation at 3, this cannot score 4.

3 / 5

Progressive Disclosure

The single file is well-sectioned with clear headers, but there are no bundle files at all, and clearly separable reference material is inlined (the STT engine comparison table, Phase 2 roadmap, and target-hardware specs). This matches the 'content that should be separate is inline' anchor; it is above anchor 2 because the structure and navigation within the file are good, and the under-50-lines exception for a 5 does not apply to this ~170-line body.

3 / 5

Total

13

/

20

Passed

Description

65%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 states what the skill covers with a well-characterized, highly specific niche and minimal conflict risk, but it omits any explicit 'when to use' trigger guidance and its action verbs are generic. Adding a 'Use when...' clause with natural trigger phrases would bring it in line with the good overall examples.

Suggestions

Append an explicit trigger clause, e.g. "Use when working on the EarLLM One / earbudllm codebase, or when the user mentions earbuds, Bluetooth audio, or the voice pipeline" — this directly addresses the missing 'when' that caps completeness at 3.

Replace the generic 'Build, maintain, and extend' verbs with more concrete capabilities the skill actually provides, such as debugging SCO/BLE audio routing, modifying the STT/TTS pipeline, or managing the LLM client integration.

Add natural keyword variations users might say (speech-to-text, STT, TTS, headset, voice assistant) to strengthen trigger-term coverage.

DimensionReasoningScore

Specificity

The description names three actions ("Build, maintain, and extend") and concretely characterizes the domain ("Kotlin/Compose app that connects Bluetooth earbuds to an LLM via voice pipeline"), matching the anchor for domain plus 1-2 concrete actions without comprehensive coverage. It is above anchor 2 because the domain characterization is specific rather than a bare 'Processes PDF files'-style phrase, but below anchor 4 because build/maintain/extend are generic verbs and capabilities like STT/TTS/debugging are absent.

3 / 5

Completeness

The 'what' is clear (build, maintain, extend the EarLLM One project, with a concrete description of the app), but there is no 'Use when...' clause or equivalent trigger guidance in the description, which caps completeness at 3 per the judging guidelines. It is not a 2 because the 'what' is explicit and specific, and the project-specific framing weakly implies when to use it.

3 / 5

Trigger Term Quality

Natural keywords users would say are present: "Android", "Kotlin/Compose", "Bluetooth earbuds", "LLM", "voice pipeline". This matches the good-coverage-with-a-few-missing anchor; it falls short of anchor 5 because common variations like "speech-to-text", "STT", "TTS", "headset", or "voice assistant" are missing.

4 / 5

Distinctiveness Conflict Risk

"EarLLM One" with "Bluetooth earbuds" and "voice pipeline" is a clear niche with distinct triggers and minimal overlap risk with other skills, matching the anchor-5 example's pattern. Nothing about it is generic enough to trigger for unrelated skills.

5 / 5

Total

15

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills-claude/skills/earllm-build/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.