用途
openspec-onboard 是一个引导式入门(onboarding)技能,目标是带用户走完 OpenSpec 的第一次完整工作流循环。它强调“教学体验”:在用户的真实代码库中完成实际工作,同时解释每一步在做什么。
主要能力
- 预检:检查 OpenSpec 是否已在项目中初始化。
- 任务选择:扫描代码库,寻找小型改进机会,例如 TODO/FIXME/HACK/XXX 注释、缺失的错误处理、没有测试的函数、TypeScript 中的 any 类型、调试残留(console.log、debugger)、缺少校验的用户输入处理等,并查看最近的 git 提交记录。
- 探索演示:简要展示 explore 模式,阅读相关代码、必要时画 ASCII 图、记录注意事项。
- 创建变更:在 openspec/changes/<name>/ 下创建变更容器,包含 proposal.md、design.md、specs/、tasks.md。
- 编写提案:起草 proposal,说明“为什么”和“改什么”,包含 Why、What Changes、Capabilities、Impact 等部分。
- 编写规格:以 Requirement 与 Scenario(WHEN/THEN/AND)格式定义可测试的需求。
- 编写设计:记录技术决策、目标/非目标、权衡。
- 拆解任务:生成带复选框的实现任务清单。
- 实现:逐项实现任务,并在 tasks.md 中勾选完成。
- 归档:将完成的变更移动到 openspec/changes/archive/YYYY-MM-DD-<name>/。
- 收尾:回顾完整循环,并提供命令参考与后续建议。
使用方式
该技能以分阶段引导的方式运行,遵循 EXPLAIN → DO → SHOW → PAUSE 的模式,在探索后、提案草稿后、任务后、归档后等关键节点暂停等待用户确认。
预检命令:
openspec status --json 2>&1 || echo "NOT_INITIALIZED"
若未初始化,提示用户先运行 openspec init,然后回到 /opsx:onboard。
创建变更:
openspec new change "<derived-name>"
保存提案前获取指令:
openspec instructions proposal --change "<name>" --json
创建规格目录:
mkdir -p openspec/changes/<name>/specs/<capability-name>
归档:
openspec archive "<name>"
命令参考:
| 命令 | 作用 |
|---|---|
| /opsx:explore | 在工作前/中思考问题 |
| /opsx:new | 开始新变更,逐步生成产物 |
| /opsx:ff | 快进:一次性创建所有产物 |
| /opsx:continue | 继续已有变更 |
| /opsx:apply | 实现变更中的任务 |
| /opsx:verify | 验证实现与产物一致 |
| /opsx:archive | 归档已完成的变更 |
适用场景
- 首次接触 OpenSpec,希望快速理解其完整变更管理流程的开发者。
- 想在真实代码库中边做边学,而不是看模拟示例的用户。
- 需要一套从想法到实现再到归档的规范化工作节奏的团队或个人。
限制与注意事项
- 需要项目已初始化 OpenSpec,否则流程会停止并提示先运行 openspec init。
- 建议选择小型任务;若用户选择过大的任务,技能会给出软性护栏,建议切片或换任务,但允许用户坚持。
- 实现阶段保持轻量叙述,不过度解释每一行代码。
- 用户中途退出时,变更会保存在 openspec/changes/<name>/,可通过 /opsx:continue 或 /opsx:apply 恢复,不会丢失工作。
- 若用户只想看命令,可直接提供快速参考并优雅退出。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。