Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add HermeticOrmus/LibreEmbed-Claude-Code --skill sensor-patternsgit clone --depth 1 https://github.com/HermeticOrmus/LibreEmbed-Claude-CodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hermeticormus/libreembed-claude-code/sensor-patterns)<a href="https://agentmods.dev/skills/hermeticormus/libreembed-claude-code/sensor-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/libreembed-claude-code/sensor-patterns/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hermeticormus/libreembed-claude-code/sensor-patterns"><img src="https://agentmods.dev/badge/skills/hermeticormus/libreembed-claude-code/sensor-patterns.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00047 | $0.01707 |
| Opus 5.5 | $0.00019 | $0.00683 |
| Sonnet 5.5 | $0.00009 | $0.00341 |
| Haiku 4.5 | $0.00005 | $0.00171 |
Grade A, and why
sensor-patterns scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 29d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.
sensor-patterns
Knowledge Base
Sensor driver, calibration, and filtering patterns for embedded C.
Pattern 1: SPI Sensor Register Protocol
Most SPI sensors use: CS assert → [address byte with R/W bit] → [data bytes] → CS deassert.
/* Generic SPI sensor: 8-bit register address, bit7 = R/W (1=read) */
/* Example: ICM-42688 IMU, MPU-9250, LIS3DH */
uint8_t spi_sensor_read_reg(uint8_t reg)
{
uint8_t tx[2] = { reg | 0x80U, 0x00U }; /* Bit7=1: read */
uint8_t rx[2] = { 0 };
spi_cs_assert();
spi_transfer_bytes(tx, rx, 2);
spi_cs_deassert();
return rx[1]; /* Byte 0 = dummy (address phase), byte 1 = data */
}
void spi_sensor_write_reg(uint8_t reg, uint8_t val)
{
uint8_t tx[2] = { reg & 0x7FU, val }; /* Bit7=0: write */
spi_cs_assert();
spi_transfer_bytes(tx, NULL, 2);
spi_cs_deassert();
}
/* Burst read: read N registers starting at addr */
void spi_sensor_read_burst(uint8_t start_reg, uint8_t *buf, uint8_t len)
{
uint8_t addr = start_reg | 0x80U;
spi_cs_assert();
spi_transfer_bytes(&addr, NULL, 1); /* Send address */
spi_transfer_bytes(NULL, buf, len); /* Receive data */
spi_cs_deassert();
}
Pattern 2: Temperature Sensor with NTC Thermistor
NTC (Negative Temperature Coefficient) resistance decreases with temperature. Steinhart-Hart equation.
#include <math.h>
#define R_SERIES 10000.0f /* 10kΩ series resistor */
#define R_NOM 10000.0f /* Nominal resistance at T_NOM */
#define T_NOM 298.15f /* 25°C in Kelvin */
#define B_COEFF 3950.0f /* Beta coefficient from datasheet */
/* Returns temperature in Celsius */
float ntc_adc_to_celsius(uint16_t adc_raw, uint16_t adc_max)
{
/* Voltage divider: R_NTC = R_SERIES * ADC / (ADC_MAX - ADC) */
float resistance = R_SERIES * (float)adc_raw / (float)(adc_max - adc_raw);
/* Steinhart-Hart simplified (B-parameter equation) */
float temp_K = 1.0f / (1.0f/T_NOM + (1.0f/B_COEFF) * logf(resistance / R_NOM));
return temp_K - 273.15f;
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 29d ago Changed · +5 lines · +47 tokens per session 7cf1653ff2b8
- 2mo ago First seen · 193 lines · 0 tokens per session scan A b1778d42ecc2
sensor-patterns is a skill published in the GitHub repository HermeticOrmus/LibreEmbed-Claude-Code (50 stars, last pushed 20d ago), licensed MIT. It adds 47 tokens to every session and 1,707 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
mspm0-skill
Tool-neutral CLI agent rules for TI MSPM0 development with SysConfig, DriverLib, CCS, Keil/uVision, CMake/GCC/OpenOCD, and supported board references. Use when an agent needs to inspect or modify MSPM0 projects, validate SysConfig output, package examples, or work on NUEDC embedded firmware.
doca-argp
Use this skill for hands-on DOCA Arg Parser CLI work on a shipped sample or new DOCA-using app — adding / removing / renaming flags; wiring docaargpinit → register params → docaargpstart → docaargpdestroy in order; picking a parameter type from the full public enum (DOCAARGPTYPESTRING, INT, BOOLEAN, DEVICE, DEVICEREP…
holoscan-module-lifecycle
Develop external Holoscan Modules with the Holoscan CLI and use them in Holoscan applications: scaffold, test, Python bindings, DEB/WHEEL packaging, and clean-consumer proof.
embedded-stm32
Best practices for embedded C/C++ development on STM32 microcontrollers using the HAL, covering peripherals, DMA, interrupts, memory constraints, and hardware-focused testing. Use when writing STM32 HAL code, configuring peripherals generated by STM32CubeMX, working with interrupts or DMA, debugging with SWD/JTAG…
opengis-skills
Use when AI coding assistant needs GIS/CAD/C#/AI/IoT/3D domain expertise. Index of 114 skills across 8 categories: gis (40), cad (21), csharp (12), ai (17), iot (4), 3d (6), demos (4), others (10). Tag-based search and on-demand loading for GDAL, GeoServer, MapServer, Leaflet, PROJ, PostGIS, DuckDB Spatial, GeoLibre…
acad-arx-wizard
Agentic ObjectARX project scaffolding for AutoCAD 2027 / Visual Studio 2026. Replaces the broken .vsz VsWizardEngine wizard with a PowerShell script that generates identical C++ project files. Works for new ARX/DBX/CRX projects and add-on class wizards (Jig, Reactors, Custom Object, MFC, .NET Wrapper, COM Wrapper…