mikro
mikro contains 11 collected skills from mikrojs, with repository-level occupation coverage and site-owned skill detail pages.
Skills in this repository
Write efficient, memory-safe JavaScript/TypeScript for the mikrojs runtime on ESP32 microcontrollers. Use this skill whenever the user is writing application code for mikrojs, asking about available APIs, debugging memory issues, handling errors, working with sensors/peripherals from JS, using WiFi/fetch, managing power with deep sleep, or wondering why their code crashes on-device. Also trigger when code uses mikrojs imports, Result types, or targets ESP32 hardware from JavaScript.
Scaffold a mikrojs driver package for a hardware peripheral. Use this skill whenever the user wants to create a native driver for a sensor, display, motor controller, LED strip, or any other hardware peripheral. Also trigger when the user mentions creating a driver package, writing an ESP-IDF component for mikrojs, wrapping a C/C++ hardware library for JavaScript, or asks about the MIK_REGISTER_MODULE / MIK_REGISTER_BUILTIN pattern for external packages. Even if the user just says "I want to add support for [hardware X]", this skill applies.
Scaffold a mikrojs board package for a development board. Use this skill whenever the user wants to add support for a specific ESP32 development board, create a board definition with pin maps, configure sdkconfig defaults for a board, or set up pre-configured driver re-exports. Also trigger when the user mentions a specific board by name (e.g. "LilyGo T-Display", "Waveshare", "Seeed XIAO"), wants to define a board package, or asks how to make mikrojs work with their board. Even partial requests like "I have this ESP32-S3 board with a display" should trigger this skill.
ESP-IDF performance optimization for ESP32 firmware. Use this skill whenever working on ESP32/ESP-IDF code and the user asks about RAM usage, memory optimization, binary size reduction, speed optimization, IRAM pressure, stack sizing, heap fragmentation, sdkconfig tuning, startup time, or any performance concern on embedded targets. Also trigger when the user mentions slow firmware, out-of-memory crashes, IRAM overflow linker errors, or large binary sizes.
Step-by-step guide for adding new built-in JavaScript modules to mikrojs. Use this skill whenever the user wants to add a new JS-level module (not a raw C module), create a higher-level API wrapper around native C bindings, add a new "mikro/xxx" import, or asks about the TypeScript-to-bytecode pipeline, esbuild bundling, qjsc compilation, or how built-in modules are registered.
Write commit messages in conventional-commits format (`type(scope): subject`) with a short subject that surfaces the *why* behind the change. Apply BEFORE invoking `git commit`, `git commit --amend`, `gh pr create`, or any other command that takes a commit-shaped message — including squash/merge messages and PR titles. Triggers on user phrases like "commit", "commit this", "make a commit", "create a PR", "open a PR", "push and PR", "amend", "squash", or any time you are about to generate a string that will land in `git log`. Apply even for trivial-seeming commits — consistency in the log is the whole point — and ALWAYS include a scope.
Step-by-step guide for adding new native C/C++ modules to the mikrojs ESP32 runtime. Use this skill whenever the user wants to expose new hardware peripherals, ESP-IDF APIs, or C functionality to JavaScript, create a new "native:xxx" native module, add GPIO/SPI/I2C/UART/ADC/PWM or other hardware bindings, or asks how to register C functions with QuickJS in this project.
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch.
Records decisions and documentation. Use when making architectural decisions, changing public APIs, shipping features, or when you need to record context that future engineers and agents will need to understand the codebase.
QuickJS-NG memory management patterns for the mikrojs runtime. Use this skill whenever working on C/C++ code that interacts with QuickJS values (JSValue), writing or reviewing native module code, debugging memory leaks or use-after-free crashes, handling promise lifecycles, writing finalizers, or any situation involving JS_DupValue/JS_FreeValue ownership. Also trigger when the user mentions refcount bugs, leaked JS values, or double-free crashes in the QuickJS layer.
How to write idiomatic, efficient RxJS code. Use this skill whenever the user is writing, refactoring, reviewing, or debugging code that uses RxJS — including any file that imports from 'rxjs' or 'rxjs/operators'. Trigger on mentions of observables, subscriptions, RxJS operators, or reactive streams. Even if the user doesn't say "RxJS" explicitly, activate when you see patterns like `.pipe()`, `.subscribe()`, `Observable`, `Subject`, `BehaviorSubject`, `switchMap`, `mergeMap`, or similar.