Skip to content

การตั้งค่าโครงการ (config.yaml) ​

ทุกฟิลด์ของ openspec/config.yaml: schema, บริบท และกฎที่โครงการนี้วางแผนไว้

ตำแหน่ง ​

โครงการ OpenSpec แต่ละโครงการเก็บไฟล์ config ไว้ที่ openspec/config.yaml ในไดเรกทอรีรากของโครงการ

ฟิลด์ ​

คีย์ชนิดข้อมูลบังคับผลกระทบ
schemastringใช่workflow schema ที่การเปลี่ยนแปลงของโครงการนี้เป็นไปตาม
contextstringไม่ถูกแทรกเข้าไปในทุก artifact, apply และ archive
rulesmap: ID artifact → รายการ stringไม่กฎเพิ่มเติมที่เพิ่มเข้าไปในคำแนะนำในตัวของ artifact หนึ่ง
operationsmap: operation → รายการคำแนะนำไม่คำแนะนำเชิงที่ปรึกษาสำหรับงาน apply และ archive
storestringไม่OpenSpec root สำรองเมื่อ openspec/ นี้เป็นเพียง config
referenceslistไม่Store ที่ spec ถูกจัดทำดัชนีเข้าสู่คำแนะนำ

ฟิลด์ที่ไม่ถูกต้องจะไม่ทำให้คำสั่งล้มเหลว แต่ละฟิลด์จะถูกตรวจสอบแยกกัน และค่าที่ไม่ถูกต้องจะถูกทิ้งพร้อมกับคำเตือน ไฟล์ที่อ่านไม่ได้หรือไม่ใช่ YAML ที่ถูกต้องจะถูกเพิกเฉยพร้อมกับคำเตือน ยกเว้นโดย openspec validate ซึ่งจะออกด้วยรหัส 1 เพื่อให้ CI ตรวจจับได้

สิ่งที่ควรเขียนในฟิลด์เหล่านี้อธิบายไว้ใน การตั้งค่าโครงการ

schema ​

workflow schema ที่การเปลี่ยนแปลงทั้งหมดในโครงการนี้เป็นไปตาม ค่าที่ถูกต้องคือ spec-driven หรือชื่อ schema ที่โครงการกำหนดขึ้น รัน openspec schemas เพื่อแสดงรายการชื่อ schema ที่มีอยู่

context ​

ข้อความอิสระที่ถูกแทรกเข้าไปในคำแนะนำของทุก artifact และส่งให้กับ apply และ archive ขีดจำกัดคือ 50KB และค่าที่ใหญ่กว่านั้นจะถูกเพิกเฉยพร้อมกับคำเตือน

rules ​

กฎเพิ่มเติมสำหรับ artifact หนึ่ง ซึ่งเพิ่มเข้าไปในคำแนะนำในตัวของ schema:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

ID artifact ไม่ถูกจำกัดเฉพาะชื่อในตัว ดังนั้น artifact จาก schema ที่กำหนดเองจึงใช้เป็นคีย์ได้

operations ​

คำแนะนำเชิงที่ปรึกษาสำหรับวิธีการดำเนินงาน apply และ archive ซึ่งแยกจากกฎของ artifact:

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

อ่านเฉพาะ apply และ archive เท่านั้น

store ​

store id ที่ใช้เป็น OpenSpec root ซึ่งจะถูกใช้เฉพาะเมื่อไดเรกทอรี openspec/ นี้เป็นเพียง config (ไม่มี specs/ หรือ changes/) เป็นการสำรอง ไม่ใช่การแทนที่ ลำดับการทำงานเต็มอยู่ที่ การหา root

references ​

store id ที่ spec ของโครงการนี้อ้างอิงอยู่ ดัชนีของ spec ของแต่ละ store (id, สรุป, คำสั่ง fetch) จะถูกเพิ่มเข้าไปในผลลัพธ์คำแนะนำ เนื้อหาของ spec จะไม่ถูกฝังแนบ และการหา root จะไม่ถูกกระทบ รายการแต่ละรายการเป็น store id หรือ map ที่มี id และแหล่ง clone เพิ่มเติมที่เลือกได้ชื่อ remote:

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

ตัวอย่าง ​

config.yaml ที่กรอกข้อมูลแล้ว:

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

ชื่อดั้งเดิม ​

openspec/config.yml จะถูกอ่านเป็นชื่อแทนเมื่อไม่มี config.yaml อยู่ เมื่อมีทั้งสองไฟล์อยู่ config.yaml จะมีลำดับสูงกว่าและ config.yml จะถูกเพิกเฉย openspec init จะสร้าง config.yaml