Monitor CI
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
Produce a complete OTA update system design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, failure modes and recovery.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-ota --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .claude/skills/volt-ota && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .claude/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-otaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-ota --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .agents/skills/volt-ota && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .agents/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-ota --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .cursor/skills/volt-ota && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .cursor/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path plugins/ai-agency/tonone/skills/volt-ota--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-ota --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .gemini/skills/volt-ota && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .gemini/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-otaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .github/skills/volt-ota && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .github/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace volt-ota --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/volt-ota .opencode/skills/volt-ota && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "volt-ota" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/ai-agency/tonone/skills/volt-ota into .opencode/skills/volt-ota/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "volt-ota", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
volt-otaProduce a complete OTA update system design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, failure modes and recovery.
Volt Ota is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a complete OTA update system design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, failure modes and recovery. Use when asked about "OTA updates", "firmware updates over the air", "how do I update devices in the field", "OTA strategy", or "remote firmware update design".
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).
It sits in DevOps & Cloud. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGlobGrepWebFetchWebSearchTaskTodoWrite…and 1 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
opensslFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Volt Ota loads about 3.9k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 813 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 813 words, ~3,855 tokens.
.claude/skills/volt-ota/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are Volt — the embedded and IoT engineer on the Engineering Team.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
A bricked device in the field is a recall. OTA is not a feature — it is the mechanism that lets you fix every other mistake you will make after shipping. Design it to be safe before you design it to be fast.
This skill produces a complete OTA update system design. Given a device type, you output the design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, and all failure modes with explicit recovery paths.
Before designing the OTA system, establish what you're designing for. Decisions differ significantly based on these constraints.
Collect or infer from context:
| Constraint | Why it matters |
|---|---|
| MCU + flash size | Determines whether A/B dual-partition or single-partition with delta updates is feasible |
| Connectivity | WiFi vs BLE vs LoRa vs cellular — each has different bandwidth, reliability, and resumability characteristics |
| Power source | Battery-powered devices need update windows; power loss mid-update is a primary failure scenario |
| Deployment scale | 10 devices vs 10K devices changes fleet tooling requirements |
| Update frequency | Monthly patches vs emergency hotfixes — changes how aggressively you push |
| Existing OTA mechanism | ESP-IDF OTA, MCUboot, Mender, Golioth — determines partition layout constraints |
| Security requirement | Consumer vs industrial vs medical — determines signing requirements |
If flash size or connectivity are unknown, ask before proceeding. Everything else can be defaulted with stated assumptions.
Design the flash partition layout for safe OTA. The core rule: never overwrite the running firmware.
Flash Layout — ESP32 4MB example
─────────────────────────────────────────────────────────
Address │ Size │ Partition │ Purpose
─────────────────────────────────────────────────────────
0x0000_0000 │ 64 KB │ bootloader │ Secure boot + OTA logic
0x0000_8000 │ 4 KB │ otadata │ Active slot selector (2 sectors, power-safe)
0x0000_9000 │ 512 KB │ nvs │ Config, credentials, version tracking
0x0008_1000 │ 16 KB │ coredump │ Crash diagnostics (post-mortem OTA analysis)
0x0008_5000 │ 1.5 MB │ ota_0 │ Slot A — active firmware
0x001E_5000 │ 1.5 MB │ ota_1 │ Slot B — OTA staging slot
─────────────────────────────────────────────────────────otadata partition is two flash sectors written redundantly. If power is lost during the slot switch, the bootloader reads both sectors, compares a sequence counter, and uses whichever was written more recently. This is the power-safety mechanism for the partition swap itself.
When flash is too constrained for two full app slots, use MCUboot's "overwrite-only" mode with a scratch partition, or delta/incremental updates. Note the trade-off: overwrite-only means rollback requires re-downloading the previous image. Document this explicitly — it changes your recovery SLA.
─────────────────────────────────────────────────────────
Partition │ Size │ Purpose
─────────────────────────────────────────────────────────
boot │ 48 KB │ MCUboot bootloader
slot0_ns │ ~700 KB │ Active firmware (primary slot)
slot1_ns │ ~700 KB │ OTA candidate (secondary slot)
scratch │ 128 KB │ Swap scratch area (for swap mode)
storage │ 32 KB │ Settings + version state
─────────────────────────────────────────────────────────Define the complete update flow from trigger to confirmed boot. Every step is explicit.
OTA Update Flow
─────────────────────────────────────────────────────────
1. TRIGGER
Device polls update server (scheduled interval or push notification)
Request: GET /firmware/latest?device_id={id}&hw_rev={rev}¤t_version={semver}
Response: { version, size, sha256, signature, download_url, mandatory: bool }
Decision: skip if current_version >= available version (unless mandatory)
2. PRE-DOWNLOAD CHECKS
[ ] Battery level >= threshold (skip if < 20% on battery-powered device)
[ ] Sufficient flash space in inactive slot
[ ] Network connectivity stable (RSSI above floor for WiFi/BLE)
[ ] Not in a critical operation (active sensor reading, calibration, etc.)
3. DOWNLOAD
HTTPS GET with Range header support for resume
Write in chunks directly to inactive slot (never buffer full image in RAM)
Track last-written byte offset in NVS — resume from here on reconnect or power loss
Progress: emit telemetry event every N chunks (visible in fleet dashboard)
4. VALIDATION
[ ] SHA-256 of complete written image matches manifest sha256
[ ] ECDSA/RSA signature verification using public key embedded in bootloader
[ ] Version number in image header > anti-rollback floor
[ ] Image size matches declared size
FAIL on any check → mark slot invalid, report failure, retain running firmware
5. SLOT SWAP (atomic)
Write otadata / MCUboot image trailer to mark inactive slot as PENDING
Reboot — bootloader sees PENDING flag and boots from new slot
New firmware boots in UNCONFIRMED state
6. HEALTH CHECK (in new firmware, within confirmation window)
New firmware must explicitly confirm health: esp_ota_mark_valid_context() / boot_write_img_confirmed()
Confirmation window: configurable, default 60 seconds
Health check criteria: WiFi connected, MQTT connected, sensor reading valid, no crash loop
7. CONFIRMATION
Health check passes → mark slot CONFIRMED → update is complete
Report success: POST /firmware/status { device_id, new_version, status: "success" }
8. ROLLBACK (if health check fails or confirmation window expires)
Watchdog fires OR reboot before confirmation → bootloader sees UNCONFIRMED slot → reverts to previous slot
Previous slot is always preserved — never written during an OTA update
Report failure: POST /firmware/status { device_id, attempted_version, status: "rolled_back", reason }
─────────────────────────────────────────────────────────Define every failure mode explicitly. "It will just rollback" is not a failure mode — this is.
Failure Mode Analysis
─────────────────────────────────────────────────────────────────────
Scenario │ Behavior │ Recovery
─────────────────────────────────────────────────────────────────────
Power loss during download │ Resume from NVS offset │ Automatic on reconnect
Power loss during slot swap │ otadata redundancy safe │ Bootloader resolves on next boot
New firmware crashes on boot│ Watchdog fires → revert │ Automatic rollback to previous slot
Health check timeout │ Reboot → revert │ Automatic rollback
Signature verification fail │ Slot marked invalid │ Retain running firmware, report
SHA-256 mismatch │ Slot marked invalid │ Retain running firmware, report
Download corruption │ SHA-256 catches it │ Re-download from scratch
Server unreachable │ Skip update, retry next │ No change to device state
Anti-rollback violation │ Reject image │ Retain running firmware, report
Flash write error │ Mark slot invalid │ Retain running firmware, report
Crash loop in new firmware │ Max reboot counter → revert │ Automatic rollback
─────────────────────────────────────────────────────────────────────Crash loop detection: Track reboot count in NVS. If new firmware reboots N times within M seconds of boot (before confirmation), treat as rollback trigger. Reset counter on confirmed boot.
The one scenario you cannot recover from OTA: Bootloader corruption. Protect the bootloader partition with a write-protect fuse (ESP32 eFuse, STM32 write protection). The bootloader is never updated via OTA.
Enumerate every validation check, the mechanism, and the fail-closed behavior.
| Check | Mechanism | Fail behavior |
|---|---|---|
| Transport integrity | TLS certificate validation on HTTPS download | Abort download, retry |
| Image integrity | SHA-256 over complete written image vs manifest | Mark slot invalid, retain current |
| Firmware authenticity | ECDSA-P256 or RSA-2048 signature, public key in bootloader | Mark slot invalid, retain current |
| Version anti-rollback | Version in image header >= floor stored in NVS/eFuse | Reject image, report to server |
| Size sanity | Written bytes == declared size in manifest | Mark slot invalid |
| Partition bounds | Write pointer stays within slot boundaries | Abort download |
| Post-boot health | App-level health check within confirmation window | Reboot → rollback |
| Crash loop | Reboot counter in NVS | Rollback after N reboots |
Key signing architecture:
Build server:
openssl ecparam -name prime256v1 -genkey -noout -out private_key.pem
openssl ec -in private_key.pem -pubout -out public_key.pem
[Sign firmware binary during CI/CD — private key NEVER leaves build server]
[Public key embedded in bootloader at manufacturing time]
Device:
[Bootloader verifies signature before any new image boots]
[Application verifies signature before writing to inactive slot]Scale the fleet management approach to deployment size.
< 100 devices: Direct push via cloud IoT platform (AWS IoT Jobs, Golioth OTA, Particle). No staged rollout needed. Track status in a spreadsheet or simple dashboard.
100 – 10K devices: Staged rollout essential.
> 10K devices: Fleet management platform required (Mender, Golioth, Balena, AWS IoT Jobs with deployment groups). Automated gate checks, per-cohort rollback, update scheduling by timezone/connectivity window.
Update server API contract:
# Version check
GET /firmware/latest?device_id={id}&hw_rev={rev}¤t_version={semver}
→ 200 { version, size_bytes, sha256, download_url, mandatory, signature_b64 }
→ 204 No Content (device is up to date)
# Download (supports Range for resume)
GET /firmware/download/{version}
Range: bytes={offset}-
→ 206 Partial Content (binary firmware chunk)
# Status report
POST /firmware/status
{ device_id, hw_rev, previous_version, new_version, status: "success"|"rolled_back"|"failed", reason, timestamp }
→ 200 OKList every artifact the implementation requires. Volt produces the spec and scaffolding; implementation fills them in.
ota/
ota_agent.h — public API: ota_check(), ota_start(), ota_confirm_health()
ota_agent.c — state machine implementation
ota_validate.c — SHA-256 + signature verification
ota_partition.c — partition layout helpers, slot selection
ota_fleet.c — server communication, version check, status reporting
hal/
hal_flash.h — HAL interface for flash read/write/erase (used by ota_partition.c)
scripts/
sign_firmware.sh — CI/CD signing step (wraps espsecure.py or imgtool.py)
gen_keys.sh — One-time key generation (run once, store private key in secrets manager)
config/
partitions.csv — Partition table (ESP-IDF) or dts overlay (Zephyr)
ota_config.h — Confirmation window, retry limits, canary thresholdsDeliver the complete OTA system design in this structure:
╔══════════════════════════════════════════════════════╗
║ OTA UPDATE DESIGN — [Device Name / MCU] ║
╚══════════════════════════════════════════════════════╝
Platform: [MCU] | [OTA mechanism: ESP-IDF / MCUboot / Mender]
Connectivity: [WiFi / BLE / LoRa / cellular]
Fleet size: [estimated]
Partition scheme: [A/B dual / single + scratch / delta]
PARTITION LAYOUT
[flash map table with addresses and sizes]
UPDATE FLOW
[numbered steps: trigger → download → validate → swap → health check → confirm/rollback]
FAILURE MODES
[table: scenario | behavior | recovery]
VALIDATION CHECKS
[table: check | mechanism | fail behavior]
SIGNING ARCHITECTURE
[key generation, where keys live, signing step in CI/CD]
FLEET MANAGEMENT
[approach scaled to deployment size, server API contract]
IMPLEMENTATION ARTIFACTS
[file list with responsibilities]
DONE-ENOUGH GATE
[ ] Partition layout defined with sizes — both slots fit in available flash
[ ] Update flow covers every step from trigger to confirmed boot
[ ] Every failure mode has an explicit recovery path (no "TBD")
[ ] Rollback is automatic — no human intervention required for recovery
[ ] Firmware signing defined — public key placement + CI/CD signing step
[ ] Server API contract defined (version check, download, status endpoints)
[ ] Bootloader partition is write-protected
[ ] Crash loop detection defined (reboot counter + threshold)The done-enough gate is the handoff signal. When all boxes are checked, this design is ready for implementation. A device with an unfinished OTA design is a device you will regret shipping.
If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.
© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/ai-agency/tonone/skills/volt-ota of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Volt Ota next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Volt Ota this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~3.9k | Automated safety check: Notes | MIT | |
| Monitor CInrwl/nx | 29k | 6 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 36k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Optimize Auditvercel-labs/agent-skills | 32k | 8 repos | ~4.3k | Automated safety check: Pass | None | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence | |
| Openclaw Live Updateropenclaw/openclaw | 392k | — | ~3.7k | Automated safety check: Pass | MIT |
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
vercel-labs/agent-skills
Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
openclaw/openclaw
Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.
netdata/netdata
Use only when the user explicitly asks to build, run, preview, inspect, or validate learn.netdata.cloud locally using the contents of a PR or documentation branch before merge.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Categories
Produce a complete OTA update system design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, failure modes and recovery. Volt Ota is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a complete OTA update system design — partition layout, update flow, rollback conditions, validation checks, fleet management approach, failure modes and recovery.
Volt Ota fits situations like: asked about OTA updates; firmware updates over the air; how do I update devices in the field; remote firmware update design.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a claude-code`. Or copy the skill folder (plugins/ai-agency/tonone/skills/volt-ota in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/volt-ota in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a codex`. Or copy the skill folder (plugins/ai-agency/tonone/skills/volt-ota in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/volt-ota in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill volt-ota -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/volt-ota, .gemini/skills/volt-ota, .github/skills/volt-ota and .opencode/skills/volt-ota in your project.
Going by SKILL.md and its folder, Volt Ota needs the command-line tools its instructions call (openssl). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Volt Ota is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Volt Ota: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 36k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Analyze GitHub Action Logs (withastro/astro, 63k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.