CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

54

Quality

61%

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 content is technically rich and largely actionable with concrete files, commands, and verified facts, but it is padded with generic boilerplate sections, lacks explicit validation checkpoints in its workflows, and keeps all reference material inline in one file rather than practicing progressive disclosure.

Suggestions

Remove or condense the boilerplate 'Best Practices' and 'Common Pitfalls' sections and collapse the six near-duplicate 'When to Use' lines into one line with trigger aliases.

Add explicit validation checkpoints to the workflows — e.g., after 'Add unit tests' insert 'Run `./gradlew test` and only proceed on green', and after regenerating the ZIP add a verify step.

Move the STT engine reference table, target-hardware specs, and Phase 2 roadmap into separate reference files (e.g., references/stt-engines.md, references/hardware.md) linked one level deep from SKILL.md.

DimensionReasoningScore

Conciseness

The body is mostly dense and useful (module graph, file tables, verified technical facts, data flow) and does not explain concepts Claude already knows, but it carries padded boilerplate — six near-duplicate "When to Use" lines and generic "Best Practices"/"Common Pitfalls" sections ('Provide clear, specific context', 'Combine with other complementary skills') that earn no tokens.

3 / 5

Actionability

It gives concrete, executable guidance — specific filenames per module, exact build versions, copy-paste `./gradlew` and PowerShell zip commands, and precise parameters (16kHz mono, `coerceIn(4096)`, `VOICE_COMMUNICATION` source) — with only minor gaps where some sections stay guidance-level ('Read existing code', 'Follow the StateFlow pattern').

4 / 5

Workflow Clarity

"Adding A New Feature" lays out a 6-step sequence and "Generating A Build Artifact" / "Running Tests" give ordered commands, but validation checkpoints are implicit or missing — the feature workflow says to add tests but never 'run tests to verify', and the destructive zip-regeneration step has no verify-before-commit feedback loop.

3 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but the entire skill is a single monolithic file with no bundle files or one-level-deep references, and reference-type content (STT engine comparison table, Phase 2 roadmap, target-hardware specs) is inlined rather than split out, matching the 'structure present but content that should be separate is inline' anchor.

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 is specific and highly distinctive, naming a clear niche and several actions, but it omits any explicit "when to use" trigger guidance and relies on somewhat generic verbs, which limits its completeness and specificity scores.

Suggestions

Append a 'Use when...' clause listing concrete trigger phrases (e.g., 'Use when the user mentions earllm, earbud app, Bluetooth earbuds + LLM, or voice pipeline on Android').

Swap the generic verbs (build/maintain/extend) for more concrete operations the skill actually performs (e.g., 'add features, fix audio routing, modify the LLM integration, regenerate build artifacts').

Include the project's own trigger aliases (earllm, earbudllm) and file-extension or framework cues in the description itself, not just the body.

DimensionReasoningScore

Specificity

Names the domain precisely ("Kotlin/Compose app that connects Bluetooth earbuds to an LLM via voice pipeline") and lists three actions ("Build, maintain, and extend"), but the verbs are generic lifecycle terms rather than concrete operations like extracting or filling, so it stops at the domain-plus-actions anchor rather than the comprehensive-actions anchor.

3 / 5

Completeness

It clearly answers "what" (build/maintain/extend the EarLLM One project) but contains no "Use when..." clause or equivalent explicit trigger guidance, which per the rubric caps completeness at 3.

3 / 5

Trigger Term Quality

Natural keywords a user would say are present — "Bluetooth earbuds", "LLM", "voice pipeline", "Android", "Kotlin/Compose" — giving good coverage, though common synonyms and the project's own trigger aliases (earllm, earbudllm) are absent from the description itself.

4 / 5

Distinctiveness Conflict Risk

The named-project plus Bluetooth-earbuds-to-LLM niche is highly specific with distinct triggers and minimal realistic overlap with other 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.

Validation15 / 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
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.