dsh-embedded-workbench

skilltested: passnpmMIT

Embedded C/C++ firmware development toolbox: agents and skills covering FreeRTOS, interrupts, NVM storage, Keil MDK, ARMCLANG, HardFault triage, state machines, architecture, and LVGL patterns.

下载量 / Downloads
3,809
依赖体积 / node_modules
7.35 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-embedded-workbench

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

嵌入式工作台

<p align="center"><a href="README.en-US.md">English</a> · <strong>中文</strong></p>

<p align="center">

<a href="https://github.com/AmethystLuna/embedded-workbench/actions/workflows/dsh-bundle.yml"><img src="https://github.com/AmethystLuna/embedded-workbench/actions/workflows/dsh-bundle.yml/badge.svg" alt="CI"></a>

<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a>

<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-%3E%3D20-blue.svg" alt="Node 20+"></a>

<a href="https://github.com/hashgraph-online/hol-guard"><img src="https://img.shields.io/badge/HOL%20Guard-passing-00a67e" alt="HOL Guard"></a>

<a href="https://afdian.com/a/amethystluna"><img src="https://img.shields.io/badge/%E7%88%B1%E5%8F%91%E7%94%B5-Afdian-946CE6" alt="在爱发电上赞助"></a>

</p>

嵌入式 C/C++ 固件开发工具箱:覆盖 FreeRTOS、中断、NVM 存储、Keil MDK(AC5/AC6)、ARMCLANG、HardFault 分析、状态机、架构原则与 LVGL 陷阱。

跨平台:支持 Claude Code、Codex CLI、Cursor、Kimi CLI、OpenCode、ZCode、DeepSeek Harness (dsh)。基于 Agent Skills 开放标准构建。

组件

代理 (4)

代理 · 说明

architecture-steward · 只读规划:设计包、模块边界、切片拆分

design-reviewer · 设计文档事实核查:逐条核验声称与代码库事实

execution-worker · 计划 → 审批 → 实施循环,含编译验证

quality-coordinator · 实现审查:Bug 发现、合规检查、结束完整性

技能 (8)

技能 · 说明

embedded-workbench · 引导技能:工作流、策略、子代理映射、主动建议、跨平台工具映射、文档模板

debug-methodology · 8 条调试铁律、修复准则、迭代调试案例研究

embedded-firmware-dev · FreeRTOS、中断、NVM 存储、异步生命周期、边界分析、架构原则、LVGL 陷阱

keil-mdk-build · UV4 CLI、ARM Compiler 5/6、.map 分析、合并打包、构建诊断

c-cpp-dev · C/C++ 代码生成、风格、内存布局、重构

state-machine-design · 状态模型、重试、超时、转换门控、实现模式

hardfault-triage · 处理器异常分类:故障寄存器、栈帧、PC 定位源码、根因分类

fact-check · 声称核查回退:逐条对照代码库核实 API 名、文件路径、枚举值、数量与机制可行性。logicprobe 未安装时由 Plan Verification Gate 使用

logicprobe(文档与计划声称核查技能)已拆分为独立插件,见下方[其他插件推荐](#其他插件推荐)。未安装时,Plan Verification Gate 回退到本插件自带的 fact-check 技能。只有行为与模型类声称会降级为人工确认。

技能内容大多来自作者个人嵌入式与固件开发的工作经验,按实际工程踩坑与约束沉淀,而非泛泛的模型生成内容。

深度参考

embedded-firmware-dev、debug-methodology、state-machine-design、c-cpp-dev 包含深度参考或代码示例。内容包括 12 条架构原则、嵌入式模式(GIF 定时器安全、状态锁存、异步生命周期)、LVGL 陷阱、7 轮迭代调试案例研究、状态机实现模式,以及嵌入式 C 专项(volatile MMIO、链接器段、ISR 安全路径)。

安装

Claude Code 安装(推荐)

在 Claude Code 的 ~/.claude/settings.json 中添加 marketplace:

{
  "extraKnownMarketplaces": {
    "embedded-workbench": {
      "source": { "source": "github", "repo": "AmethystLuna/embedded-workbench" }
    }
  }
}

然后通过 CLI 安装:

claude plugin install embedded-workbench@embedded-workbench

Claude Code 手动安装

git clone https://github.com/AmethystLuna/embedded-workbench.git ~/.claude/plugins/dev/embedded-workbench

然后在 ~/.claude/settings.json 中启用:

{
  "enabledPlugins": {
    "embedded-workbench@dev": true
  }
}

DeepSeek Harness (dsh)

原生 dsh 支持以 cordis 插件 bundle 的形式提供,位于仓库根,由根 package.json 声明。

这个 bundle 做三件事:

1. 注册技能。 技能遵循 Agent Skills 开放标准,由 dsh 的 skill-filesystem provider 原样发现,不需要额外代码。

2. 注入门禁。 每个 agent 会话的第一个模型步骤会收到一段精简后的首步门禁,内容是 Plan Verification Gate 加上下文预算规则。它由 enabled 控制,默认开启。这是 Claude SessionStart hook 在 dsh 上的对应物。载荷里为什么不再有 1% Rule 和 Red Flags,见[设计取舍与反馈](#设计取舍与反馈)。

3. 注册目录条目。 模型可见的目录条目(cordis_inspect)始终注册。4 个自定义 agent 有意不移植,因为 dsh 原生的 subagent 工具已经覆盖并行多 agent 工作。

安装(原生 bundle,推荐):

# 从 npm 安装(包名 dsh-embedded-workbench)
dsh plugin --profile web add dsh-embedded-workbench
# 或从 GitHub 源码安装
dsh plugin --profile web add "github:AmethystLuna/embedded-workbench"
# 未全局安装 dsh 时可用 npx
npx -p @deepseek-ai/dsh dsh plugin --profile web add dsh-embedded-workbench

装完重启 profile。运行 dsh --profile web --dump-config 应看到 id: embedded-workbench 且 enabled: true。更多方式(纯技能拷贝、项目级等)见 [.dsh/INSTALL.md](.dsh/INSTALL.md)。

DSH 安装注意:npm 包名为 dsh-embedded-workbench,没有 scope。在 web profile 的 package.json 中,依赖键与 dsh.profile.bundles 必须都写 dsh-embedded-workbench。写错时 dsh 加载器找不到 node_modules/dsh-embedded-workbench,启动会失败。

使用

技能按需加载,不依赖注入:

  • 调用 Skill("embedded-workbench") 加载工作流与工程策略。技能内部按风险比例选择轻量或完整路径,不强制固定阶段。
  • 领域技能在任务匹配其 Use when 描述时自动激活。描述里的 NOT 子句用于防止误触发,例如纯格式化不会加载 c-cpp-dev。
  • Agent 在检测到状态机、行为声称或多模块任务时,主动建议验证、对抗探测和并行子代理。
  • 无需手动配置 CLAUDE.md。

插件还会在会话首个模型步骤注入一段精简门禁,约 400 token。它只含两件事。第一件是 Plan Verification Gate。第二件是上下文预算规则:看不到读数就不要猜;工作量大且无信号时问用户,由用户决断。设 enabled: false 可完全关闭。

设计取舍与反馈

这一版做了一次基于证据的回退。理由写在下面,欢迎质疑。

背景:我们逐个核对了 8 个受支持 harness 的官方文档,Codex 还对照了源码。这次核对推翻了一个此前想当然的前提:8 家里有 7 家根本不向模型暴露任何上下文预算读数。这 7 家是 Claude Code、Copilot CLI、Cursor、OpenCode、Kimi CLI、ZCode 和 dsh,它们只把 token 数给用户界面。只有 Codex 提供一个 get_context_remaining 工具,而且默认关闭。也就是说,"让模型按预算自行判断要不要委派或切窗口"这件事本身没有依据。

因此分两步处理:

1. 不再用"关掉注入"控制成本,改为"瘦身"。 首步门禁现在只保留两块。第一块是 Plan Verification Gate:未核查就必须告诉用户,不许静默跳过。第二块是上下文预算规则:看不到读数就不要猜;工作量大且无信号时问用户。载荷从约 1,400 token 降到约 400 token,实测 Claude 侧降 72%,dsh 侧降 58%。它现在默认开启。

2. 验证门禁保留,强制执行脚手架退场。 原来的 1% Rule 与 9 行 Red Flags 表从注入载荷中移除。它们属于"强制纪律",而社区实证显示这类提示会被能力较强的模型字面执行,产生僵硬阶段、多余提问,以及五行任务拉起六七个 agent 的 10–15× 开销。相关反馈见 obra/superpowers#1120、openai/codex#22005、#20366。完整表格仍保留在 Skill("embedded-workbench") 正文里:需要纪律时纪律还在,只是不再对所有人默认施压。工作流选择也从固定 agent 串场改为按风险比例。

有意保留的:Plan Verification Gate 的语义没有削弱。它的回退链是 logicprobe → 未安装则用内置 fact-check → 两者都没用就必须告知用户。按 Superpowers Lite 的原则,安全、权限与验证门禁属于应当保留的一类,按比例裁掉的应该是流程仪式。

已知的不确定:各 harness 的预算接口变动很快,我们只在 2026-09-25 核对过一次。[platform-tool-mapping.md](skills/embedded-workbench/references/platform-tool-mapping.md) 里凡厂商未公开的格子都明确标为 UNVERIFIED,没有靠类比填空。

有不同意见? 这些取舍是可讨论的判断,不是定论,尤其是"Red Flags 从载荷退场"和"门禁默认开"两条。欢迎到 [Issues](ht

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::23,最后更新 2026-11-05

Links

GitHub · Homepage · npm

Same category