Cấu hình dự án (config.yaml)
Mọi trường của openspec/config.yaml: schema, ngữ cảnh và quy tắc mà dự án này sử dụng.
Vị trí
Mỗi dự án OpenSpec lưu tệp cấu hình tại openspec/config.yaml, ở thư mục gốc của dự án.
Các trường
| Khóa | Kiểu | Bắt buộc | Tác dụng |
|---|---|---|---|
schema | string | Có | Schema quy trình mà mọi thay đổi trong dự án này tuân theo |
context | string | Không | Được chèn vào mọi artifact, apply và archive |
rules | map: artifact ID → list of strings | Không | Quy tắc bổ sung được thêm vào hướng dẫn tích hợp sẵn của một artifact |
operations | map: operation → guidance list | Không | Hướng dẫn khuyến nghị cho hoạt động apply và archive |
store | string | Không | Root OpenSpec dự phòng khi openspec/ này chỉ chứa cấu hình |
references | list | Không | Các store có spec được lập chỉ mục vào hướng dẫn |
Các trường không hợp lệ không bao giờ khiến lệnh thất bại. Mỗi trường được xác thực riêng biệt, và giá trị không hợp lệ sẽ bị loại bỏ kèm theo cảnh báo. Tệp không thể đọc được hoặc không phải YAML hợp lệ sẽ bị bỏ qua kèm theo cảnh báo, ngoại trừ lệnh openspec validate, lệnh này thoát với mã 1 để CI có thể phát hiện.
Nội dung cần viết trong các trường này được đề cập tại Cấu hình dự án.
schema
Schema quy trình mà mọi thay đổi trong dự án này tuân theo. Giá trị hợp lệ là spec-driven hoặc tên schema mà dự án định nghĩa. Chạy openspec schemas để liệt kê các tên schema có sẵn.
context
Văn bản tự do được chèn vào hướng dẫn của mọi artifact và cung cấp cho apply và archive. Giới hạn là 50KB, và giá trị lớn hơn sẽ bị bỏ qua kèm theo cảnh báo.
rules
Quy tắc bổ sung cho một artifact, được thêm vào hướng dẫn tích hợp sẵn của schema:
rules:
proposal:
- Keep proposals under 500 wordsID artifact không bị giới hạn ở các tên tích hợp sẵn, do đó artifact từ schema tùy chỉnh hoạt động như khóa.
operations
Hướng dẫn khuyến nghị về cách thực hiện apply và archive, tách biệt với quy tắc artifact:
operations:
apply:
guidance:
- Keep test summaries conciseChỉ apply và archive được đọc.
store
ID store được sử dụng làm root OpenSpec, chỉ được tham chiếu khi thư mục openspec/ này chỉ chứa cấu hình (không có specs/ hoặc changes/). Đây là phương án dự phòng, không bao giờ là ghi đè. Toàn bộ cấp bậc là Phân giải root.
references
ID store có spec mà công việc của dự án này tham chiếu. Chỉ mục của các spec của từng store (id, tóm tắt, lệnh fetch) được thêm vào đầu ra hướng dẫn. Nội dung spec không bao giờ được nhúng trực tiếp, và việc phân giải root không bao giờ bị ảnh hưởng. Một mục là store id hoặc một map với id và nguồn clone remote tùy chọn:
references:
- platform-specs
- id: billing-specs
remote: git@github.com:acme/billing-specs.gitVí dụ
Một config.yaml đã điền:
schema: spec-driven
context: |
Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in Spanish
rules:
proposal:
- Keep proposals under 500 words
- Always state what is out of scope
tasks:
- Break tasks into chunks of max 2 hours
operations:
apply:
guidance:
- Keep test summaries concise
archive:
guidance:
- Summarize the archive outcome before finishingTên kế thừa
openspec/config.yml được đọc như một bí danh khi config.yaml không tồn tại. Khi cả hai tệp tồn tại, config.yaml được ưu tiên và config.yml bị bỏ qua. openspec init tạo config.yaml.