自定义 Schema
Schema 定义了工件及其依赖关系。你可以创建自定义 Schema 来匹配你的团队工作方式。
Schema 基础
每个 Schema 定义:
- 工件 - 变更中创建的文档
- 依赖关系 - 工件之间的依赖关系
示例 Schema
TDD Schema
# openspec/schemas/tdd.yaml
name: tdd-driven
description: Test-driven development workflow
artifacts:
- name: test
description: Test specification
content: tests/
dependencies: []
- name: implementation
description: Implementation code
content: src/
dependencies: [test]
- name: documentation
description: User documentation
content: docs/
dependencies: [implementation]
Mobile Schema
# openspec/schemas/mobile.yaml
name: mobile-driven
description: Mobile app development workflow
artifacts:
- name: user-stories
description: User stories
content: user-stories/
dependencies: []
- name: wireframes
description: Wireframes
content: wireframes/
dependencies: [user-stories]
- name: ui-spec
description: UI specification
content: ui-spec.md
dependencies: [wireframes]
- name: implementation
description: Implementation
content: src/
dependencies: [ui-spec]
创建自定义 Schema
1. 创建 Schema 文件
mkdir -p openspec/schemas
touch openspec/schemas/custom.yaml
2. 编辑 Schema
# openspec/schemas/custom.yaml
name: custom-workflow
description: 自定义工作流
artifacts:
- name: research
description: Research findings
content: research.md
dependencies: []
- name: proposal
description: Proposal
content: proposal.md
dependencies: [research]
- name: design
description: Design document
content: design.md
dependencies: [proposal]
- name: prototype
description: Prototype
content: prototype/
dependencies: [design]
- name: tests
description: Test specifications
content: tests/
dependencies: [prototype]
- name: implementation
description: Implementation
content: src/
dependencies: [tests]
3. 应用 Schema
# 使用新 schema 初始化
openspec init --schema custom
# 或动态切换
openspec schemas use custom
Schema 命令
# 列出可用 schema
openspec schemas list
# 查看 schema 详情
openspec schemas show custom-workflow
# 使用新 schema
openspec schemas use custom-workflow
# 创建新 schema
openspec schemas create my-workflow
Schema 最佳实践
- 保持简单 - 只包含必要的工件
- 明确依赖 - 明确定义工件顺序
- 记录规则 - 为每个工件添加规则
- 版本控制 - 将 schema 文件纳入版本控制