Build selected K1.node2 pattern(s), upload firmware to the ESP32-S3 over LAN, verify the web API/UI, capture artifacts, and draft release notes.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: k1-firmware-ops
description: Build selected K1.node2 pattern(s), upload firmware to the ESP32-S3 over LAN, verify the web API/UI, capture artifacts, and draft release notes.
---
# K1 Firmware Ops
## Purpose
Create a repeatable, end-to-end flow for K1.node2: **codegen → compile → OTA → API/UI QA → release notes**.
## Prerequisites
- PlatformIO CLI (`pio`) installed and on PATH.
- Node.js 18+ and npm installed.
- Playwright runtime installed (the steps below run `npx playwright install`).
## Config
Edit `tools/k1.config.json` in the repo root to match your setup:
```json
{
"device_ip": "192.168.1.50",
"ota_method": "arduino",
"dashboard_path": "/",
"pattern": "Twilight",
"upload_port": "3232"
}
```
## Procedure (follow these steps in order)
1. **Build & Upload** (uses existing project scripts and/or PlatformIO):
```bash
bash tools/k1_firmware_ops.sh --pattern "<PATTERN_NAME>" --ip "<DEVICE_IP>" --qa false
```
- Artifacts land under `artifacts/<timestamp>/` (build log and metadata).
2. **Install QA deps** once:
```bash
cd tools/qa/playwright
npm ci
npx playwright install
cd ../../..
```
3. **Run API + UI tests** (captures JSON report + screenshots):
```bash
bash tools/k1_firmware_ops.sh --pattern "<PATTERN_NAME>" --ip "<DEVICE_IP>" --qa true
```
4. **Generate release notes** (Markdown summary with links to artifacts):
```bash
node tools/release/generate_release_notes.mjs
```
## Examples
- Rebuild and upload **Twilight** to `192.168.1.50` and run QA:
```bash
bash tools/k1_firmware_ops.sh --pattern "Twilight" --ip "192.168.1.50" --qa true
```
- Build only (no QA), using `tools/k1.config.json` defaults:
```bash
bash tools/k1_firmware_ops.sh
```
## Guardrails
- Treat IPs and Wi‑Fi credentials as secrets; do not commit secrets.
- Prefer ArduinoOTA unless an HTTP OTA endpoint is **documented and reachable**.
- If `/api/params` POST semantics differ from the tests, update `tools/qa/params.sample.json` and the tests accordingly.
No comments yet. Be the first to comment!
Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.
Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.
Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.
Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.
Publish oh-my-opencode to npm via GitHub Actions workflow. Argument: <patch|minor|major>. Triggers: publish, release, deploy, npm publish.