From rkit
MCU flash programming, MPU image deployment, WPF publish guide. Domain-aware deployment with safety checks for destructive operations. Triggers: deploy, 배포, デプロイ, 部署, desplegar, deployer, bereitstellen, distribuire Do NOT use for: CI/CD pipeline setup (use /phase-9-deployment), GitLab MR creation (use /ship).
npx claudepluginhub solitasroh/rkit --plugin rkitThis skill is limited to using the following tools:
Guides deployment for MCU firmware flashing, MPU image writing, and WPF application publishing.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Guides deployment for MCU firmware flashing, MPU image writing, and WPF application publishing. All destructive operations (flash erase, dd to block device) require manual user approval.
.ioc, .ld, startup_*.s files -> MCU.dts, .dtsi, bblayers.conf files -> MPU.csproj with <UseWPF>true</UseWPF> -> WPF# Verify binary exists
ls build/*.bin build/*.hex 2>/dev/null
# Option 1: st-flash (open source, via stlink)
st-flash --format ihex write build/firmware.hex
# Option 2: STM32CubeProgrammer CLI
STM32_Programmer_CLI -c port=SWD -w build/firmware.bin 0x08000000 -v -rst
# Option 1: JLinkExe
JLinkExe -device MK64FN1M0VLL12 -if SWD -speed 4000 -autoconnect 1 \
-CommanderScript flash.jlink
# flash.jlink contents:
# r
# loadfile build/firmware.hex
# r
# go
# exit
# Option 2: pyOCD
pyocd flash --target k64f build/firmware.hex
st-flash erase, mass erase)arm-none-eabi-size build/*.elf# List available block devices FIRST
lsblk
# !! MANUAL APPROVAL REQUIRED for dd commands !!
# Write bootloader
sudo dd if=u-boot.imx of=/dev/sdX bs=1024 seek=1 conv=fsync
# Write rootfs
sudo dd if=core-image-minimal-*.wic of=/dev/sdX bs=4M conv=fsync
sync
# Generate SWUpdate package
swupdate-mkimage -f sw-description -o update.swu
# Deploy via network
curl -F "file=@update.swu" http://<device-ip>:8080/upload
# i.MX28 uses mxs-bootlets, NOT u-boot.imx
# Ensure sb_loader or mfgtool is available
mfgtool2 -c ucl2.xml
dd if= commands to block devices/dev/sdXsha256sum before writingarm-linux-gnueabi-gcc (soft float, NO hard float)# Framework-dependent (smaller, requires .NET runtime on target)
dotnet publish -c Release -r win-x64 --no-self-contained
# Self-contained (larger, standalone)
dotnet publish -c Release -r win-x64 --self-contained true
# Single file
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
# Check output directory
ls -la bin/Release/net8.0-windows/win-x64/publish/
# Verify executable
file bin/Release/net8.0-windows/win-x64/publish/*.exe
<UseWPF>true</UseWPF> in .csproj before publish<TargetFramework>net8.0-windows</TargetFramework>dotnet restore before publishlib/context/invariant-checker.js)