用途
OpenSpec Schema 是一套用于创建和管理自定义工作流模式的命令行工具。模式(schema)定义工作流中存在哪些工件(artifacts)以及它们之间的依赖关系。默认的 spec-driven 模式提供 proposal -> specs -> design -> tasks 的流程,而自定义模式则允许使用不同的工作流。
主要能力
通过 openspec schema 子命令管理自定义工作流模式:
- 从零创建新模式:
openspec schema init my-workflow
# 交互式:提示填写描述、工件、默认值
# 非交互式:
openspec schema init rapid --description "Rapid iteration" --artifacts "proposal,tasks" --default
创建后会生成 openspec/schemas/my-workflow/,其中包含 schema.yaml 和 templates/。
- 分叉(fork)现有模式:
openspec schema fork spec-driven my-workflow
复制 spec-driven 模式以便自定义。
- 验证模式:
openspec schema validate my-workflow
# 或验证全部:
openspec schema validate
- 检查模式解析来源:
openspec schema which spec-driven
# 显示:package、project 或 user 来源
openspec schema which --all
模式结构
openspec/schemas/<name>/
├── schema.yaml # 工件定义与依赖
└── templates/
├── proposal.md # 每个工件的模板
├── specs.md
├── design.md
└── tasks.md
示例 schema.yaml:
name: research-first
artifacts:
- id: research
generates: research.md
requires: []
- id: proposal
generates: proposal.md
requires: [research]
- id: tasks
generates: tasks.md
requires: [proposal]
使用方式
完成模式创建后,可将其用于 openspec-new:/opsx:new my-change --schema my-workflow,或在 openspec-config(openspec/config.yaml)中设为默认。
适用场景
- 用户需要自定义工作流(例如以研究为先、快速迭代)。
- 用户提到“创建模式”“自定义工作流”“分叉 spec-driven 模式”。
- 调试模式解析问题(
openspec schema which)。 - 验证自定义模式的结构。
前置条件
需要安装 OpenSpec CLI(参见 openspec-install)。
模式优先级
- Project:
openspec/schemas/<name>/(本地,受版本控制) - User:
~/.local/share/openspec/schemas/<name>/(全局) - Package:内置模式(例如 spec-driven)
输出
在 openspec/schemas/<name>/ 下生成包含 schema.yaml 和 templates 的自定义模式。
限制与疑难排查
- “Schema not found”:用
openspec schemas查看可用模式;用openspec schema which <name>检查解析来源。 - 验证错误:运行
openspec schema validate <name> --verbose查看详情。 - 规则中出现未知工件 ID:用
openspec schemas --json查看每个模式的工件 ID。