คำสั่ง
นี่คือเอกสารอ้างอิงสำหรับคำสั่งแบบสแลช (slash commands) ของ OpenSpec คำสั่งเหล่านี้จะถูกเรียกใช้งานในอินเทอร์เฟซแชทของตัวช่วยเขียนโค้ด AI ของคุณ (เช่น Claude Code, Cursor, Devin Desktop)
สำหรับรูปแบบการทำงานและคำแนะนำว่าควรใช้คำสั่งใดเมื่อใด โปรดดูที่ Workflows สำหรับคำสั่ง CLI โปรดดูที่ CLI
หน้าเอกสารเหล่านี้ใช้ /opsx:<command> เป็นชื่อมาตรฐาน อย่างไรก็ตาม เครื่องมือบางตัวอาจสะกดแตกต่างกัน — เช่น Cursor และ GitHub Copilot ลงทะเบียน /opsx-propose ส่วน Codex ใช้ $openspec-propose — ดังนั้นโปรดตรวจสอบ How To Invoke สำหรับเครื่องมือของคุณ ไฟล์ที่ OpenSpec สร้างขึ้นจะใช้รูปแบบที่ถูกต้องอยู่แล้ว
การอ้างอิงอย่างรวดเร็ว
เส้นทางด่วนเริ่มต้น (โปรไฟล์ core)
| คำสั่ง | วัตถุประสงค์ |
|---|---|
/opsx:propose | สร้างการเปลี่ยนแปลงและสร้างเอกสารวางแผนในขั้นตอนเดียว |
/opsx:explore | พิจารณาแนวคิดก่อนตัดสินใจทำการเปลี่ยนแปลง |
/opsx:apply | ดำเนินการตามงานจากการเปลี่ยนแปลง |
/opsx:update | แก้ไขเอกสารวางแผนของการเปลี่ยนแปลงและรักษาความสอดคล้องกัน |
/opsx:sync | รวมสเปคส่วนเพิ่มเติม (delta specs) เข้ากับสเปคหลัก |
/opsx:archive | เก็บถาวรการเปลี่ยนแปลงที่เสร็จสมบูรณ์แล้ว |
คำสั่งสำหรับเวิร์กโฟลว์แบบขยาย (เลือกเวิร์กโฟลว์ที่กำหนดเอง)
| คำสั่ง | วัตถุประสงค์ |
|---|---|
/opsx:new | เริ่มต้นโครงร่างการเปลี่ยนแปลงใหม่ |
/opsx:continue | สร้างอาร์ติแฟกต์ถัดไปโดยขึ้นอยู่กับความสัมพันธ์ระหว่างอาร์ติแฟกต์ |
/opsx:ff | Fast-forward: สร้างเอกสารวางแผนทั้งหมดพร้อมกัน |
/opsx:verify | ตรวจสอบว่าการดำเนินการตรงตามอาร์ติแฟกต์หรือไม่ |
/opsx:bulk-archive | เก็บถาวรการเปลี่ยนแปลงหลายรายการพร้อมกัน |
/opsx:onboard | บทเรียนแนะนำทีละขั้นตอนตลอดกระบวนการทำงาน |
โปรไฟล์เริ่มต้นทั่วโลกคือ core เพื่อเปิดใช้งานคำสั่งสำหรับเวิร์กโฟลว์แบบขยาย ให้รันคำสั่ง openspec config profile, เลือกเวิร์กโฟลว์ที่ต้องการ แล้วรัน openspec update ในโปรเจกต์ของคุณ
Command Reference
/opsx:propose
สร้างการเปลี่ยนแปลงใหม่และสร้างเอกสารวางแผนในขั้นตอนเดียว นี่คือคำสั่งเริ่มต้นเริ่มต้นในโปรไฟล์ core
Syntax:
/opsx:propose [change-name-or-description]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name-or-description | No | ชื่อแบบ kebab-case หรือคำอธิบายการเปลี่ยนแปลงด้วยภาษาธรรมดา |
What it does:
- สร้าง
openspec/changes/<change-name>/ - สร้างเอกสารที่จำเป็นก่อนการนำไปใช้ (สำหรับ
spec-driven: proposal, specs, design, tasks) - หยุดเมื่อการเปลี่ยนแปลงพร้อมสำหรับการใช้
/opsx:apply
Example:
You: /opsx:propose add-dark-mode
AI: Created openspec/changes/add-dark-mode/
✓ proposal.md
✓ specs/ui/spec.md
✓ design.md
✓ tasks.md
Ready for implementation. Run /opsx:apply.Tips:
- ใช้คำสั่งนี้สำหรับเส้นทาง end-to-end ที่เร็วที่สุด
- หากต้องการควบคุมเอกสารทีละขั้นตอน ให้เปิดใช้งาน expanded workflows และใช้
/opsx:new+/opsx:continue
/opsx:explore
เริ่มที่นี่เมื่อคุณไม่แน่ใจ Explore คือคู่คิดที่ไม่มีความเสี่ยง: อ่านโค้ดเบสของคุณ เปรียบเทียบตัวเลือก และขัดเกลาไอเดียที่คลุมเครือให้เป็นแผนที่เป็นรูปธรรมก่อนที่การเปลี่ยนแปลงใดๆ จะเกิดขึ้น มีอยู่ในโปรไฟล์เริ่มต้น สำหรับกรณีศึกษาเต็มรูปแบบและตัวอย่างเพิ่มเติม ดูคู่มือ Explore First
คิดผ่านไอเดีย ตรวจสอบปัญหา และทำให้ข้อกำหนดชัดเจนก่อนตัดสินใจทำการเปลี่ยนแปลง
Syntax:
/opsx:explore [topic]Arguments:
| Argument | Required | Description |
|---|---|---|
topic | No | สิ่งที่คุณต้องการสำรวจหรือตรวจสอบ |
What it does:
- เปิดการสนทนาแบบสำรวจโดยไม่ต้องมีโครงสร้างบังคับ
- ตรวจสอบโค้ดเบสเพื่อตอบคำถาม
- เปรียบเทียบตัวเลือกและแนวทาง
- สร้างแผนภาพเพื่อทำให้การคิดชัดเจนขึ้น
- สามารถเปลี่ยนไป
/opsx:propose(ค่าเริ่มต้น) หรือ/opsx:new(expanded workflow) เมื่อได้ข้อสรุป
Example:
You: /opsx:explore
AI: What would you like to explore?
You: How should we handle authentication for the mobile app?
AI: Let me investigate your current auth setup...
[Analyzes codebase]
I see you're using session-based auth for the web app.
For mobile, we have three main options:
1. JWT tokens (stateless, works offline)
2. OAuth2 (if you need third-party login)
3. Extend current sessions (simpler, but requires connectivity)
Your API already has CORS configured. Which direction interests you?
You: Let's go with JWT. Can we start a change for that?
AI: Ready when you are. Run /opsx:propose add-jwt-auth to begin.Tips:
- ใช้เมื่อข้อกำหนดไม่ชัดเจนหรือต้องการตรวจสอบ
- ไม่มีการสร้างเอกสารระหว่างสำรวจ
- เหมาะสำหรับการเปรียบเทียบแนวทางหลายแบบก่อนตัดสินใจ
- สามารถอ่านไฟล์และค้นหาในโค้ดเบสได้
/opsx:new
เริ่มสร้างโครงร่างการเปลี่ยนแปลงใหม่ สร้างโฟลเดอร์การเปลี่ยนแปลงและรอให้คุณสร้างเอกสารด้วย /opsx:continue หรือ /opsx:ff
คำสั่งนี้เป็นส่วนหนึ่งของชุด expanded workflow (ไม่รวมอยู่ในโปรไฟล์ core เริ่มต้น)
Syntax:
/opsx:new [change-name] [--schema <schema-name>]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | ชื่อโฟลเดอร์การเปลี่ยนแปลง (จะถามหากไม่ได้ระบุ) |
--schema | No | Workflow schema ที่จะใช้ (ค่าเริ่มต้น: จาก config หรือ spec-driven) |
What it does:
- สร้างไดเรกทอรี
openspec/changes/<change-name>/ - สร้างไฟล์ metadata
.openspec.yamlในโฟลเดอร์การเปลี่ยนแปลง - แสดงเทมเพลตเอกสารแรกพร้อมสำหรับการสร้าง
- ถามชื่อการเปลี่ยนแปลงและ schema หากไม่ได้ระบุ
What it creates:
openspec/changes/<change-name>/
└── .openspec.yaml # Change metadata (schema, created date)Example:
You: /opsx:new add-dark-mode
AI: Created openspec/changes/add-dark-mode/
Schema: spec-driven
Ready to create: proposal
Use /opsx:continue to create it, or /opsx:ff to create all artifacts.Tips:
- ใช้ชื่อที่อธิบายได้ชัดเจน:
add-feature,fix-bug,refactor-module - หลีกเลี่ยงชื่อทั่วไป เช่น
update,changes,wip - Schema สามารถตั้งค่าใน project config (
openspec/config.yaml) ได้ด้วย
/opsx:continue
สร้างเอกสารถัดไปในห่วงโซ่การพึ่งพา สร้างทีละหนึ่งเอกสารเพื่อพัฒนาแบบขั้นบันได
Syntax:
/opsx:continue [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะดำเนินการต่อ (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- สอบถามกราฟการพึ่งพาระหว่างเอกสาร
- แสดงว่าเอกสารใดพร้อมและใดถูกบล็อก
- สร้างเอกสารแรกที่อยู่สถานะพร้อม
- อ่านไฟล์ที่พึ่งพาเพื่อใช้เป็นบริบท
- แสดงว่าอะไรจะพร้อมใช้งานหลังจากสร้าง
Example:
You: /opsx:continue
AI: Change: add-dark-mode
Artifact status:
✓ proposal (done)
◆ specs (ready)
◆ design (ready)
○ tasks (blocked - needs: specs, design)
Creating specs...
[Reads proposal.md, creates specs based on requirements]
✓ Created openspec/changes/add-dark-mode/specs/ui/spec.md
Now available: design
Run /opsx:continue to create the next artifact.Tips:
- ใช้เมื่อต้องการตรวจสอบแต่ละเอกสารก่อนดำเนินการต่อ
- เหมาะสำหรับการเปลี่ยนแปลงที่ซับซ้อนที่ต้องการควบคุม
- เอกสารหลายชิ้นอาจพร้อมใช้งานพร้อมกัน
- คุณสามารถแก้ไขเอกสารที่สร้างแล้วก่อนดำเนินการต่อ
/opsx:ff
ข้ามไปข้างหน้าในการสร้างเอกสาร สร้างเอกสารวางแผนทั้งหมดในครั้งเดียว
Syntax:
/opsx:ff [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะข้ามไปข้างหน้า (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- สร้างเอกสารทั้งหมดตามลำดับการพึ่งพา
- ติดตามความคืบหน้าผ่าน todo list
- หยุดเมื่อเอกสาร
apply-requiredทั้งหมดเสร็จสมบูรณ์ - อ่านแต่ละสิ่งที่พึ่งพาก่อนสร้างเอกสารถัดไป
Example:
You: /opsx:ff add-dark-mode
AI: Fast-forwarding add-dark-mode...
✓ Creating proposal.md
✓ Creating specs/ui/spec.md
✓ Creating design.md
✓ Creating tasks.md
All planning artifacts complete!
Ready for implementation. Run /opsx:apply to begin.Tips:
- ใช้เมื่อคุณมีภาพชัดเจนว่ากำลังสร้างอะไร
- เร็วกว่า
/opsx:continueสำหรับการเปลี่ยนแปลงที่ตรงไปตรงมา - ยังสามารถแก้ไขเอกสารหลังจากนั้นได้
- เหมาะสำหรับฟีเจอร์ขนาดเล็กถึงกลาง
/opsx:apply
นำงานจาก change ไปปฏิบัติ ทำงานผ่านรายการงาน เขียนโค้ดและทำเครื่องหมายรายการที่เสร็จแล้ว
Syntax:
/opsx:apply [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะนำไปใช้ (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- อ่าน
tasks.mdและระบุงานที่ไม่เสร็จ - ทำงานทีละงาน
- เขียนโค้ด สร้างไฟล์ รันเทสต์ตามความจำเป็น
- ทำเครื่องหมายงานเสร็จด้วย checkboxes
[x]
Example:
You: /opsx:apply
AI: Implementing add-dark-mode...
Reading tasks.md:
- [ ] 1.1 Create ThemeContext
- [ ] 1.2 Add CSS custom properties
- [ ] 1.3 Implement localStorage persistence
Working on 1.1: Create ThemeContext...
[Creates src/context/ThemeContext.tsx]
✓ 1.1 Complete
Working on 1.2: Add CSS custom properties...
[Updates src/styles/globals.css]
✓ 1.2 Complete
...Tips:
- สามารถกลับมาทำต่อจากจุดที่หยุดได้หากถูกขัดจังหวะ
- ใช้สำหรับการเปลี่ยนแปลงแบบขนานโดยระบุชื่อ change
- สถานะการเสร็จสมบูรณ์ถูกติดตามใน checkboxes ของ
tasks.md
/opsx:update
แก้ไขเอกสารวางแผนที่มีอยู่ของการเปลี่ยนแปลงและรักษาความสอดคล้องกัน เอกสารวางแผนเท่านั้น - ไม่แก้ไขโค้ดเลย
Syntax:
/opsx:update [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะอัปเดต (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- อ่านเอกสารของการเปลี่ยนแปลงผ่าน
openspec status --change <name> --json - นำการแก้ไขที่คุณร้องขอไปใช้ หรือตรวจสอบเอกสารว่ามีข้อขัดแย้งหากไม่ได้ระบุ
- ปรับเอกสารอื่นๆ ที่มีอยู่ให้สอดคล้องกันในทุกทิศทาง (การแก้ไข design อาจส่งผลย้อนกลับไปยัง proposal)
- ยืนยันการแก้ไขทุกครั้งกับคุณก่อนเขียน ทีละเอกสาร
- ปิดท้ายด้วยการแนะนำขั้นตอนถัดไป:
/opsx:continue(เอกสารยังขาด),/opsx:apply(นำแผนที่ถูกแก้ไขไปใช้กับโค้ด), หรือ/opsx:archive(เสร็จสิ้นทั้งหมด)
Example:
You: /opsx:update add-dark-mode - we're storing the theme in a cookie now, not localStorage
AI: Reading add-dark-mode artifacts...
The design references localStorage in two places; tasks 1.3 covers
localStorage persistence; the proposal doesn't mention storage.
Proposed revisions:
1. design.md - swap localStorage decision for cookie storage
2. tasks.md - reword task 1.3 to cookie persistence
Apply revision 1? (design.md)Tips:
- จะไม่สร้างเอกสารที่ขาดหาย - นั่นคือหน้าที่ของ
/opsx:continue - หากการเปลี่ยนแปลงถูกนำไปใช้แล้ว ให้ตามด้วย
/opsx:applyเพื่อให้โค้ดตรงกับแผนที่ถูกแก้ไข - หากการแก้ไขของคุณเปลี่ยน เจตนา ของการเปลี่ยนแปลง ให้เริ่มใหม่ด้วยการเปลี่ยนแปลงใหม่แทน (ดู When to Update vs. Start Fresh)
/opsx:verify
ตรวจสอบว่า implementation ตรงกับเอกสารการเปลี่ยนแปลงของคุณ ตรวจสอบความครบถ้วน ความถูกต้อง และความสอดคล้อง
Syntax:
/opsx:verify [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะตรวจสอบ (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- ตรวจสอบคุณภาพ implementation ในสามมิติ
- ค้นหาหลักฐาน implementation ในโค้ดเบส
- รายงานปัญหาโดยจำแนกเป็น CRITICAL, WARNING, หรือ SUGGESTION
- ไม่บล็อก archive แต่จะแสดงปัญหา
Verification dimensions:
| Dimension | What it validates |
|---|---|
| Completeness | งานทั้งหมดเสร็จสิ้น ข้อกำหนดทั้งหมดถูกนำไปใช้ สถานการณ์ครอบคลุม |
| Correctness | Implementation ตรงกับเจตนาของ spec กรณีขอบเขตได้รับการจัดการ |
| Coherence | การตัดสินใจด้าน design สะท้อนในโค้ด รูปแบบสอดคล้องกัน |
Example:
You: /opsx:verify
AI: Verifying add-dark-mode...
COMPLETENESS
✓ All 8 tasks in tasks.md are checked
✓ All requirements in specs have corresponding code
⚠ Scenario "System preference detection" has no test coverage
CORRECTNESS
✓ Implementation matches spec intent
✓ Edge cases from scenarios are handled
✓ Error states match spec definitions
COHERENCE
✓ Design decisions reflected in code structure
✓ Naming conventions consistent with design.md
⚠ Design mentions "CSS variables" but implementation uses Tailwind classes
SUMMARY
─────────────────────────────
Critical issues: 0
Warnings: 2
Ready to archive: Yes (with warnings)
Recommendations:
1. Add test for system preference detection
2. Update design.md to reflect Tailwind usage, or refactor to use CSS variablesTips:
- รันก่อน archive เพื่อจับความไม่ตรงกันตั้งแต่เนิ่นๆ
- Warnings ไม่บล็อก archive แต่บ่งชี้ปัญหาที่อาจเกิดขึ้น
- เหมาะสำหรับการทบทวนงานของ AI ก่อน commit
- สามารถเปิดเผยความคลาดเคลื่อนระหว่างเอกสารและ implementation ได้
/opsx:sync
คำสั่งทางเลือก รวม delta specs จาก change เข้ากับ main specs Archive จะถามให้ sync หากจำเป็น ดังนั้นคุณมักไม่จำเป็นต้องรันคำสั่งนี้ด้วยตนเอง
Syntax:
/opsx:sync [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะ sync (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- อ่าน delta specs จากโฟลเดอร์การเปลี่ยนแปลง
- วิเคราะห์ส่วน ADDED/MODIFIED/REMOVED/RENAMED
- รวมการเปลี่ยนแปลงเข้ากับไดเรกทอรีหลัก
openspec/specs/ - รักษาเนื้อหาเดิมที่ไม่ได้กล่าวถึงใน delta
- ไม่ archive การเปลี่ยนแปลง (ยังคง active)
Example:
You: /opsx:sync
AI: Syncing add-dark-mode delta specs...
Reading: openspec/changes/add-dark-mode/specs/ui/spec.md
Target: openspec/specs/ui/spec.md
Changes to apply:
✓ ADDED: Theme Selection requirement (2 scenarios)
✓ ADDED: Accessibility requirement (1 scenario)
Merging...
✓ openspec/specs/ui/spec.md updated
Change remains active. Run /opsx:archive when ready to complete.When to use manually:
| Scenario | Use sync? |
|---|---|
| การเปลี่ยนแปลงระยะยาว ต้องการ specs ใน main ก่อน archive | Yes |
| การเปลี่ยนแปลงขนานหลายรายการต้องการ base specs ที่อัปเดตแล้ว | Yes |
| ต้องการ preview/ทบทวนการ merge แยกต่างหาก | Yes |
| การเปลี่ยนแปลงรวดเร็ว ไป archive ตรงๆ | No (archive จัดการให้) |
Tips:
- Sync เป็นอัจฉริยะ ไม่ใช่แค่ copy-paste
- สามารถเพิ่ม scenarios เข้ากับ requirements ที่มีอยู่โดยไม่ซ้ำซ้อน
- การเปลี่ยนแปลงยังคง active หลัง sync (ไม่ถูก archive)
- ผู้ใช้ส่วนใหญ่จะไม่จำเป็นต้องเรียกคำสั่งนี้โดยตรง—archive จะถามหากจำเป็น
/opsx:archive
เก็บการเปลี่ยนแปลงที่เสร็จสมบูรณ์ในคลัง ปิดท้ายการเปลี่ยนแปลงและย้ายไปยังโฟลเดอร์ archive
Syntax:
/opsx:archive [change-name]Arguments:
| Argument | Required | Description |
|---|---|---|
change-name | No | การเปลี่ยนแปลงที่จะ archive (จะอนุมานจากบริบทหากไม่ได้ระบุ) |
What it does:
- ตรวจสอบสถานะการเสร็จสมบูรณ์ของเอกสาร
- ตรวจสอบการเสร็จสิ้นของงาน (เตือนหากไม่เสร็จ)
- เสนอให้ sync delta specs หากยังไม่ได้ sync
- ย้ายโฟลเดอร์การเปลี่ยนแปลงไปยัง
openspec/changes/archive/YYYY-MM-DD-<name>/ - รักษาเอกสารทั้งหมดไว้เพื่อเป็น audit trail
Example:
You: /opsx:archive
AI: Archiving add-dark-mode...
Artifact status:
✓ proposal.md exists
✓ specs/ exists
✓ design.md exists
✓ tasks.md exists (8/8 tasks complete)
Delta specs: Not yet synced
→ Sync now? (recommended)
You: Yes
AI: ✓ Synced specs to openspec/specs/ui/spec.md
✓ Moved to openspec/changes/archive/2025-01-24-add-dark-mode/
Change archived successfully.Tips:
- Archive จะไม่บล็อกหากงานไม่เสร็จ แต่จะเตือน
- Delta specs สามารถ sync ระหว่าง archive หรือก่อนหน้าได้
- การเปลี่ยนแปลงที่ถูก archive จะถูกเก็บไว้เพื่อประวัติศาสตร์
- ใช้
/opsx:verifyก่อนเพื่อจับปัญหา
/opsx:bulk-archive
เก็บการเปลี่ยนแปลงที่เสร็จสมบูรณ์หลายรายการในครั้งเดียว จัดการความขัดแย้งของ specs ระหว่างการเปลี่ยนแปลง
Syntax:
/opsx:bulk-archive [change-names...]Arguments:
| Argument | Required | Description |
|---|---|---|
change-names | No | การเปลี่ยนแปลงเฉพาะที่จะ archive (จะถามให้เลือกหากไม่ได้ระบุ) |
What it does:
- แสดงรายการการเปลี่ยนแปลงที่เสร็จสมบูรณ์ทั้งหมด
- ตรวจสอบความถูกต้องของแต่ละการเปลี่ยนแปลงก่อน archive
- ตรวจจับความขัดแย้งของ specs ระหว่างการเปลี่ยนแปลง
- แก้ไขความขัดแย้งโดยตรวจสอบว่าอะไรถูกนำไปใช้จริง
- Archive ตามลำดับเวลา
Example:
You: /opsx:bulk-archive
AI: Found 3 completed changes:
- add-dark-mode (8/8 tasks complete)
- fix-login-bug (3/3 tasks complete)
- update-footer (2/2 tasks complete)
Checking for spec conflicts...
⚠ add-dark-mode and update-footer both touch specs/ui/
Inspecting codebase to resolve...
Both changes are implemented. Will merge in chronological order:
1. add-dark-mode (created Jan 20)
2. update-footer (created Jan 22)
Archive all 3 changes?
You: Yes
AI: ✓ Archived add-dark-mode
✓ Archived fix-login-bug
✓ Archived update-footer
Specs merged: add-dark-mode → update-footerTips:
- เหมาะสำหรับการทำงานแบบขนาน
- การแก้ไขความขัดแย้งเป็นแบบ agentic (ตรวจสอบโค้ดเบส)
- การเปลี่ยนแปลงถูก archive ตามลำดับการสร้าง
- ถามก่อนเขียนทับเนื้อหา specs
/opsx:onboard
แนะนำการใช้งานแบบมีผู้นำทางผ่าน workflow OpenSpec ทั้งหมด บทเรียนแบบ interactive โดยใช้โค้ดเบสจริงของคุณ
Syntax:
/opsx:onboardWhat it does:
- นำผ่านวงจร workflow ครบวงจรพร้อมคำอธิบาย
- สแกนโค้ดเบสของคุณเพื่อหาโอกาสปรับปรุงจริง
- สร้างการเปลี่ยนแปลงจริงพร้อมเอกสารจริง
- นำไปใช้จริง (การเปลี่ยนแปลงเล็กๆ ที่ปลอดภัย)
- เก็บการเปลี่ยนแปลงที่เสร็จสมบูรณ์ในคลัง
- อธิบายแต่ละขั้นตอนขณะดำเนินการ
Phases:
- ต้อนรับและวิเคราะห์โค้ดเบส
- ค้นหาโอกาสปรับปรุง
- สร้างการเปลี่ยนแปลง (
/opsx:new) - เขียน proposal
- สร้าง specs
- เขียน design
- สร้าง tasks
- นำไปใช้ (
/opsx:apply) - ตรวจสอบ implementation
- เก็บการเปลี่ยนแปลงในคลัง
- สรุปและขั้นตอนถัดไป
Example:
You: /opsx:onboard
AI: Welcome to OpenSpec!
I'll walk you through the complete workflow using your actual codebase.
We'll find something small to improve, create a proper change for it,
implement it, and archive it.
Let me scan your codebase for opportunities...
[Analyzes codebase]
I found a few things we could work on:
1. Add input validation to the contact form
2. Improve error messages in the auth flow
3. Add loading states to async buttons
Which interests you? (or suggest something else)Tips:
- เหมาะที่สุดสำหรับผู้ใช้ใหม่ที่กำลังเรียนรู้ workflow
- ใช้โค้ดจริง ไม่ใช่ตัวอย่างเล่นๆ
- สร้างการเปลี่ยนแปลงจริงที่คุณสามารถเก็บไว้หรือทิ้งได้
- ใช้เวลา 15-30 นาทีในการเสร็จสิ้น
Command Syntax by AI Tool
เครื่องมือ AI แต่ละตัวใช้ syntax ของคำสั่งที่แตกต่างกันเล็กน้อย ใช้รูปแบบที่ตรงกับเครื่องมือของคุณ:
| ไฟล์คำสั่งของเครื่องมือคุณ | ตัวอย่าง syntax | ตัวอย่างเครื่องมือ |
|---|---|---|
.../commands/opsx/<id>.* | /opsx:propose, /opsx:apply | Claude Code, Gemini CLI, Crush |
.../opsx-<id>.* | /opsx-propose, /opsx-apply | Cursor, Devin Desktop, Copilot (IDE), Trae, Oh My Pi |
| ไม่มี — ใช้เฉพาะ skills | /openspec-propose, /openspec-apply-change | CodeArts, ForgeCode, Hermes, MiniMax Code, Mistral Vibe, Zed Agent, shared .agents |
| ไม่มี — Kimi Code | /skill:openspec-propose | Kimi Code |
| ไม่มี — Codex CLI | $openspec-propose | Codex |
Devin Desktop vs Devin Local: ไฟล์
.devin/workflows/opsx-*.mdจะให้ Devin Desktop ใช้/opsx-proposeได้ ส่วน Devin Local ไม่มี workflows — ให้ใช้ skills ที่ OpenSpec เขียนลง.devin/skills/เช่น/openspec-proposeซึ่งใช้ได้กับทั้งสอง agent
เจตนาของคำสั่งเหมือนกันทุกเครื่องมือ แต่รูปแบบการแสดงผลคำสั่งอาจแตกต่างกันตามการเชื่อมต่อ How To Invoke มีรายการเครื่องมือที่รองรับทั้งหมด ตารางนี้แสดงเฉพาะตัวอย่างของแต่ละรูปแบบ
หมายเหตุ: คำสั่ง GitHub Copilot (
.github/prompts/*.prompt.md) ใช้ได้เฉพาะใน extension ของ IDE (VS Code, JetBrains, Visual Studio) เท่านั้น GitHub Copilot CLI ยังไม่รองรับไฟล์ prompt แบบ custom — ดูรายละเอียดและวิธีแก้ไขได้ที่ Supported Tools
Legacy Commands
คำสั่งเหล่านี้ใช้ workflow แบบ "ทำทั้งหมดในครั้งเดียว" แบบเก่า ยังใช้งานได้ตามปกติ แต่แนะนำให้ใช้คำสั่ง OPSX แทน
| คำสั่ง | หน้าที่ |
|---|---|
/openspec:proposal | สร้าง artifacts ทั้งหมดในครั้งเดียว (proposal, specs, design, tasks) |
/openspec:apply | ดำเนินการ implement การเปลี่ยนแปลง |
/openspec:archive | จัดเก็บการเปลี่ยนแปลง |
เมื่อไหร่ควรใช้คำสั่ง legacy:
- โปรเจกต์เดิมที่ใช้ workflow แบบเก่า
- การเปลี่ยนแปลงง่ายๆ ที่ไม่จำเป็นต้องสร้าง artifacts ทีละขั้น
- ชอบแนวทางแบบ all-or-nothing
การย้ายไปใช้ OPSX: การเปลี่ยนแปลงแบบ legacy สามารถดำเนินการต่อด้วยคำสั่ง OPSX ได้ โครงสร้าง artifacts เป็นที่เข้ากันได้
Troubleshooting
"Change not found"
คำสั่งไม่สามารถระบุได้ว่าต้องการทำงานกับการเปลี่ยนแปลงใด
วิธีแก้ไข:
- ระบุชื่อการเปลี่ยนแปลงอย่างชัดเจน:
/opsx:apply add-dark-mode - ตรวจสอบว่าโฟลเดอร์การเปลี่ยนแปลงมีอยู่จริง:
openspec list - ตรวจสอบว่าอยู่ในไดเรกทอรีโปรเจกต์ที่ถูกต้อง
"No artifacts ready"
artifacts ทั้งหมดเสร็จสมบูรณ์แล้วหรือถูกบล็อกด้วย dependencies ที่ขาดหาย
วิธีแก้ไข:
- รัน
openspec status --change <name>เพื่อดูว่าอะไรกำลังบล็อกอยู่ - ตรวจสอบว่า artifacts ที่จำเป็นมีอยู่จริง
- สร้าง artifacts ของ dependencies ที่ขาดหายก่อน
"Schema not found"
schema ที่ระบุไม่มีอยู่จริง
วิธีแก้ไข:
- แสดงรายการ schema ที่มีอยู่:
openspec schemas - ตรวจสอบการสะกดชื่อ schema
- สร้าง schema หากเป็นแบบ custom:
openspec schema init <name>
Commands not recognized
เครื่องมือ AI ไม่รู้จักคำสั่ง OpenSpec
วิธีแก้ไข:
- ตรวจสอบว่า OpenSpec ถูก initialize แล้ว:
openspec init - สร้าง skills ใหม่:
openspec update - ตรวจสอบว่าไดเรกทอรี
.claude/skills/มีอยู่จริง (สำหรับ Claude Code) - รีสตาร์ทเครื่องมือ AI เพื่อโหลด skills ใหม่
Artifacts not generating properly
AI สร้าง artifacts ที่ไม่สมบูรณ์หรือไม่ถูกต้อง
วิธีแก้ไข:
- เพิ่มบริบทของโปรเจกต์ใน
openspec/config.yaml - เพิ่มกฎเฉพาะสำหรับแต่ละ artifact เพื่อการแนะนำที่ชัดเจนขึ้น
- ระบุรายละเอียดเพิ่มเติมในคำอธิบายการเปลี่ยนแปลงของคุณ
- ใช้
/opsx:continueแทน/opsx:ffเพื่อควบคุมได้มากขึ้น
Next Steps
- Workflows - รูปแบบการใช้งานทั่วไปและเมื่อไหร่ควรใช้แต่ละคำสั่ง
- CLI - คำสั่งเทอร์มินัลสำหรับการจัดการและตรวจสอบความถูกต้อง
- Customization - สร้าง schema และ workflow แบบ custom