Skip to content

การย้ายไปใช้ OPSX

คู่มือนี้ช่วยให้คุณเปลี่ยนผ่านจากขั้นตอนการทำงานแบบเดิมของ OpenSpec ไปสู่ OPSX การย้ายถูกออกแบบมาให้ราบรื่น—ผลงานที่มีอยู่ของคุณจะถูกเก็บรักษาไว้ และระบบใหม่เสนอความยืดหยุ่นที่มากกว่า

มีอะไรเปลี่ยนแปลงบ้าง?

OPSX เข้ามาแทนที่ขั้นตอนการทำงานแบบล็อกเฟสเดิมด้วยแนวทางที่ลื่นไหลและเน้นการกระทำ นี่คือการเปลี่ยนแปลงที่สำคัญ:

ด้านระบบเดิมOPSX
คำสั่ง/openspec:proposal, /openspec:apply, /openspec:archiveค่าเริ่มต้น: /opsx:propose, /opsx:apply, /opsx:sync, /opsx:archive (คำสั่งขั้นตอนการทำงานแบบขยายเป็นตัวเลือกเสริม)
ขั้นตอนการทำงานสร้างผลงานทั้งหมดในครั้งเดียวสร้างแบบเพิ่มทีละส่วนหรือทั้งหมดในครั้งเดียว—ตามที่คุณเลือก
การย้อนกลับมีด่านเฟสที่ยุ่งยากเป็นธรรมชาติ—อัปเดตผลงานใดก็ได้เมื่อใดก็ได้
การปรับแต่งโครงสร้างคงที่ขับเคลื่อนด้วย Schema, ปรับแต่งได้เต็มที่
การกำหนดค่าCLAUDE.md พร้อมเครื่องหมาย + project.mdการกำหนดค่าที่สะอาดใน openspec/config.yaml

การเปลี่ยนแปลงในปรัชญา: งานไม่ได้เป็นเส้นตรง OPSX เลิกแสร้งทำเป็นว่ามันเป็นเช่นนั้น


ก่อนเริ่มต้น

งานที่คุณทำไว้จะปลอดภัย

กระบวนการย้ายข้อมูลถูกออกแบบมาโดยคำนึงถึงการรักษาข้อมูลเดิม:

  • การเปลี่ยนแปลงที่ใช้งานอยู่ใน openspec/changes/ — ถูกเก็บรักษาไว้ทั้งหมด คุณสามารถดำเนินการต่อด้วยคำสั่ง OPSX ได้
  • การเปลี่ยนแปลงที่เก็บถาวรแล้ว — ไม่ถูกแตะต้อง ประวัติของคุณยังคงครบถ้วน
  • ข้อกำหนดหลักใน openspec/specs/ — ไม่ถูกแตะต้อง สิ่งเหล่านี้คือแหล่งข้อมูลที่แท้จริงของคุณ
  • เนื้อหาของคุณใน CLAUDE.md, AGENTS.md เป็นต้น — ถูกเก็บรักษาไว้ เฉพาะบล็อกเครื่องหมาย OpenSpec ที่ถูกลบออก ทุกสิ่งที่คุณเขียนไว้จะยังคงอยู่

สิ่งที่ถูกลบออก

เฉพาะไฟล์ที่จัดการโดย OpenSpec ที่กำลังถูกแทนที่:

สิ่งที่เหตุผล
ไดเรกทอรี/ไฟล์คำสั่งแบบเดิม (legacy slash command)ถูกแทนที่ด้วยระบบทักษะใหม่
openspec/AGENTS.mdตัวกระตุ้นเวิร์กโฟลว์ที่ล้าสมัย
เครื่องหมาย OpenSpec ใน CLAUDE.md, AGENTS.md เป็นต้นไม่จำเป็นอีกต่อไป

ตำแหน่งคำสั่งเดิมแยกตามเครื่องมือ (ตัวอย่าง—เครื่องมือของคุณอาจแตกต่างออกไป):

  • Claude Code: .claude/commands/openspec/
  • Cursor: .cursor/commands/openspec-*.md
  • Windsurf: .windsurf/workflows/openspec-*.md
  • Cline: .clinerules/workflows/openspec-*.md
  • Roo: .roo/commands/openspec-*.md
  • GitHub Copilot: .github/prompts/openspec-*.prompt.md (เฉพาะส่วนขยาย IDE; ไม่รองรับใน Copilot CLI)
  • และอื่นๆ (Augment, Continue, Amazon Q เป็นต้น)

การย้ายข้อมูลจะตรวจจับเครื่องมือที่คุณกำหนดค่าไว้และลบไฟล์เดิมของเครื่องมือเหล่านั้น

รายการที่ลบอาจดูยาว แต่ทั้งหมดนี้เป็นไฟล์ที่ OpenSpec สร้างขึ้นมาแต่เดิม เนื้อหาของคุณเองจะไม่ถูกลบ

สิ่งที่ต้องให้ความสนใจของคุณ

มีไฟล์หนึ่งที่ต้องย้ายข้อมูลด้วยตนเอง:

openspec/project.md — ไฟล์นี้ไม่ถูกลบโดยอัตโนมัติเพราะอาจมีบริบทของโครงการที่คุณเขียนไว้ คุณจะต้อง:

  1. ตรวจสอบเนื้อหา
  2. ย้ายบริบทที่เป็นประโยชน์ไปยัง openspec/config.yaml (ดูคำแนะนำด้านล่าง)
  3. ลบไฟล์เมื่อพร้อม

เหตุผลที่เราทำการเปลี่ยนแปลงนี้:

project.md เดิมเป็นแบบพาสซีฟ—ตัวแทนอาจอ่าน อาจไม่อ่าน หรืออาจลืมสิ่งที่อ่านไป เราพบว่าความน่าเชื่อถือไม่สม่ำเสมอ

บริบทใหม่ของ config.yaml ถูก ฉีดเข้าไปในทุกคำขอวางแผนของ OpenSpec อย่างแอคทีฟ ซึ่งหมายความว่าข้อตกลงของโครงการ สแต็คเทคโนโลยี และกฎของคุณจะปรากฏอยู่เสมอเมื่อ AI กำลังสร้างสิ่งประดิษฐ์ มีความน่าเชื่อถือสูงกว่า

การแลกเปลี่ยน:

เนื่องจากบริบทถูกฉีดเข้าไปในทุกคำขอ คุณจะต้องกระชับ มุ่งเน้นสิ่งที่สำคัญจริงๆ:

  • สแต็คเทคโนยีและข้อตกลงหลัก
  • ข้อจำกัดที่ไม่ชัดเจนที่ AI จำเป็นต้องรู้
  • กฎที่มักถูกละเลยก่อนหน้านี้

ไม่ต้องกังวลว่าจะต้องสมบูรณ์แบบ เรากำลังเรียนรู้ว่าอะไรทำงานได้ดีที่สุดที่นี่ และเราจะปรับปรุงวิธีการฉีดบริบทเมื่อเราทดลอง


การดำเนินการย้ายข้อมูล

ทั้ง openspec init และ openspec update จะตรวจจับไฟล์เดิมและแนะนำคุณตลอดกระบวนการล้างข้อมูลเดียวกัน ใช้คำสั่งที่เหมาะกับสถานการณ์ของคุณ:

  • การติดตั้งใหม่จะใช้โปรไฟล์ core เป็นค่าเริ่มต้น (propose, explore, apply, sync, archive)
  • การติดตั้งที่ย้ายข้อมูลจะเก็บรักษาเวิร์กโฟลว์ที่ติดตั้งไว้ก่อนหน้าของคุณโดยเขียนโปรไฟล์ custom เมื่อจำเป็น

การใช้ openspec init

รันคำสั่งนี้หากคุณต้องการเพิ่มเครื่องมือใหม่หรือกำหนดค่าเครื่องมือที่ตั้งค่าไว้ใหม่:

bash
openspec init

คำสั่ง init จะตรวจจับไฟล์เดิมและแนะนำคุณตลอดกระบวนการล้างข้อมูล:

กำลังอัปเกรดเป็น OpenSpec ใหม่

OpenSpec ตอนนี้ใช้ทักษะของตัวแทน ซึ่งเป็นมาตรฐานที่เกิดขึ้นใหม่ใน
ตัวแทนเขียนโค้ด สิ่งนี้ทำให้การตั้งค่าของคุณง่ายขึ้นในขณะที่รักษาทุกอย่าง
ให้ทำงานเหมือนเดิม

ไฟล์ที่ต้องลบ
ไม่มีเนื้อหาผู้ใช้ที่ต้องเก็บรักษา:
  • .claude/commands/openspec/
  • openspec/AGENTS.md

ไฟล์ที่ต้องอัปเดต
เครื่องหมาย OpenSpec จะถูกลบออก เนื้อหาของคุณจะถูกเก็บรักษาไว้:
  • CLAUDE.md
  • AGENTS.md

ต้องให้ความสนใจของคุณ
  • openspec/project.md
    เราจะไม่ลบไฟล์นี้ อาจมีบริบทโครงการที่เป็นประโยชน์

    openspec/config.yaml ใหม่มีส่วน "context:" สำหรับบริบทการวางแผน
    สิ่งนี้จะรวมอยู่ในทุกคำขอ OpenSpec และทำงานได้
    น่าเชื่อถือกว่าวิธี project.md เดิม

    ตรวจสอบ project.md ย้ายเนื้อหาที่เป็นประโยชน์ไปยังส่วน context ของ config.yaml
    จากนั้นลบไฟล์เมื่อพร้อม

? อัปเกรดและลบไฟล์เดิม? (Y/n)

สิ่งที่เกิดขึ้นเมื่อคุณตอบตกลง:

  1. ไดเรกทอรีคำสั่งแบบเดิมถูกลบออก
  2. เครื่องหมาย OpenSpec ถูกลบออกจาก CLAUDE.md, AGENTS.md เป็นต้น (เนื้อหาของคุณยังคงอยู่)
  3. openspec/AGENTS.md ถูกลบ
  4. ทักษะใหม่ถูกติดตั้งใน .claude/skills/
  5. openspec/config.yaml ถูกสร้างขึ้นพร้อมโครงร่างเริ่มต้น

การใช้ openspec update

รันคำสั่งนี้หากคุณต้องการแค่ย้ายข้อมูลและรีเฟรชเครื่องมือที่มีอยู่เป็นเวอร์ชันล่าสุด:

bash
openspec update

คำสั่ง update จะตรวจจับและลบสิ่งตกค้างเดิม จากนั้นรีเฟรชทักษะ/คำสั่งที่สร้างขึ้นให้ตรงกับโปรไฟล์และการตั้งค่าการจัดส่งปัจจุบันของคุณ

สภาพแวดล้อมแบบไม่โต้ตอบ / CI

สำหรับการย้ายข้อมูลแบบสคริปต์:

bash
openspec init --force --tools claude

แฟล็ก --force จะข้ามคำเตือนและยอมรับการล้างข้อมูลโดยอัตโนมัติ


การย้าย project.md ไปยัง config.yaml

openspec/project.md เดิมเป็นไฟล์มาร์กดาวน์แบบอิสระสำหรับบริบทโครงการ openspec/config.yaml ใหม่มีโครงสร้างและ—ที่สำคัญ—ถูกฉีดเข้าไปในทุกคำขอวางแผน เพื่อให้ข้อตกลงของคุณปรากฏอยู่เสมอเมื่อ AI ทำงาน

ก่อนหน้า (project.md)

markdown
# บริบทโครงการ

นี่คือ TypeScript monorepo ที่ใช้ React และ Node.js
เราใช้ Jest สำหรับการทดสอบและปฏิบัติตามกฎ ESLint ที่เข้มงวด
API ของเราเป็น RESTful และมีเอกสารใน docs/api.md

## ข้อตกลง

- API สาธารณะทั้งหมดต้องรักษาความเข้ากันได้ย้อนหลัง
- คุณสมบัติใหม่ควรรวมการทดสอบ
- ใช้รูปแบบ Given/When/Then สำหรับข้อกำหนด

หลังจากนั้น (config.yaml)

yaml
schema: spec-driven

context: |
  สแต็คเทคโนยี: TypeScript, React, Node.js
  การทดสอบ: Jest พร้อม React Testing Library
  API: RESTful, มีเอกสารใน docs/api.md
  เรารักษาความเข้ากันได้ย้อนหลังสำหรับ API สาธารณะทั้งหมด

rules:
  proposal:
    - รวมแผนย้อนกลับสำหรับการเปลี่ยนแปลงที่มีความเสี่ยง
  specs:
    - ใช้รูปแบบ Given/When/Then สำหรับสถานการณ์
    - อ้างอิงรูปแบบที่มีอยู่ก่อนคิดค้นใหม่
  design:
    - รวมแผนภาพลำดับสำหรับกระแสที่ซับซ้อน

ความแตกต่างหลัก

project.mdconfig.yaml
มาร์กดาวน์แบบอิสระYAML ที่มีโครงสร้าง
ข้อความก้อนเดียวแยกบริบทและกฎต่อสิ่งประดิษฐ์
ไม่ชัดเจนว่าใช้เมื่อใดบริบทปรากฏในทุกสิ่งประดิษฐ์; กฎปรากฏเฉพาะในสิ่งประดิษฐ์ที่ตรงกัน
ไม่มีการเลือกโครงร่างฟิลด์ schema: ที่ชัดเจนตั้งค่าเวิร์กโฟลว์เริ่มต้น

สิ่งที่ควรเก็บ สิ่งที่ควรทิ้ง

เมื่อย้ายข้อมูล ให้เลือกสรร ถามตัวเองว่า: "AI จำเป็นต้องรู้สิ่งนี้สำหรับ ทุก คำขอวางแผนหรือไม่?"

ตัวเลือกที่ดีสำหรับ context:

  • สแต็คเทคโนยี (ภาษา โครงสร้าง ฐานข้อมูล)
  • รูปแบบสถาปัตยกรรมหลัก (monorepo, microservices เป็นต้น)
  • ข้อจำกัดที่ไม่ชัดเจน ("เราไม่สามารถใช้ไลบรารี X เพราะ...")
  • ข้อตกลงสำคัญที่มักถูกละเลย

ย้ายไปที่ rules: แทน

  • การจัดรูปแบบเฉพาะสิ่งประดิษฐ์ ("ใช้ Given/When/Then ในข้อกำหนด")
  • เกณฑ์การตรวจสอบ ("ข้อเสนอต้องรวมแผนย้อนกลับ")
  • สิ่งเหล่านี้ปรากฏเฉพาะสำหรับสิ่งประดิษฐ์ที่ตรงกัน ทำให้คำขออื่นเบาลง

ละทิ้งทั้งหมด

  • แนวปฏิบัติที่ดีทั่วไปที่ AI รู้อยู่แล้ว
  • คำอธิบายที่เยิ่นเย้อที่สามารถสรุปได้
  • บริบททางประวัติศาสตร์ที่ไม่ส่งผลต่อการทำงานปัจจุบัน

ขั้นตอนการย้ายข้อมูล

  1. สร้าง config.yaml (หากยังไม่ได้สร้างโดย init):

    yaml
    schema: spec-driven
  2. เพิ่มบริบทของคุณ (ให้กระชับ—สิ่งนี้จะเข้าไปในทุกคำขอ):

    yaml
    context: |
      บริบทโครงการของคุณอยู่ที่นี่
      มุ่งเน้นสิ่งที่ AI จำเป็นต้องรู้จริงๆ
  3. เพิ่มกฎต่อสิ่งประดิษฐ์ (ไม่บังคับ):

    yaml
    rules:
      proposal:
        - คำแนะนำเฉพาะสำหรับข้อเสนอของคุณ
      specs:
        - กฎการเขียนข้อกำหนดของคุณ
  4. ลบ project.md เมื่อย้ายทุกสิ่งที่เป็นประโยชน์แล้ว

อย่าคิดมาก เริ่มจากสิ่งจำเป็นและปรับปรุง หากคุณสังเกตว่า AI ขาดสิ่งสำคัญ ให้เพิ่มเข้าไป หากบริบทดูเทอะทะ ให้ตัดทอน นี่คือเอกสารที่มีชีวิต

ต้องการความช่วยเหลือ? ใช้พรอมต์นี้

หากคุณไม่แน่ใจวิธีกลั่นกรอง project.md ของคุณ ให้ถามผู้ช่วย AI ของคุณ:

ฉันกำลังย้ายข้อมูลจาก project.md เดิมของ OpenSpec ไปยังรูปแบบ config.yaml ใหม่

นี่คือ project.md ปัจจุบันของฉัน:
[วางเนื้อหา project.md ของคุณที่นี่]

กรุณาช่วยฉันสร้าง config.yaml ที่มี:
1. ส่วน `context:` ที่กระชับ (สิ่งนี้จะถูกฉีดเข้าไปในทุกคำขอวางแผน ดังนั้นให้เก็บไว้ให้แน่น—มุ่งเน้นที่สแต็คเทคโนยี ข้อจำกัดหลัก และข้อตกลงที่มักถูกละเลย)
2. `rules:` สำหรับสิ่งประดิษฐ์เฉพาะ หากเนื้อหาใดเป็นเฉพาะสิ่งประดิษฐ์ (เช่น "ใช้ Given/When/Then" ควรอยู่ในกฎข้อกำหนด ไม่ใช่บริบททั่วไป)

ละทิ้งสิ่งทั่วไปที่โมเดล AI รู้อยู่แล้ว ให้เข้มงวดเรื่องความกระชับ

AI จะช่วยคุณระบุสิ่งที่จำเป็นเทียบกับสิ่งที่สามารถตัดทอนได้


คำสั่งใหม่

ความพร้อมใช้งานของคำสั่งขึ้นอยู่กับโปรไฟล์:

ค่าเริ่มต้น (โปรไฟล์ core):

คำสั่งวัตถุประสงค์
/opsx:proposeสร้างการเปลี่ยนแปลงและสร้างสิ่งประดิษฐ์การวางแผนในขั้นตอนเดียว
/opsx:exploreคิดผ่านแนวคิดโดยไม่มีโครงสร้าง
/opsx:applyดำเนินงานจาก tasks.md
/opsx:archiveสรุปและเก็บถาวรการเปลี่ยนแปลง

เวิร์กโฟลว์ขยาย (การเลือกแบบกำหนดเอง):

คำสั่งวัตถุประสงค์
/opsx:newเริ่มโครงร่างการเปลี่ยนแปลงใหม่
/opsx:continueสร้างสิ่งประดิษฐ์ถัดไป (ทีละรายการ)
/opsx:ffกรอไปข้างหน้า—สร้างสิ่งประดิษฐ์การวางแผนทั้งหมดพร้อมกัน
/opsx:verifyตรวจสอบว่าการดำเนินการตรงกับข้อกำหนด
/opsx:syncผสานข้อกำหนดเดลต้าเข้ากับข้อกำหนดหลัก
/opsx:bulk-archiveเก็บถาวรหลายการเปลี่ยนแปลงพร้อมกัน
/opsx:onboardเวิร์กโฟลว์การเริ่มต้นใช้งานแบบมีคำแนะนำตั้งแต่ต้นจนจบ

เปิดใช้งานคำสั่งขยายด้วย openspec config profile จากนั้นรัน openspec update

การแมปคำสั่งจากเดิม

เดิมเทียบเท่า OPSX
/openspec:proposal/opsx:propose (ค่าเริ่มต้น) หรือ /opsx:new จากนั้น /opsx:ff (ขยาย)
/openspec:apply/opsx:apply
/openspec:archive/opsx:archive

ความสามารถใหม่

ความสามารถเหล่านี้เป็นส่วนหนึ่งของชุดคำสั่งเวิร์กโฟลว์ขยาย

การสร้างสิ่งประดิษฐ์แบบละเอียด:

/opsx:continue

สร้างสิ่งประดิษฐ์ทีละรายการตามการพึ่งพา ใช้สิ่งนี้เมื่อคุณต้องการตรวจสอบแต่ละขั้นตอน

โหมดสำรวจ:

/opsx:explore

คิดผ่านแนวคิดกับพาร์ทเนอร์ก่อนที่จะตัดสินใจเปลี่ยนแปลง


การเข้าใจสถาปัตยกรรมใหม่

จากแบบล็อกเฟสสู่แบบไหล

ขั้นตอนการทำงานเดิมบังคับให้ดำเนินไปอย่างเป็นเส้นตรง:

┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│   PLANNING   │ ───► │ IMPLEMENTING │ ───► │   ARCHIVING  │
│    PHASE     │      │    PHASE     │      │    PHASE     │
└──────────────┘      └──────────────┘      └──────────────┘

ถ้าคุณอยู่ในขั้นตอนการพัฒนาแล้วพบว่าการออกแบบผิด?
แย่หน่อย ด่านเฟสไม่ปล่อยให้คุณย้อนกลับได้ง่ายๆ

OPSX ใช้การกระทำ (actions) ไม่ใช่เฟส:

         ┌───────────────────────────────────────────────┐
         │           ACTIONS (not phases)                │
         │                                               │
         │     new ◄──► continue ◄──► apply ◄──► archive │
         │      │          │           │             │   │
         │      └──────────┴───────────┴─────────────┘   │
         │                    any order                  │
         └───────────────────────────────────────────────┘

กราฟความสัมพันธ์

สิ่งประดิษฐ์ (artifacts) สร้างเป็นกราฟแบบมีทิศทาง ความสัมพันธ์เป็นตัวเปิดใช้งาน ไม่ใช่ด่าน:

                        proposal
                       (root node)

              ┌─────────────┴─────────────┐
              │                           │
              ▼                           ▼
           specs                       design
        (requires:                  (requires:
         proposal)                   proposal)
              │                           │
              └─────────────┬─────────────┘


                         tasks
                     (requires:
                     specs, design)

เมื่อคุณรัน /opsx:continue มันจะตรวจสอบว่าอะไรพร้อมแล้วและเสนอสิ่งประดิษฐ์ถัดไป คุณยังสามารถสร้างสิ่งประดิษฐ์ที่พร้อมหลายรายการในลำดับใดก็ได้

ทักษะกับคำสั่ง

ระบบเดิมใช้ไฟล์คำสั่งเฉพาะเครื่องมือ:

.claude/commands/openspec/
├── proposal.md
├── apply.md
└── archive.md

OPSX ใช้มาตรฐาน skills ที่กำลังเกิดขึ้น:

.claude/skills/
├── openspec-explore/SKILL.md
├── openspec-new-change/SKILL.md
├── openspec-continue-change/SKILL.md
├── openspec-apply-change/SKILL.md
└── ...

ทักษะ (skills) ได้รับการยอมรับในเครื่องมือเขียนโค้ด AI หลายตัวและให้ข้อมูลเมตาที่สมบูรณ์กว่า


การดำเนินการต่อจากการเปลี่ยนแปลงที่มีอยู่

การเปลี่ยนแปลงที่คุณกำลังดำเนินการอยู่ทำงานได้อย่างราบรื่นกับคำสั่ง OPSX

มีการเปลี่ยนแปลงที่ใช้งานอยู่จากขั้นตอนการทำงานเดิม?

/opsx:apply add-my-feature

OPSX อ่านสิ่งประดิษฐ์ที่มีอยู่และดำเนินการต่อจากจุดที่ค้างไว้

ต้องการเพิ่มสิ่งประดิษฐ์เพิ่มเติมในการเปลี่ยนแปลงที่มีอยู่?

/opsx:continue add-my-feature

แสดงสิ่งที่พร้อมสร้างตามสิ่งที่มีอยู่แล้ว

ต้องการดูสถานะ?

bash
openspec status --change add-my-feature

ระบบการกำหนดค่าใหม่

โครงสร้าง config.yaml

yaml
# Required: Default schema for new changes
schema: spec-driven

# Optional: Project context (max 50KB)
# Injected into ALL artifact instructions
context: |
  Your project background, tech stack,
  conventions, and constraints.

# Optional: Per-artifact rules
# Only injected into matching artifacts
rules:
  proposal:
    - Include rollback plan
  specs:
    - Use Given/When/Then format
  design:
    - Document fallback strategies
  tasks:
    - Break into 2-hour maximum chunks

การเลือก Schema

เมื่อกำหนดว่าจะใช้ schema ใด OPSX จะตรวจสอบตามลำดับ:

  1. CLI flag: --schema <name> (ลำดับความสำคัญสูงสุด)
  2. ข้อมูลเมตาของการเปลี่ยนแปลง: .openspec.yaml ในไดเรกทอรีการเปลี่ยนแปลง
  3. การกำหนดค่าโปรเจกต์: openspec/config.yaml
  4. ค่าเริ่มต้น: spec-driven

Schema ที่มีอยู่

Schemaสิ่งประดิษฐ์เหมาะสำหรับ
spec-drivenproposal → specs → design → tasksโปรเจกต์ส่วนใหญ่

แสดงรายการ schema ที่มีทั้งหมด:

bash
openspec schemas

Schema ที่กำหนดเอง

สร้างขั้นตอนการทำงานของคุณเอง:

bash
openspec schema init my-workflow

หรือแยกสาขาจากที่มีอยู่:

bash
openspec schema fork spec-driven my-workflow

ดูรายละเอียดที่ การปรับแต่ง


การแก้ไขปัญหา

"พบไฟล์เดิมในโหมดไม่โต้ตอบ"

คุณกำลังรันในสภาพแวดล้อม CI หรือไม่โต้ตอบ ใช้:

bash
openspec init --force

คำสั่งไม่ปรากฏหลังการย้ายข้อมูล

รีสตาร์ท IDE ของคุณ ทักษะ (skills) จะถูกตรวจจับเมื่อเริ่มต้น

"ไม่รู้จัก ID สิ่งประดิษฐ์ในกฎ"

ตรวจสอบว่าคีย์ rules: ของคุณตรงกับ ID สิ่งประดิษฐ์ของ schema:

  • spec-driven: proposal, specs, design, tasks

รันคำสั่งนี้เพื่อดู ID สิ่งประดิษฐ์ที่ถูกต้อง:

bash
openspec schemas --json

การกำหนดค่าไม่ถูกนำไปใช้

  1. ตรวจสอบให้แน่ใจว่าไฟล์อยู่ที่ openspec/config.yaml (ไม่ใช่ .yml)
  2. ตรวจสอบความถูกต้องของไวยากรณ์ YAML
  3. การเปลี่ยนแปลงการกำหนดค่ามีผลทันที—ไม่จำเป็นต้องรีสตาร์ท

project.md ไม่ได้ถูกย้าย

ระบบตั้งใจเก็บ project.md ไว้เนื่องจากอาจมีเนื้อหาที่คุณกำหนดเอง ตรวจสอบด้วยตนเอง ย้ายส่วนที่มีประโยชน์ไปยัง config.yaml แล้วลบออก

ต้องการดูว่าจะถูกล้างอะไร?

รัน init และปฏิเสธคำขอล้าง—คุณจะเห็นสรุปการตรวจจับทั้งหมดโดยไม่มีการเปลี่ยนแปลงใดๆ


อ้างอิงด่วน

ไฟล์หลังการย้ายข้อมูล

project/
├── openspec/
│   ├── specs/                    # ไม่เปลี่ยนแปลง
│   ├── changes/                  # ไม่เปลี่ยนแปลง
│   │   └── archive/              # ไม่เปลี่ยนแปลง
│   └── config.yaml               # ใหม่: การกำหนดค่าโปรเจกต์
├── .claude/
│   └── skills/                   # ใหม่: ทักษะ OPSX
│       ├── openspec-propose/     # โปรไฟล์หลักเริ่มต้น
│       ├── openspec-explore/
│       ├── openspec-apply-change/
│       ├── openspec-sync-specs/
│       └── ...                   # โปรไฟล์ขยายเพิ่ม new/continue/ff/etc.
├── CLAUDE.md                     # มาร์กเกอร์ OpenSpec ถูกลบ เนื้อหาของคุณถูกเก็บไว้
└── AGENTS.md                     # มาร์กเกอร์ OpenSpec ถูกลบ เนื้อหาของคุณถูกเก็บไว้

สิ่งที่หายไป

  • .claude/commands/openspec/ — ถูกแทนที่ด้วย .claude/skills/
  • openspec/AGENTS.md — ล้าสมัย
  • openspec/project.md — ย้ายไปยัง config.yaml แล้วลบ
  • บล็อกมาร์กเกอร์ OpenSpec ใน CLAUDE.md, AGENTS.md เป็นต้น

ตารางสรุปคำสั่ง

text
/opsx:propose      เริ่มต้นอย่างรวดเร็ว (โปรไฟล์หลักเริ่มต้น)
/opsx:apply        ดำเนินงาน
/opsx:archive      เสร็จสิ้นและเก็บถาวร

# ขั้นตอนการทำงานแบบขยาย (หากเปิดใช้งาน):
/opsx:new          สร้างโครงร่างการเปลี่ยนแปลง
/opsx:continue     สร้างสิ่งประดิษฐ์ถัดไป
/opsx:ff           สร้างสิ่งประดิษฐ์วางแผน

ขอความช่วยเหลือ