ทักษะ
ทักษะ OpenSpec ทุกตัว: อาร์กิวเมนต์, สิ่งที่สร้างขึ้น, และสิ่งที่ตอบกลับ
ทักษะมีสองชุด:
- Core: ติดตั้งโดยค่าเริ่มต้น เป็นลูปการวางแผนหลัก
- Optional: ติดตั้งเฉพาะเมื่อคุณเพิ่มเข้ามา ผ่าน Profiles
ทักษะทุกตัวคาดหวังโปรเจกต์ที่ใช้ OpenSpec อยู่แล้ว ก่อนขั้นตอนแรกที่เขียนอะไรลงไป ทักษะจะตรวจสอบรูทที่แก้ไขแล้ว (resolved root) ถ้าไม่มีรูท สิ่งที่เกิดขึ้นขึ้นอยู่กับวิธีที่ทักษะถูกเรียก:
- Auto-selected: เอเจนต์ของคุณเลือกทักษะเอง โดยไม่ได้ระบุชื่อ OpenSpec มันจะละทิ้ง OpenSpec และตอบคำขอของคุณตามปกติ เหมือนกับว่า OpenSpec ไม่ได้ติดตั้งไว้
- Explicit OpenSpec request: คุณระบุชื่อ OpenSpec, ระบุชื่อทักษะ, หรือรันคำสั่งของมัน มันจะหยุดก่อนเขียนและถามว่าจะดำเนินการอย่างไร: ให้รัน
openspec initที่นี่, ระบุสโตร์ด้วย--store <id>, หรือดำเนินการต่อโดยไม่ใช้ OpenSpec มันจะรอคำตอบจากคุณ
คำสั่งจะอยู่ในกรณีที่สองเสมอ โปรเจกต์ที่ openspec/config.yaml ระบุสโตร์ที่เครื่องนี้แก้ไขไม่ได้ (ไม่ได้ลงทะเบียน, หรือบรรทัด store: ผิดรูปแบบ) จะไม่ถูกปฏิบัติเหมือนโปรเจกต์ที่ยังไม่ได้เริ่มต้นใช้งาน: ทักษะจะหยุดและแสดงข้อผิดพลาดของสโตร์พร้อมวิธีแก้ไข ไม่มีทักษะใดสร้างไดเรกทอรี openspec/ ขึ้นมาเองในกรณีใดๆ รายการด้านล่างอธิบายว่าทักษะแต่ละตัวทำอะไรเมื่อมีรูทอยู่แล้ว
| ทักษะ | งาน | ประเภท |
|---|---|---|
| openspec-explore | คิดทบทวนไอเดียก่อนที่จะกลายเป็นข้อเสนอการเปลี่ยนแปลง | Core |
| openspec-propose | สร้างข้อเสนอการเปลี่ยนแปลงพร้อมartefacts การวางแผนทั้งหมดในขั้นตอนเดียว | Core |
| openspec-apply-change | นำงานในข้อเสนอการเปลี่ยนแปลงมาปฏิบัติ | Core |
| openspec-update-change | แก้ไขแผนของข้อเสนอการเปลี่ยนแปลง | Core |
| openspec-sync-specs | รวมการอัปเดตสเปกของข้อเสนอการเปลี่ยนแปลงเข้าใน specs/ | Core |
| openspec-archive-change | ย้ายข้อเสนอการเปลี่ยนแปลงที่เสร็จแล้วไปยังที่เก็บถาวร | Core |
| openspec-new-change | เริ่มข้อเสนอการเปลี่ยนแปลงเป็นโครงร่างเปล่า | Optional |
| openspec-continue-change | สร้างartefacts การวางแผนชิ้นถัดไปทีละชิ้น | Optional |
| openspec-ff-change | สร้างข้อเสนอการเปลี่ยนแปลงพร้อมartefacts ทั้งหมดที่การปฏิบัติต้องการ ในครั้งเดียว | Optional |
| openspec-verify-change | ตรวจสอบว่าการปฏิบัติตรงกับแผน | Optional |
| openspec-bulk-archive-change | เก็บถาวรข้อเสนอการเปลี่ยนแปลงหลายรายการพร้อมกัน | Optional |
| openspec-onboard | เรียนรู้เวิร์กโฟลว์โดยทำข้อเสนอการเปลี่ยนแปลงจริงตั้งแต่ต้นจนจบ | Optional |
แต่ละรายการด้านล่างจะระบุทักษะที่เป็นเจ้าของขั้นตอนถัดไป เมื่อโปรไฟล์ของคุณไม่รวมทักษะนั้นไว้ ไฟล์ที่ติดตั้งจะไม่ระบุชื่อมัน: การส่งมอบจะกลายเป็นคำสั่ง openspec ที่เทียบเท่า หรือคำขอธรรมดาถึงคุณ และบรรทัดที่มีอยู่เพื่อชี้ไปยังทักษะที่ขาดหายจะไม่ถูกเขียนขึ้นเลย ดังนั้นทักษะที่คุณมีจะส่งมอบให้กับทักษะที่คุณมีเสมอ ชุดที่คุณได้คือ Profiles
openspec-explore
คิดผ่านไอเดียก่อนที่มันจะกลายเป็นข้อเสนอการเปลี่ยนแปลง
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | หัวข้อ: ไอเดีย ปัญหา การเปรียบเทียบ หรือชื่อของข้อเสนอการเปลี่ยนแปลงที่มีอยู่เพื่อสำรวจในบริบท หากไม่ได้ระบุอะไร จะเข้าสู่โหมดสำรวจ |
| สร้าง | ไม่มีอะไรโดยค่าเริ่มต้น อ่านและตรวจสอบเท่านั้น เมื่อร้องขอ จะบันทึกข้อมูลเชิงลึก: ข้อเสนอการเปลี่ยนแปลงใหม่ภายใต้ openspec/changes/<name>/ หรือการอัปเดต proposal, design, specs หรือ tasks ของอันที่มีอยู่ ไม่เขียนโค้ด |
| การตอบสนอง | บทสนทนาเปิดที่ไม่ต้องมีผลลัพธ์ เมื่อความคิดตกผลึก จะสรุปปัญหา แนวทาง คำถามที่เปิดอยู่ และขั้นตอนถัดไป และเสนอที่จะบันทึกไว้ คุณตัดสินใจ การนำไปใช้งานไม่เคยเริ่มที่นี่ |
openspec-propose
สร้างข้อเสนอการเปลี่ยนแปลงและสร้างอาร์ติแฟกต์การวางแผนทั้งหมดในขั้นตอนเดียว
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อแบบ kebab-case (add-dark-mode) หรือคำอธิบายทั่วไป ถามหากคุณไม่ระบุทั้งสองอย่าง |
| สร้าง | openspec/changes/<name>/ พร้อมทุกอาร์ติแฟกต์ที่สคีมากำหนด ตามลำดับการพึ่งพา (spec-driven: proposal, spec deltas, design, tasks) ไม่เขียนโค้ด |
| การตอบสนอง | อาร์ติแฟกต์ที่สร้างขึ้น พร้อมสำหรับการตรวจสอบ และขั้นตอนถัดไป หยุดตรงนั้น การนำไปใช้งานรอ openspec-apply-change |
openspec-apply-change
นำงานของข้อเสนอการเปลี่ยนแปลงไปใช้งาน โดยไล่ตามรายการจนเสร็จหรือถูกบล็อก
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง (add-auth) ไม่บังคับ หากเป้าหมายกำกวม จะแสดงรายการข้อเสนอการเปลี่ยนแปลงที่ใช้งานอยู่และขอให้คุณเลือก |
| สร้าง | โค้ด: การเปลี่ยนแปลงขั้นต่ำที่แต่ละงานต้องการ ในไฟล์โปรเจกต์ของคุณ ในข้อเสนอการเปลี่ยนแปลง จะทำเครื่องหมายงานที่เสร็จแล้ว (- [ ] เป็น - [x]) ในไฟล์ที่ติดตามซึ่งระบุโดย sourcePath และ line แบบ one-based สคีมาอาจติดตามงานข้ามหลายไฟล์ |
| การตอบสนอง | ความคืบหน้าต่องาน จากนั้นจำนวนรวม (N/M งานเสร็จสิ้น) เสร็จทั้งหมด: แนะนำ openspec-archive-change ถูกบล็อกโดยอาร์ติแฟกต์ที่ขาดหาย: ชี้ไปที่ openspec-continue-change หรือไปที่ openspec status และ openspec instructions เมื่อทักษะนั้นไม่ได้ติดตั้ง (โปรไฟล์หลักไม่รวมไว้) งานไม่ชัดเจนหรือข้อผิดพลาด: หยุดและถาม |
openspec-update-change
แก้ไขอาร์ติแฟกต์การวางแผนที่มีอยู่ของข้อเสนอการเปลี่ยนแปลง และทำให้สอดคล้องกัน
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง ไม่บังคับ พร้อมการแก้ไขที่คุณต้องการ หากไม่ได้ระบุการแก้ไข จะทำการตรวจสอบความสอดคล้อง: อาร์ติแฟกต์ถูกตรวจสอบซึ่งกันและกันเพื่อหาความขัดแย้ง ช่องว่าง และความซ้ำซ้อน |
| สร้าง | แก้ไขไฟล์อาร์ติแฟกต์ที่มีอยู่แล้ว ข้อยกเว้นหนึ่ง: สำหรับอาร์ติแฟกต์ที่เขียนเป็น glob เช่น specs/**/*.md ที่มีไฟล์อย่างน้อยหนึ่งไฟล์แล้ว สามารถเพิ่มไฟล์คู่หูที่ขาดหายได้เมื่อคุณยืนยันเส้นทาง อาร์ติแฟกต์ที่ยังไม่มีไฟล์เป็นหน้าที่ของ openspec-continue-change หากไม่มีทักษะนั้น (โปรไฟล์หลักไม่รวมไว้) จะชี้ไปที่ openspec status และ openspec instructions แทน ไม่เขียนโค้ด |
| การตอบสนอง | แสดงการแก้ไขที่เสนอแต่ละรายการและเขียนเฉพาะหลังจากคุณยืนยัน ครั้งละหนึ่งอาร์ติแฟกต์ จบด้วยสิ่งที่แก้ไขและขั้นตอนถัดไป การนำไปใช้งานรอ openspec-apply-change |
openspec-sync-specs
รวมการอัปเดต spec ของข้อเสนอการเปลี่ยนแปลงเข้าใน specs/ โดยไม่เก็บถาวร
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง ไม่บังคับ คุณยังสามารถระบุชุดย่อยของ delta specs ของมัน และเฉพาะชุดนั้นที่จะซิงค์ |
| สร้าง | แก้ไขหรือสร้าง openspec/specs/<capability-path>/spec.md สำหรับแต่ละ delta spec โดยรวมข้อกำหนดที่เพิ่ม แก้ไข ลบ และเปลี่ยนชื่อเข้าใน spec หลัก ไม่เขียนโค้ด |
| การตอบสนอง | สรุปต่อ capability ของข้อกำหนดที่เพิ่ม แก้ไข ลบ หรือเปลี่ยนชื่อ หลังจาก spec ที่อัปเดตผ่านการตรวจสอบ ข้อเสนอการเปลี่ยนแปลงยังคงใช้งานอยู่ การเก็บถาวรจะรอ openspec-archive-change |
openspec-archive-change
ย้ายข้อเสนอการเปลี่ยนแปลงที่เสร็จสิ้นไปยังที่เก็บถาวร
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง ไม่บังคับ |
| สร้าง | ย้ายโฟลเดอร์ข้อเสนอการเปลี่ยนแปลงไปยัง openspec/changes/archive/YYYY-MM-DD-<name>/ (ไม่เพิ่มวันที่หากชื่อขึ้นต้นด้วยวันที่อยู่แล้ว) ด้วยการอนุมัติของคุณ จะซิงค์ delta specs ที่ค้างอยู่ก่อน เมื่อติดตั้ง openspec-sync-specs แล้ว จะรันเวิร์กโฟลว์นั้น มิฉะนั้น จะรวม delta specs เข้าใน spec หลักเอง ไม่เขียนโค้ด |
| การตอบสนอง | เตือนและถามก่อนเก็บถาวรเมื่อมีอาร์ติแฟกต์หรืองานที่ไม่สมบูรณ์ และถามว่าจะซิงค์หรือไม่เมื่อมี delta specs จบด้วยสรุป: ชื่อ สคีมา ตำแหน่งที่เก็บถาวร สถานะการซิงค์ spec และคำเตือนใด ๆ |
openspec-new-change
เริ่มข้อเสนอการเปลี่ยนแปลงเป็นโครงร่างว่างเปล่า
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อแบบ kebab-case (add-user-auth) หรือคำอธิบายทั่วไป พร้อมชื่อสคีมาเฉพาะสำหรับเวิร์กโฟลว์ที่ไม่ใช่ค่าเริ่มต้น ถามว่าคุณต้องการสร้างอะไรหากคุณไม่ระบุทั้งสองอย่าง |
| สร้าง | openspec/changes/<name>/ เป็นโครงร่างว่างเปล่า: ยังไม่มีอาร์ติแฟกต์ ไม่เขียนโค้ด |
| การตอบสนอง | ชื่อและตำแหน่งของโครงร่าง ลำดับอาร์ติแฟกต์ของเวิร์กโฟลว์ สถานะ (0/N เสร็จสิ้น) และเทมเพลตของอาร์ติแฟกต์แรก การร่างอาร์ติแฟกต์รอ openspec-continue-change |
openspec-continue-change
สร้างอาร์ติแฟกต์การวางแผนถัดไปในข้อเสนอการเปลี่ยนแปลง ครั้งละหนึ่งรายการ
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง ไม่บังคับ หากยังกำกวม จะขอให้คุณเลือกจากรายการที่แก้ไขล่าสุด |
| สร้าง | อาร์ติแฟกต์ถัดไปที่พร้อมเพียงรายการเดียวตามลำดับของสคีมา เขียนลงในโฟลเดอร์ข้อเสนอการเปลี่ยนแปลง หนึ่งอาร์ติแฟกต์ต่อการรัน ไม่เขียนโค้ด |
| การตอบสนอง | อาร์ติแฟกต์ที่สร้างขึ้น ความคืบหน้า (N จาก M เสร็จสิ้น) และอาร์ติแฟกต์ที่ถูกปลดล็อก เมื่อการวางแผนเสร็จสมบูรณ์ จะแจ้ง การนำไปใช้งานย้ายไปที่ openspec-apply-change |
openspec-ff-change
สร้างข้อเสนอการเปลี่ยนแปลงและทุกอาร์ติแฟกต์การวางแผนที่การนำไปใช้งานต้องการในรอบเดียว
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อแบบ kebab-case หรือคำอธิบายทั่วไป ถามหากคุณไม่ระบุทั้งสองอย่าง หากข้อเสนอการเปลี่ยนแปลงที่ระบุมีอยู่แล้ว จะแนะนำให้ทำต่อแทน |
| สร้าง | openspec/changes/<name>/ และทุกอาร์ติแฟกต์การวางแผนที่การนำไปใช้งานต้องการ ตามลำดับการพึ่งพา (spec-driven: proposal, specs, design, tasks) โดยไม่รวมเฉพาะอาร์ติแฟกต์ที่ทำเครื่องหมายว่าข้ามหรือมีเงื่อนไข ไม่เขียนโค้ด |
| การตอบสนอง | ชื่อและตำแหน่งของข้อเสนอการเปลี่ยนแปลง อาร์ติแฟกต์แต่ละรายการที่สร้างขึ้น และอาร์ติแฟกต์ที่มีเงื่อนไขที่ข้ามและเหตุผล หยุดตรงนั้น การนำไปใช้งานรอ openspec-apply-change |
openspec-verify-change
ตรวจสอบว่าการนำไปใช้งานตรงกับอาร์ติแฟกต์ของข้อเสนอการเปลี่ยนแปลง
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ชื่อข้อเสนอการเปลี่ยนแปลง ไม่บังคับ เมื่อกำกวมจะถาม โดยแสดงข้อเสนอการเปลี่ยนแปลงที่มีอาร์ติแฟกต์ tasks |
| สร้าง | ไม่มีอะไร อ่านอาร์ติแฟกต์ของข้อเสนอการเปลี่ยนแปลงและ codebase การตรวจสอบเป็นแบบรายงานเท่านั้น |
| การตอบสนอง | รายงาน: scorecard สำหรับ Completeness, Correctness และ Coherence จากนั้นปัญหา CRITICAL, WARNING และ SUGGESTION พร้อมคำแนะนำ และการประเมินความพร้อมในการเก็บถาวรครั้งสุดท้าย ไม่เปลี่ยนแปลงอะไรและไม่เก็บถาวร |
openspec-bulk-archive-change
เก็บถาวรข้อเสนอการเปลี่ยนแปลงหลายรายการพร้อมกัน
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ไม่มี แสดงรายการข้อเสนอการเปลี่ยนแปลงที่ใช้งานอยู่และขอให้คุณเลือกจำนวนเท่าใดก็ได้ พร้อมตัวเลือกทั้งหมด หากไม่มีรายการที่ใช้งานอยู่ จะแจ้งและหยุด |
| สร้าง | openspec/changes/archive/YYYY-MM-DD-<name>/ ต่อข้อเสนอการเปลี่ยนแปลงที่เก็บถาวร (ชื่อที่มีวันที่อยู่แล้วจะคงคำนำหน้าไว้) delta specs ของแต่ละรายการซิงค์ก่อนผ่าน openspec-sync-specs ไม่เขียนโค้ด |
| การตอบสนอง | ตารางสถานะต่อข้อเสนอการเปลี่ยนแปลงและการยืนยันครั้งเดียวสำหรับทั้งชุด จากนั้นสรุปที่เก็บถาวร ข้าม และล้มเหลว พร้อมผลการซิงค์ spec เมื่อข้อเสนอการเปลี่ยนแปลงสองรายการแตะ spec เดียวกัน จะตรวจสอบ codebase และซิงค์ delta ที่นำไปใช้งานแล้วจากเก่าไปใหม่ |
openspec-onboard
เรียนรู้เวิร์กโฟลว์โดยทำข้อเสนอการเปลี่ยนแปลงจริงหนึ่งรายการตั้งแต่ต้นจนจบ
| ข้อกำหนด | คำอธิบาย |
|---|---|
| อาร์กิวเมนต์ | ไม่มี สแกน codebase ของคุณหางานเริ่มต้นเล็ก ๆ และขอให้คุณเลือกหนึ่งรายการหรืออธิบายของคุณเอง |
| สร้าง | ข้อเสนอการเปลี่ยนแปลงจริงสำหรับงานที่เลือก ทีละอาร์ติแฟกต์ จากนั้นโค้ดจริงเมื่อคุณยืนยันการนำไปใช้งาน เก็บถาวรข้อเสนอการเปลี่ยนแปลงในตอนท้าย |
| การตอบสนอง | การเดินชมแบบบรรยายของวงจรทั้งหมดพร้อมหยุดรอข้อมูลของคุณ: สำรวจ สร้าง สร้างแต่ละอาร์ติแฟกต์ นำไปใช้งาน เก็บถาวร จบด้วยการสรุปและชี้ไปที่ openspec-propose ใช้เวลาประมาณ 15 ถึง 20 นาที |