跳到主要内容

自定义 Schema

Schema 定义了工件及其依赖关系。你可以创建自定义 Schema 来匹配你的团队工作方式。

Schema 基础​

每个 Schema 定义:

  1. 工件 - 变更中创建的文档
  2. 依赖关系 - 工件之间的依赖关系

示例 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 最佳实践​

  1. 保持简单 - 只包含必要的工件
  2. 明确依赖 - 明确定义工件顺序
  3. 记录规则 - 为每个工件添加规则
  4. 版本控制 - 将 schema 文件纳入版本控制

下一步​