chsh-sk-ncs-3-dev-coding

Implements NCS firmware modules from engineering specs using zego bricks and Zephyr patterns.

1|Updated Jan 30, 2026
One-click install
npx skills add https://github.com/chshzh/claude --skill chsh-sk-ncs-3-dev-coding-chshzh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: chsh-sk-ncs-3-dev-coding
Source: https://github.com/chshzh/claude/tree/main/skills/chsh-sk-ncs-3-dev-coding
Command: npx skills add https://github.com/chshzh/claude --skill chsh-sk-ncs-3-dev-coding-chshzh

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing Nordic NCS (nRF Connect SDK) firmware from engineering specs is slow and error-prone when every module is built from scratch, and code often drifts out of sync with the PRD and spec documents it was written against. ## Core Features & Use Cases - Spec-driven implementation: Reads specs from docs/dev-specs/ and creates Zephyr modules (src/modules/<name>/) with Kconfig, CMake wiring, SMF state machines, Zbus integration, and structured logging. - Reuse-first workflow: Checks zego bricks (button, led, wifi, network, BLE provisioning, NTP, memory monitor) before writing new code, and falls back to the nordic-wifi-webdash and nordic-wifi-memfault reference repos for uncovered patterns. - Testing and CI: Generates native_sim ztest suites for pure-logic modules, builds for target boards, and scaffolds a GitHub Actions workflow from a build template covering three Nordic board targets. - Doc-drift guard: Tracks PRD/spec versions in prj.conf and prompts to update docs when code changes outpace them. - Use Case: After specs are finalized for a Wi-Fi sensor device, invoke this skill to wire in the button and LED bricks, implement a custom webserver module modeled on nordic-wifi-webdash, run host tests on native_sim, and produce a CI pipeline that builds release hex files for three boards. ## Quick Start Ask Claude to implement the modules described in docs/dev-specs using the chsh-sk-ncs-3-dev-coding skill, reusing zego bricks where they apply.

Frequently Asked Questions about chsh-sk-ncs-3-dev-coding

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement NCS firmware modules from engineering specs?

Read the specs in docs/dev-specs, then create each module under src/modules/<name>/ with a C source, Kconfig file, and CMakeLists.txt guarded by CONFIG_APP_<MODULE>_MODULE. Wire it into the top-level Kconfig, prj.conf, and CMakeLists.txt, then build with west build for the target board.

What are zego bricks in NCS development?

Zego bricks are standalone, portable Zephyr modules at /opt/nordic/ncs/v3.4.0/zego/bricks/ covering button, LED, Wi-Fi, network, BLE provisioning, UX, NTP, and memory monitoring. Wire them in via EXTRA_ZEPHYR_MODULES and Kconfig instead of reimplementing their functionality.

How do I test Zephyr modules on native_sim without hardware?

Create a ztest suite under tests/modules/<name>/ that compiles the real module source directly, with CONFIG_ZTEST=y and integration_platforms set to native_sim. Build with west build -b native_sim and run the resulting zephyr.exe, but only for pure-logic modules with no driver calls.

Why is my Zephyr SMF parent state transition not working?

Hierarchical state machines require CONFIG_SMF_ANCESTOR_SUPPORT=y and CONFIG_SMF_INITIAL_TRANSITION=y in Kconfig. Without them, the parent and initial parameters in SMF_CREATE_STATE are silently ignored and the hierarchy does not exist at runtime.

Can I publish to a Zbus channel from an ISR?

No, zbus_chan_pub() is not ISR-safe. Defer the publish from interrupt context using a work queue or k_msgq so the actual channel publication happens in thread context.

When should I update PRD and spec version pins in prj.conf?

Update CONFIG_APP_PRD_VERSION and CONFIG_APP_SPECS_VERSION every time code is re-synced to a new PRD or specs revision, copying the newest Changelog timestamp from each document. These values appear in the boot banner and anchor doc-drift checks.