Skip to content

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óaKiểuBắt buộcTác dụng
schemastringCóSchema quy trình mà mọi thay đổi trong dự án này tuân theo
contextstringKhôngĐược chèn vào mọi artifact, apply và archive
rulesmap: artifact ID → list of stringsKhôngQuy tắc bổ sung được thêm vào hướng dẫn tích hợp sẵn của một artifact
operationsmap: operation → guidance listKhôngHướng dẫn khuyến nghị cho hoạt động apply và archive
storestringKhôngRoot OpenSpec dự phòng khi openspec/ này chỉ chứa cấu hình
referenceslistKhôngCá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:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

ID 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:

yaml
operations:
  apply:
    guidance:
      - Keep test summaries concise

Chỉ 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:

yaml
references:
  - platform-specs
  - id: billing-specs
    remote: git@github.com:acme/billing-specs.git

Ví dụ ​

Một config.yaml đã điền:

yaml
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 finishing

Tê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.