Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD). Decades of experience writing reliable, optimized, and maintainable embedded code with deep expertise in memory barriers, DMA/cache coherency, interrupt-driven I/O, and peripheral drivers.
43
Quality
31%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.agent/skills/arm-cortex-expert/SKILL.mdQuality
Discovery
32%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description reads more like a resume or persona description than a skill description. It focuses on credentials ('Senior', 'Decades of experience') and expertise areas rather than concrete actions Claude will perform. The complete absence of a 'Use when...' clause and the use of first-person implied voice ('specializing in') significantly weakens its utility for skill selection.
Suggestions
Add an explicit 'Use when...' clause with trigger scenarios like 'Use when writing firmware, debugging embedded systems, working with ARM Cortex-M microcontrollers, or optimizing low-level C code'
Replace credential language with action verbs: instead of 'specializing in firmware development', use 'Writes and debugs firmware, develops peripheral drivers, optimizes memory usage'
Include common user phrases like 'embedded C', 'bare metal programming', 'RTOS', 'microcontroller code', 'hardware abstraction layer' to improve trigger term coverage
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (embedded/firmware) and lists technical areas (memory barriers, DMA/cache coherency, interrupt-driven I/O, peripheral drivers), but these are expertise areas rather than concrete actions the skill performs. No action verbs like 'writes', 'debugs', 'optimizes' are used. | 2 / 3 |
Completeness | Describes expertise areas (what the persona knows) but lacks any 'Use when...' clause or explicit trigger guidance. Does not clearly answer 'what does this do' in terms of actions, and completely missing 'when should Claude use it'. | 1 / 3 |
Trigger Term Quality | Includes relevant technical terms users might search for (ARM Cortex-M, Teensy, STM32, nRF52, SAMD, firmware, driver, DMA), but missing common variations like 'embedded C', 'bare metal', 'RTOS', 'microcontroller programming', or simpler terms like 'MCU'. | 2 / 3 |
Distinctiveness Conflict Risk | The specific microcontroller families (Teensy, STM32, nRF52, SAMD) and ARM Cortex-M focus provide some distinctiveness, but 'firmware and driver development' is broad enough to potentially overlap with other embedded or systems programming skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
29%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads more like a role description or capability statement than actionable guidance. While it has excellent progressive disclosure structure with clear sub-skill references, it lacks any concrete code examples, specific commands, or step-by-step workflows that would make it useful for actual embedded development tasks. The content describes what the skill can do rather than showing how to do it.
Suggestions
Add at least one complete, executable code example in the main skill (e.g., a minimal I2C driver init sequence or interrupt handler pattern)
Replace the vague 'Instructions' section with concrete steps: e.g., '1. Identify target MCU → 2. Check sub-skill for peripheral type → 3. Implement with validation pattern X'
Remove the generic 'Use this skill when' boilerplate and the knowledge base items Claude already knows (basic peripheral acronyms, what HAL means)
Add a quick-start workflow with explicit validation checkpoints for a common task like setting up DMA with proper cache handling
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill contains some unnecessary organizational boilerplate (the generic 'Use this skill when' section) and lists knowledge areas Claude likely already knows (basic peripheral types, what HAL means). However, the safety patterns and platform-specific details add value. | 2 / 3 |
Actionability | Despite claiming to deliver 'complete, compilable firmware,' the skill provides no executable code, no concrete commands, and no specific examples. It describes capabilities and principles but gives no copy-paste ready guidance for any task. | 1 / 3 |
Workflow Clarity | No clear multi-step workflows are defined. The 'Instructions' section is vague ('Apply relevant best practices and validate outcomes') with no sequenced steps or validation checkpoints for the complex embedded operations described. | 1 / 3 |
Progressive Disclosure | The skill effectively uses progressive disclosure with a clear overview and well-signaled one-level-deep references to sub-skills (memory barriers, DMA coherency, etc.) and a resources file. Navigation is straightforward. | 3 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
3395991
Table of Contents
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.