Senior embedded software engineer specializing in firmware and driver development for ARM Cortex-M microcontrollers (Teensy, STM32, nRF52, SAMD).
60
41%
Does it follow best practices?
Impact
93%
1.19xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/antigravity-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.
The description reads more like a job title or resume headline than a skill description. While it identifies a clear domain (embedded firmware for ARM Cortex-M MCUs) and lists specific hardware platforms, it fails to enumerate concrete actions Claude can perform and completely lacks 'when to use' guidance. The use of a role-based framing ('Senior embedded software engineer') rather than action-based language reduces its effectiveness for skill selection.
Suggestions
Replace the role-based framing with concrete actions, e.g., 'Writes firmware, configures peripherals (SPI, I2C, UART, GPIO), develops device drivers, and debugs embedded systems for ARM Cortex-M microcontrollers.'
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about embedded programming, microcontroller firmware, Teensy/STM32/nRF52/SAMD development, peripheral configuration, or bare-metal/RTOS programming.'
Include additional natural trigger terms users might say, such as 'microcontroller programming', 'bare-metal', 'RTOS', 'HAL', 'register-level', 'interrupt handling', or specific peripheral protocols like 'SPI', 'I2C', 'UART'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (embedded software/firmware/driver development) and specific hardware platforms (ARM Cortex-M, Teensy, STM32, nRF52, SAMD), but does not list concrete actions like 'write drivers', 'debug firmware', 'configure peripherals', etc. It describes a role rather than specific capabilities. | 2 / 3 |
Completeness | Describes 'what' at a high level (firmware and driver development for specific MCUs) but completely lacks any 'when should Claude use it' guidance. There is no 'Use when...' clause or equivalent explicit trigger guidance, which per the rubric should cap completeness at 2, but the 'what' is also weak (role description rather than actions), warranting a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'firmware', 'driver development', 'ARM Cortex-M', 'Teensy', 'STM32', 'nRF52', 'SAMD', and 'embedded' which users might naturally mention. However, it misses common variations like 'microcontroller programming', 'GPIO', 'SPI', 'I2C', 'RTOS', 'bare-metal', or 'flashing'. | 2 / 3 |
Distinctiveness Conflict Risk | The focus on embedded/firmware for specific ARM Cortex-M platforms provides some distinctiveness, but the description is broad enough ('software engineer') that it could overlap with general coding skills or other hardware-related skills. The specific MCU names help but the lack of concrete action boundaries increases conflict risk. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill demonstrates strong domain expertise in ARM Cortex-M embedded development with genuinely useful safety-critical patterns (memory barriers, DMA cache coherency, W1C registers). However, it suffers from being overly verbose with descriptive sections that don't add actionable value, incomplete code examples that describe patterns rather than providing compilable implementations, and a monolithic structure that would benefit from splitting detailed reference material into separate files.
Suggestions
Replace the SPI driver 'pattern description' with a complete, compilable example for at least one platform (e.g., Teensy 4.x) including init, ISR, and usage code.
Provide the actual implementation of mmio_read()/mmio_write()/mmio_modify() helper functions rather than just describing them—these are the most safety-critical patterns in the skill.
Move the architecture comparison table, FPU context saving, stack overflow protection, and hardfault debugging sections into a referenced file (e.g., resources/cortex-m-reference.md) to reduce the main skill's length.
Add concrete validation steps to the workflow—e.g., 'Compile with -Wall -Werror', 'Run static analysis with cppcheck', 'Verify register values with debugger breakpoint at init completion'.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill contains substantial useful embedded-specific knowledge but is verbose in places—listing platform competencies, role objectives, and knowledge base sections that largely describe what Claude should already know or could infer. The architecture comparison table and safety patterns earn their place, but sections like 'Role & Objectives' and 'Core Competencies' are padding. | 2 / 3 |
Actionability | There are some concrete code snippets (critical sections, W1C pattern, Rust static patterns, cache alignment attributes) but many sections provide only descriptions or API names rather than complete, executable examples. The SPI driver example at the end is a pattern description rather than compilable code. Memory barrier section describes what to do but doesn't provide the actual helper function implementations. | 2 / 3 |
Workflow Clarity | The workflow section provides a 6-step sequence (Clarify → Design → Implement → Validate → Optimize → Iterate) but validation is vague ('example usage + notes on timing') with no explicit verification commands or feedback loops. For firmware development involving hardware registers and DMA—destructive/risky operations—the lack of concrete validation checkpoints caps this at 2. | 2 / 3 |
Progressive Disclosure | There is one reference to an external file ('resources/implementation-playbook.md') which is good, but the main file is quite long (~250 lines) with detailed content on memory barriers, DMA, fault debugging, architecture tables, and FPU context that could be split into referenced sub-documents. The structure uses clear headers but the monolithic nature hurts navigation. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
f1697b6
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.