open-spec-mesh
Verifiedopen-spec-mesh · v0.3.0
Node.js runtime for Open Spec Mesh first-party tools
Install
dsh plugin add open-spec-mesh Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
Open Spec Mesh
Node.js 工具集与 Quick / 人工推动的 SDD 研发规范。旧自动 SDD 生命周期已退出。
前置条件
- Node.js 22.0.0 及以上、兼容的 npm、Git。
- Linux/macOS 宿主配置路径;最低版本使用 Node 22.0.0 + npm 10 验证,不要求安装最新版 npm。
- 已安装 Codex、OpenCode、Claude Code 或 DeepSeek Harness (DSH)。本包不安装这些宿主,不提供模型账号或密钥。
从 npm 公共仓库安装
公共 npm 0.3.0 已发布;以下命令按该版本安装。若使用镜像遇到 E404,请核对 registry,不要把本地打包成功当成发布成功。
# 第一步:安装全局命令,不会自动改动宿主配置。
npm install -g [email protected] --registry=https://registry.npmjs.org/
open-spec-mesh --version
# 第二步:预览并显式配置 Codex。
open-spec-mesh install --host codex --skip-tools --dry-run
open-spec-mesh install --host codex --skip-tools
预期命令版本为 0.3.0。安装后新开宿主会话,让其读取最新 Rules、Role 和 Skill。
--skip-tools 只安装核心工具包,不额外安装 Research 工具,不宣称 Research MCP 可用,也不启用 System One。npm 安装没有擅改 Home 的 postinstall;全局命令安装与宿主配置安装是两步。
选择宿主与配置目录
# 默认分别使用 ~/.codex、~/.config/opencode、~/.claude、~/.dsh。
open-spec-mesh install --host codex --skip-tools
open-spec-mesh install --host opencode --skip-tools
open-spec-mesh install --host claude --skip-tools
open-spec-mesh install --host dsh --skip-tools
# 自定义配置根;有空格的路径必须加引号。
open-spec-mesh install --host codex --host-home "/path/to/codex home" --skip-tools
在 DeepSeek Harness (DSH) 中作为插件安装
open-spec-mesh 提供 DSH Bundle 预设,要求 DSH 0.2.1-rc.4 或更新版本(engines.dsh 为 >=0.2.1-rc.4):预设挂载的 @deepseek-ai/dsh-tool-subagent-control/list-agents 子路径从该版本才提供。DSH 读取 engines.dsh,低于该范围会拒绝安装或激活插件。
# 把 Bundle 挂载到某个 profile。参数是 registry 包名或本地仓库路径,
# DSH 会把它转发给 profile 目录内的 pnpm。
dsh plugin --profile <profile> add open-spec-mesh
# 卸载挂载。
dsh plugin --profile <profile> remove open-spec-mesh
重启该 profile 后,在预设选择器中选择 「sdd」;该预设带 L0/L1/L2 自动定级与渐进式门控。
DSH 的两个入口分工不同、互不重叠:
| 命令 | 写入 | 不写入 |
|---|---|---|
dsh plugin --profile <profile> add open-spec-mesh |
该 DSH profile 的插件集合,由此提供 「sdd」 预设 | 项目 AGENTS.md;$DSH_HOME/skills 下的技能 |
osm install --host dsh |
目标项目 AGENTS.md 的受管章节;sdd-* 技能装到 $DSH_HOME/skills |
agents/*.md(DSH 不读);Research 工具(DSH 的 MCP 在 preset 内配置);--with-laya 直接失败 |
角色路由:预设里的 osm:role-routes section 把 ~/.dsh/osm-models.json($DSH_HOME 可覆盖基目录)渲染成「角色 → provider / model / reasoning_effort」表,模型派发时用原生 subagent 工具显式传这三项。osm models list|doctor|set|reset|export|import 统一管理该配置(支持通过 osm models export [filepath] 导出与 osm models import <filepath> [--force] 还原);osm 自身不校验 allowlist,超出 DSH 会话允许范围的路由由 DSH 拒绝,而不是由 osm 拒绝。
默认目录同时支持 CODEX_HOME、OPENCODE_CONFIG_DIR、CLAUDE_CONFIG_DIR。Codex 兼容参数 --codex-home 保留。具体宿主启动方法见 运行指南。
不安装全局命令,直接运行
npm exec --yes --registry=https://registry.npmjs.org/ [email protected] -- \
open-spec-mesh install --host codex --skip-tools
源码或本地打包安装
# 在仓库目录执行;全局命令链接源码目录,不要移除该目录。
npm ci
npm install -g .
open-spec-mesh install --host codex --skip-tools
# 或生成便携 tarball;依赖安装仍需 npm 网络或缓存。
npm pack
npm install -g ./open-spec-mesh-0.3.0.tgz
open-spec-mesh install --host codex --skip-tools
升级、卸载和常见问题
# 更新全局命令后,仍需显式升级宿主受管内容。
npm install -g open-spec-mesh@latest --registry=https://registry.npmjs.org/
open-spec-mesh install --host codex --skip-tools --dry-run
open-spec-mesh install --host codex --skip-tools
# 仅卸载全局命令;不会删除已配置的宿主资产。
npm uninstall -g open-spec-mesh
- 升级前备份受影响的受管路径与配置。安装失败会事务回滚,但成功后不会自动长期保留备份。
- 升级整体替换受管 Skill,清除旧 Python 脚本和缓存,应用已知旧 Skill/角色退役;已识别受管 Python MCP 改为 Node 并定向清理 helper/cache。
- 保全用户模型/provider、凭据、自定义 MCP、无关 Python 和未受管资产;同名未受管资产冲突时拒绝覆盖,不应删除整个
~/.codex。 - 命令找不到时检查 npm 全局 bin 的
PATH,Linux/macOS 通常为$(npm prefix -g)/bin。权限问题优先使用用户自有的 Node/global prefix,不自动用 sudo 改写宿主配置。 - 发布者操作见 npm 发布指南;登录、打包、dry-run、真实上传是不同状态。
osm 短命令(自 0.1.0 起随发布提供)
公共 npm 0.1.0 已同时提供 osm 与 open-spec-mesh。0.1.0 及以后的发布版本都带 osm,不需要本地源码安装;osm 是更短的等价入口,不是另一种 registry 升级。
osm --dry-run # 默认 Codex 安装预览,不写 Home
osm # 等价于 open-spec-mesh install --host codex --skip-tools
osm --help
osm --version
osm install --host opencode --skip-tools
不带参数的 osm 是用户显式触发的安装,不是 npm postinstall;原 open-spec-mesh 无参数仍显示帮助,完整命令兼容。真实 npm 发布需要明确的发布意图和目标版本;“发布 0.0.2”等自然语言指令会自动使用 $sdd-release,无需改写为技能口令。仅准备材料时不上传。
当前工作流程
- Quick:当前 Agent 连续调查、实现、测试、自审;陌生本地事实优先 Explorer,外部文档/版本优先 Librarian,减少主线程重复遍历。
- SDD:需求 → 整体设计 → 执行计划(任务拆分与任务设计)→ 实现 → 交付,每阶段人工确认;用户可明确一次授权多个阶段。
- 单任务或串行由当前 Agent 在当前工作区执行;只有用户确认并行时才使用 Worker 和独立 worktree。
- 设计不冻结文件、函数或编码步骤;执行者可处理必要局部调整,实质目标、验收、安全或重要公共方案变化才请用户确认。
- 新代理使用
role_desc,如explorer_module_flow;配置角色 ID 保持不变。 - 文档/检查辅助人工评审,不自动推进阶段;真实测试和安全检查仍必须处理。
SDD 技能使用引导
选择 SDD 模式后,Main 会说明当前阶段、给出可直接使用的技能调用示例,并在阶段完成时提示下一步;不会因为技能执行成功自动推进。
| 阶段或需要 | 技能 | 示例 |
|---|---|---|
| 按需初始化文档骨架 | $sdd-init |
$sdd-init 为当前项目建立文档骨架 |
| 需求 | $sdd-req |
$sdd-req 为这个需求创建或完善 Change |
| 整体设计 | $sdd-design |
$sdd-design 需求已确认,编写整体设计 |
| 执行计划:任务拆分与任务设计 | $sdd-plan |
$sdd-plan 整体设计已确认,编写执行计划,包含任务拆分和任务设计 |
| 实现与验证 | $sdd-do |
$sdd-do 执行计划已确认,按计划串行实现并验证 |
| 交付与确认后归档 | $sdd-close |
$sdd-close 汇总实现结果和验证,先供我确认 |
已有文档骨架无需重复初始化。旧结构迁移用 $sdd-migrate;持久化研究/长期 ADR 按需用 $sdd-research;执行诊断仅在用户要求时用 $sdd-diagnose;版本发布材料用 $sdd-release,真实上传需要明确发布意图及本次目标版本,自然语言同样有效。自然语言授权也有效,调用技能不等于确认所有后续阶段。若技能未安装或当前会话不可用,Main 应如实说明并引导安装或加载。
原 $sdd-change 已拆分,需求技能现名为 $sdd-req;sdd-change 与旧名 sdd-requirements 均不再作为受管技能安装,旧 sdd-change/scripts/ 入口已删除。升级时,已登记的旧目录先保存到 open-spec-mesh/retired-skills/ 下的私有 ZIP,再退出技能发现;归档包含本地修改,不自动清理。未登记的用户目录保留并提示,不按名称删除。
日常命令
open-spec-mesh --help
open-spec-mesh init-project --root /path/to/project
open-spec-mesh new-change feature --root /path/to/project
# 人工确认后再进入相应阶段:
open-spec-mesh ensure-design CHG-YYYYMMDD-feature --root /path/to/project
open-spec-mesh new-task CHG-YYYYMMDD-feature capability --root /path/to/project
open-spec-mesh validate-docs --root /path/to/project
new-change 只写需求;new-task 写宏观 Markdown 与人可读计划,不生成机器执行状态。observe/diagnose 只收集证据。发布辅助命令只写材料,不代替真实 npm 上传或部署。
可选服务与开发验证
Research 工具另需 CONTEXT7_API_KEY / TAVILY_API_KEY;在调用环境中导出自己的值,再去掉 --skip-tools 安装。npm 包不包含用户凭据,npm 安装不写入密钥。
System One 默认关闭;自托管 GPU 服务、专属 Python CI 与依赖已退出。仅保留 Node.js HTTP/MCP 客户端连接外部兼容推理服务,不下载模型、不启动本地推理、不调用 Python。受管 bridge 当前只支持 Codex。
在源码目录执行:
npm ci
npm run validate:core
npm run validate:full
full 另需真实宿主 CLI、Docker、Mermaid 与 Research 工具。缺失前置条件如实失败,core 全绿不等于外部宿主或推理服务已经全绿。第一方工具、测试和自动化均为 Node.js,Python 源文件审计坚持零例外。
协作效率优化(自 0.0.3 起随发布提供)
保留完整文档结构,减少重复内容而非删除 C01/C02/C03、独立 Task 或 Delivery。委派先判断净收益,串行由 Main 连续完成;设计只约束稳定的行为、安全和公共契约,内部实现可自主调整。详见 协作边界。
# 源码目录:只读核对安装文件,不证明活动会话已加载
node bin/open-spec-mesh.js inspect-host --host codex --format json
# 六种场景及归一化动作检查,不调用模型或授权阶段
node bin/open-spec-mesh.js evaluate-collaboration --list
node bin/open-spec-mesh.js evaluate-collaboration --report PRIVATE_REPORT --scenario local-fix
# 可读报告;只有显式strict选项才让证据不完整退出3
node bin/open-spec-mesh.js evaluate-collaboration --report PRIVATE_REPORT --scenario local-fix --format md --fail-on-incomplete
# 维护共享规则副本;项目专用AGENTS内容不被替换
npm run check:workflow
npm run sync:workflow
人工流程没有历史 Graph 时,旧首轮通过/返工指标显示不适用或未知,不显示虚假零返工。用量包括已观测 Main/子会话,按 session/slice 去重,完整总量仅在覆盖完整时提供;金额和真实节省尚未验证。可选人工返工标注与固定基线对照见 评估方案。文件核验、trace检查、确定性fixture和真实模型评测不是同一层证据。这些文档自 0.0.3 起随发布包提供;安装或升级本包不会自动升级已有的 Host Home。
评估默认JSON并保持既有退出行为:incomplete也可能退出0;自动化可用 --fail-on-incomplete 令其退出3,动作检查失败为1、参数错误为2。即使 supported_checks_passed,语义质量与人工验收仍未验证。
新目标默认Quick,不因“端到端”或加载sdd-do升级SDD;Quick无正式Change/Task/Delivery链,直接交付摘要。保留完整结构只约束既有文档和明确SDD目标;单任务短写保留必要目标/约束/验收。按需迁移旧回退:node bin/open-spec-mesh.js install --host codex --migrate-legacy-agent-defaults(仅旧gpt-5.6-luna,不改Main或其他自定义模型)。本机真实模型验证:node scripts/verify_codex_live.js --run --output PRIVATE_DIR,可能计费,不是默认检查。