Added
- The Open-CMSIS-Pack/cmsis-agent skills ship in the extension, opt-in. The 21 skills of cmsis-agent (project setup, device debug/trace knowledge, CMSIS-Pack debug authoring) are vendored verbatim under
skills/cmsis-agent/at a commit pinned inskills/cmsis-agent.lock.json(npm run skills:sync; upstream has no tags or releases), listed in a generatedskills/catalog.json, and installed only when selected — the new settingcmsis-developer-assistant.installedSkills(application scope, default["cmsis-debug-live"]) holds the picks, the new command Select Agent Skills (also step 2 of the first-run setup) edits them. The selection is applied on activation and whenever the setting changes, so it follows Settings Sync. - One slash command per category instead of 21. Generated router skills
cmsis-project,cmsis-bring-upandcmsis-packdispatch to their member skills; picking a router installs the members withuser-invocable: false, which keeps them out of the/menu in Claude Code, VS Code and Copilot CLI while the model can still invoke them by description. The$namecross-references in each skill are recorded as dependencies and installed (hidden) alongside whatever is picked, so a skill never arrives without the skills it hands over to. - Skills are now written to
~/.claude/skills/as well, when a Claude home exists — Claude Code reads only its own directory, not~/.agents/skills/, so earlier releases' skill was invisible to it.$COPILOT_HOME/skills/is written only when that variable is set (the Copilot CLI then ignores~/.agents/skills); the unconditional~/.copilot/skills/copy is no longer written and the old one is cleaned up. - Skill directories are marked and replaced, not merged. Every directory the extension installs carries
.cmsis-developer-assistant.json; only marked directories (or the pre-markercmsis-debug-live) are ever replaced or removed, a user's own skill of the same name is left alone and reported, and a re-sync replaces the directory so files dropped from the bundle do not linger.src/test/skillCatalog.test.tspins the catalog to the directories on disk and the lock's content hash;src/test/skillInstaller.test.tscovers the marker rules in temp directories. - MCP
instructionsatinitialize. The server now tells clients up front that these tools drive a live Cortex-M session and that a runtime investigation should start by invoking thecmsis-debug-liveAgent Skill — target awareness, the session-status gate, breakpoint strategy, step-and-inspect, fault decode, root cause — orget_debug_instructionsin harnesses that do not load skills.start_debuggingsays the same in one sentence. (Upstream #129.) - Debugger-first rule in the skill and in the
get_debug_instructionsguide. Do not start a runtime investigation by addingprintfover UART/ITM, LED toggles or trace macros — on a Cortex-M that is a rebuild, a reflash and a reset per hypothesis, and it moves the timing you are observing. Halt and inspect instead; reach foradd_logpointonly knowing it still stops the core per hit. The skill description gained the trigger vocabulary (runtime bugs, faults, crashes, hangs, failing tests, wrong/null values, unexpected output) so skill-aware harnesses pick it for the right prompts. (Upstream #129.) - Contract tests for that guidance (
src/test/debugSkillGuidance.test.ts): the trigger words, the debugger-first wording, and that the skill, the MCP instructions and the instructions guide stay consistent. (Upstream #130.) - Opt-in live trigger evaluation,
npm run test:skill-trigger-agent: runs a real Copilot CLI session in a scratch worktree carrying only the skill, with an embedded prompt, and assertscmsis-debug-liveis its first tool call. Deliberately outsidenpm test— needs an authenticated Copilot CLI, spends credits, and a model's first move is not deterministic. (Upstream #130.)
Changed
- Commands consolidated. Configure Agents and Skills (
cmsis-developer-assistant.configure) runs the two-step flow — agents, then skills — that the first-run prompt shows; Select Agent Skills runs step 2 alone. Show Agent Selection Popup and Configure Agents are removed; Reset Popup State stays but is hidden from the palette. The first-run flag moved topopupShown.v3so existing users see the skills step once. scripts/**no longer ships in the VSIX.
Fixed
- The first-run agent setup picker came back on every activation until something was selected. Dismissing it (Esc, focus loss) now counts as an answer; manual setup stays available via Configure Agents and Skills. (Upstream #115.)
Full changelog: https://github.com/MatthiasHertelArm/CMSIS-Developer-Assistant/blob/v2.3.0/CHANGELOG.md