간략한 요약
OpenSpec 1.0 릴리스에서는 config.yaml을 통해 OpenSpec 워크플로를 팀의 요구에 맞게 조정할 수 있다고 언급했습니다. 사용자 정의 스키마는 이 아이디어를 더욱 발전시켜 워크플로를 구성하는 것뿐만 아니라 생성되는 아티팩트 자체를 정의하여 생성 순서와 내용을 결정합니다.
- OpenSpec은 기본 스키마인
spec-driven을 제공하며,proposal.md,specs.md,design.md,tasks.md의 네 가지 아티팩트를 순차적으로 생성합니다. - 사용자 정의 스키마를 통해 프로젝트의 특성에 맞는 다양한 워크플로를 구축할 수 있습니다.
- 최소주의 스키마는 범위가 명확하고 위험이 낮은 변경에 적합하며, 이벤트 중심 아키텍처 스키마는 비동기 메시징 시스템에 적합합니다.
- OpenSpec CLI를 사용하여 새로운 스키마를 생성하거나 기존 스키마를 포크하여 사용자 정의할 수 있습니다.
사용자 정의 스키마
OpenSpec의 사용자 정의 스키마는 팀의 요구에 맞게 워크플로를 조정할 수 있도록 합니다. 기본 스키마인 spec-driven은 제안, 사양, 설계, 작업 순으로 아티팩트를 생성하지만, 모든 프로젝트에 적합하지 않을 수 있습니다. 사용자 정의 스키마를 통해 아티팩트의 내용과 생성 순서를 정의하여 프로젝트의 특성에 맞는 워크플로를 구축할 수 있습니다.
예제 1: 최소주의 스키마
최소주의 스키마는 범위가 명확하고 위험이 낮은 변경에 적합합니다. 이 스키마는 specs.md와 tasks.md 두 가지 아티팩트만 생성합니다. 사양은 Given/When/Then 형식의 사용자 스토리로 작성되고, 작업은 사양에서 직접 파생됩니다. 기술 스택 및 프로젝트 제약 조건과 같은 세부 정보는 config.yaml에 저장되므로 스키마는 간결하게 유지하면서도 컨텍스트를 유지할 수 있습니다.
예제 2: 이벤트 중심 아키텍처
이벤트 중심 아키텍처 스키마는 비동기 메시징을 기반으로 구축된 복잡한 시스템에 적합합니다. 이 스키마는 일반적인 사양-설계-작업 흐름 전에 검색 및 모델링 단계를 추가합니다. 워크플로는 이벤트 스토밍으로 시작하여 도메인 이벤트, 명령, 액터 및 바운디드 컨텍스트를 캡처합니다. 다음으로 이벤트 모델링은 Mermaid 다이어그램을 사용하여 상호 작용 및 타임라인을 시각화합니다. 그런 다음 AsyncAPI 사양 생성을 통해 검증된 asyncapi.yaml을 생성한 후 구현 작업을 생성합니다.
사용자 정의 스키마 시작하기
OpenSpec CLI를 사용하여 새로운 스키마를 생성하거나 기존 스키마를 포크하여 사용자 정의할 수 있습니다.
- 새로운 스키마 생성:
openspec schema init my-workflow --description "My custom workflow" --artifacts "specs,design,tasks" - 기존 스키마 포크:
openspec schema fork minimalist또는openspec schema fork minimalist my-lightweight
또한 openspec-schemas 저장소에서 직접 스키마 폴더를 복사하여 프로젝트의 openspec/schemas/ 디렉토리에 넣을 수도 있습니다. 스키마를 활성화하려면 config.yaml 파일에서 schema 필드를 설정합니다.
스키마 내부 이해하기
스키마는 schema.yaml 파일과 템플릿을 포함하는 templates/ 디렉토리로 구성된 폴더입니다. schema.yaml 파일은 아티팩트, 출력 경로, 템플릿 및 종속성을 정의합니다. 각 아티팩트는 생성할 내용, 사용할 템플릿 및 생성하기 전에 필요한 사항을 선언합니다. apply 블록은 OpenSpec에게 구현을 제어하는 아티팩트와 진행 상황을 추적하는 파일을 알려줍니다.

