Skip to content

FAQ

คำตอบด่วนสำหรับคำถามที่ผู้คนมักสอบถาม หากคำถามของคุณเป็นเรื่อง "มีบางอย่างผิดพลาด" ให้ดูหน้า Troubleshooting จะดีกว่า หากต้องการให้คำจำกัดความของศัพท์ ให้ดู Glossary

พื้นฐานเบื้องต้น

OpenSpec คืออะไรในประโยคเดียว?

ส่วนประกอบที่ไม่ซับซ้อนที่ช่วยให้คุณและผู้ช่วย AI ในการเขียนโค้ดเห็นพ้องต้องกันว่าจะสร้างอะไร โดยบันทึกเป็นลายลักษณ์อักษรก่อนที่จะมีการเขียนโค้ดใดๆ เกิดขึ้น

ทำไม่อยากใช้สิ่งนี้?

เนื่องจากผู้ช่วย AI มักจะมั่นใจแม้ในขณะที่พวกเขากำลังผิดพลาด เมื่อข้อกำหนดมีอยู่เพียงแค่ในเธรดแชท AI จะเติมเต็มช่องว่างด้วยการคาดเดา และคุณจึงจะรู้เรื่องนั้นหลังจากโค้ดถูกสร้างขึ้นแล้ว OpenSpec จะย้ายกระบวนการตกลงกันให้เกิดขึ้นตั้งแต่เนิ่นๆ ซึ่งทำให้ความผิดพลาดสามารถแก้ไขได้ง่ายกว่า ดู Core Concepts at a Glance สำหรับกรณีศึกษาฉบับเต็ม

จำเป็นต้องใช้กับทุกอย่างหรือไม่?

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

สามารถใช้กับ codebase ที่มีอยู่แล้วขนาดใหญ่ หรือเฉพาะโปรเจกต์ใหม่เท่านั้น?

Codebase ที่มีอยู่เป็นเรื่องหลัก OpenSpec ถูกออกแบบมาสำหรับ brownfield-first: คุณไม่จำเป็นต้องจัดทำเอกสารแอปพลิเคชันทั้งหมดตั้งแต่แรกเริ่ม คุณเขียนสเปคเฉพาะในส่วนที่การเปลี่ยนแปลงนั้นกระทบ และสเปคของคุณจะค่อยๆ เติมเต็มไปพร้อมกับงานที่คุณทำจริง มีคู่มือเฉพาะเรื่องนี้คือ Using OpenSpec in an Existing Project

เกี่ยวข้องกับเครื่องมือ AI ตัวใดตัวหนึ่งหรือไม่?

ไม่ OpenSpec ทำงานร่วมกับผู้ช่วยมากกว่า 25 รายการ รวมถึง Claude Code, Cursor, Windsurf, GitHub Copilot, Gemini CLI, Codex และอื่นๆ รายชื่อทั้งหมดและรายละเอียดเฉพาะสำหรับแต่ละเครื่องมืออยู่ใน Supported Tools

การรันคำสั่ง (Running commands)

ฉันจะพิมพ์ /opsx:propose ที่ไหน?

ในแชทของผู้ช่วย AI ไม่ใช่ในเทอร์มินัล นี่คือจุดที่สร้างความสับสนมากที่สุด ดังนั้นจึงมีหน้าเฉพาะสำหรับเรื่องนี้: How Commands Work สรุปแบบย่อ: openspec ... รันในเทอร์มินัล ส่วน /opsx:... รันในแชท

ฉันจะ "เริ่มโหมดอินเตอร์แอคทีฟ" ได้อย่างไร?

ไม่มีโหมดแยกต่างหาก คุณเปิดผู้ช่วย AI ของคุณตามปกติและพิมพ์คำสั่งแบบสแลช (slash command) ลงในแชทของมัน คำสั่งแบบสแลชคือวิธีที่คุณ "เข้าสู่" OpenSpec (ฟีเจอร์ที่แท้จริงที่เป็นอินเตอร์แอคทีฟสำหรับเทอร์มินัลคือ openspec view ซึ่งเป็นแดชบอร์ดสำหรับการเรียกดูสเปคและการเปลี่ยนแปลง) ดูคำอธิบายฉบับเต็มใน How Commands Work

ฉันพิมพ์คำสั่งแบบสแลชแล้วไม่มีอะไรเกิดขึ้น ทำไมถึงเป็นเช่นนั้น?

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

ทำไม่อะไรถึงมีไวยากรณ์เป็น /opsx:propose ในเครื่องมือหนึ่ง และ /opsx-propose ในอีกเครื่องมือหนึ่ง?

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

อะไรคือความแตกต่างระหว่าง skill กับ command?

ทั้งสองอย่างเป็นไฟล์ที่ OpenSpec เขียนขึ้นเพื่อให้ผู้ช่วย AI ของคุณสามารถรัน workflow ได้ Skills (.../skills/openspec-*/SKILL.md) เป็นมาตรฐานข้ามเครื่องมือที่ใหม่กว่า ส่วน Commands (.../commands/opsx-*) คือไฟล์แบบสแลชเฉพาะสำหรับแต่ละเครื่องมือ คุณไม่จำเป็นต้องเลือก เพียงพิมพ์คำสั่งแบบสแลช และ OpenSpec จะติดตั้งสิ่งใดก็ตามที่เครื่องมือของคุณใช้

Workflow (กระบวนการทำงาน)

ฉันควรเริ่มต้นอย่างไรถ้ายังไม่แน่ใจว่าจะสร้างอะไร?

ด้วย /opsx:explore มันคือคู่คิดที่ไม่ต้องกังวลซึ่งจะอ่าน codebase ของคุณ วางทางเลือกต่างๆ และเปลี่ยนปัญหาที่คลุมเครือให้เป็นแผนงานที่เป็นรูปธรรม ทั้งหมดนี้ก่อนที่จะมีการเปลี่ยนแปลงหรือโค้ดใดๆ เกิดขึ้น มันอยู่ในโปรไฟล์เริ่มต้น ดังนั้นจึงพร้อมใช้งานเสมอ เมื่อแผนชัดเจนแล้ว ระบบจะส่งต่อให้ /opsx:propose นี่คือนิสัยที่ดีที่สุดที่คุณควรสร้าง เพราะมันช่วยหยุด AI ที่กระตือรือร้นจากการสร้างสิ่งที่ผิดอย่างมั่นใจ ดู Explore First

กระบวนการที่ง่ายที่สุดเป็นอย่างไร?

text
/opsx:explore (ไม่บังคับ)   จากนั้น   /opsx:propose <สิ่งที่คุณต้องการ>   จากนั้น   /opsx:apply   จากนั้น   /opsx:archive

Explore เพื่อคิดวิเคราะห์, propose เพื่อร่างแผน, apply เพื่อสร้าง, archive เพื่อจัดเก็บไว้ ปล่อยผ่าน explore หากคุณรู้แน่ชัดว่าต้องการอะไรแล้ว

อะไรคือความแตกต่างระหว่าง /opsx:propose และ /opsx:new?

/opsx:propose เป็นคำสั่งแบบขั้นตอนเดียวโดยค่าเริ่มต้น: มันสร้างการเปลี่ยนแปลงและร่างสิ่งประดิษฐ์สำหรับการวางแผนทั้งหมดในคราวเดียว ส่วน /opsx:new เป็นส่วนหนึ่งของชุดคำสั่งที่ขยายออกไปและเพียงแค่สร้างโครงร่างของการเปลี่ยนแปลงเปล่าๆ โดยปล่อยให้คุณสร้างสิ่งประดิษฐ์ทีละอย่างด้วย /opsx:continue (หรือทั้งหมดในครั้งเดียวด้วย /opsx:ff) ให้ใช้ propose เว้นแต่ว่าคุณต้องการควบคุมแบบทีละขั้นตอน ดู Commands

อะไรคือ core และ expanded profiles?

Profile จะตัดสินใจว่าคำสั่งแบบสแลชใดบ้างที่จะถูกติดตั้ง Core (ค่าเริ่มต้น) มอบให้ propose, explore, apply, sync, archive ส่วนชุด expanded เพิ่ม new, continue, ff, verify, bulk-archive, และ onboard สำหรับการควบคุมที่ละเอียดอ่อนยิ่งขึ้น สลับโดยใช้ openspec config profile จากนั้นให้ใช้งานด้วย openspec update

ฉันจำเป็นต้องรัน /opsx:sync หรือไม่?

ปกติแล้วไม่จำเป็น Sync จะรวม delta specs ของการเปลี่ยนแปลงเข้ากับสเปคหลัก และ /opsx:archive จะเสนอที่จะทำสิ่งนี้ให้คุณ ให้รัน sync ด้วยตนเองเมื่อคุณต้องการให้สเปคถูกรวมก่อนการจัดเก็บ เช่น ในการเปลี่ยนแปลงที่ดำเนินไปเป็นเวลานาน ดู Commands

ฉันจะแก้ไข proposal, spec หรือ task อย่างไรหลังจากเริ่มต้นแล้ว?

เพียงแค่แก้ไขไฟล์ สิ่งประดิษฐ์ทุกอย่างเป็น Markdown ธรรมดาใน openspec/changes/<name>/ และไม่มีขั้นตอนที่ถูกล็อกหรือโหมดการแก้ไขพิเศษ เปลี่ยนด้วยตนเอง หรือขอให้ AI ของคุณแก้ไข ("อัปเดตดีไซน์เพื่อใช้คิว") แล้วดำเนินการต่อไป AI จะทำงานจากเนื้อหาไฟล์ปัจจุบันเสมอ คู่มือฉบับเต็ม: Editing & Iterating on a Change

ฉันสามารถย้อนกลับไปเปลี่ยนแผนหลังจากที่ได้นำบางส่วนไปใช้งานแล้วได้หรือไม่?

ได้ ทุกเวลา กระบวนการทำงานมีความลื่นไหล ดังนั้นการตรวจสอบและการแก้ไขจึงไม่ใช่ขั้นตอนที่คุณถูกล็อกออกไป แก้ไขสิ่งประดิษฐ์ แล้วดำเนินการต่อ หากคุณต้องการการตรวจสอบที่เป็นระบบว่าโค้ดยังคงตรงกับแผนอยู่หรือไม่ ให้รัน /opsx:verify ดู Editing & Iterating on a Change

ฉันแก้ไขโค้ดด้วยตนเอง จะกระทบต่อ spec อย่างไร?

นำพวกมันกลับมาซิงค์กันก่อนที่คุณจะจัดเก็บ เพราะการจัดเก็บทำให้สเปคของคุณเป็นบันทึกความจริง หากโค้ดถูกต้องแล้ว ให้อัปเดต delta spec ให้ตรงกับสิ่งที่คุณส่งมอบ; หากสเปคถูกต้อง ให้สร้างต่อไปจนกว่าที่โค้ดจะเห็นพ้อง /opsx:verify จะแสดงความไม่ตรงกัน ดู Editing & Iterating on a Change

ควรอัปเดตการเปลี่ยนแปลงที่มีอยู่ หรือเริ่มต้นใหม่เมื่อใด?

อัปเดตเมื่อเป็นงานเดิมที่ได้รับการปรับปรุง เริ่มต้นใหม่เมื่อเจตนาเปลี่ยนไปโดยพื้นฐานหรือขอบเขตบานออกไปสู่งานที่แตกต่างกัน มีแผนผังการตัดสินใจและตัวอย่างใน Workflows

จะเกิดอะไรขึ้นถ้าเซสชันของฉันหมดบริบท หรือข้อกำหนดเปลี่ยนระหว่างการดำเนินการ?

นี่คือจุดที่ specs มีประโยชน์ เนื่องจากแผนมีอยู่ในไฟล์ (ไม่ได้มีแค่ในประวัติแชท) คุณสามารถล้างบริบท เริ่มเซสชัน AI ใหม่ และกลับมาทำงานต่อด้วย /opsx:apply; มันจะอ่านสิ่งประดิษฐ์และดำเนินการต่อจากงานแรกที่ยังไม่ถูกตรวจสอบ หากข้อกำหนดเปลี่ยนแปลง ให้แก้ไขสิ่งประดิษฐ์ให้ตรงกับความเป็นจริงใหม่และดำเนินการต่อไป การรักษาหน้าต่างบริบทให้สะอาดก็ส่งผลลัพธ์ที่ดีกว่าเช่นกัน ควรล้างก่อนการดำเนินการ

ฉันควร commit โฟลเดอร์ openspec/ ไปยัง git หรือไม่?

ใช่ สเปค การเปลี่ยนแปลงที่ใช้งานอยู่ และ archive เป็นส่วนหนึ่งของประวัติโปรเจกต์ของคุณ Commit พวกมันเหมือนซอร์สโค้ดอื่นๆ โดยเฉพาะอย่างยิ่ง archive จะกลายเป็นบันทึกที่คงทนถาวรว่าทำไมาระบบของคุณจึงทำงานในลักษณะที่เป็นเช่นนั้น

Specs and changes (สเปคและการเปลี่ยนแปลง)

อะไรควรอยู่ใน spec เทียบกับ design?

Spec อธิบายพฤติกรรมที่สังเกตได้: ระบบทำอะไร อินพุตเอาต์ และเงื่อนไขข้อผิดพลาด Design อธิบายว่าจะสร้างมันอย่างไร: แนวทางทางเทคนิค การตัดสินใจด้านสถาปัตยกรรม การเปลี่ยนแปลงไฟล์ หากการนำไปใช้งานสามารถเปลี่ยนแปลงได้โดยไม่เปลี่ยนพฤติกรรมที่มองเห็นภายนอก มันควรอยู่ใน design ไม่ใช่ spec Concepts เจาะลึกกว่านี้

Delta spec คืออะไร?

สเปคที่อธิบายเฉพาะสิ่งที่กำลังเปลี่ยนแปลง โดยใช้ส่วน ADDED, MODIFIED, และ REMOVED แทนที่จะกล่าวซ้ำสเปคทั้งหมด มันคือวิธีที่ OpenSpec จัดการกับการแก้ไขระบบที่มีอยู่ได้อย่างสะอาดตา ดู Concepts

การเปลี่ยนแปลงที่ถูกเก็บไว้ (archived changes) ไปอยู่ที่ไหน?

ไปที่ openspec/changes/archive/YYYY-MM-DD-<name>/ โดยมีสิ่งประดิษฐ์ทั้งหมดถูกรักษาไว้ ไม่มีอะไรถูกลบออก การเปลี่ยนแปลงนั้นแค่ย้ายออกจากรายการที่ใช้งานอยู่

Configuration and customization (การกำหนดค่าและการปรับแต่ง)

ฉันจะบอก AI เกี่ยวกับ tech stack ของฉันได้อย่างไร?

ใส่ไว้ใน openspec/config.yaml ภายใต้ context: ข้อความนั้นจะถูกฉีดเข้าไปในการร้องขอวางแผนทุกครั้ง ดังนั้น AI จะรู้เกี่ยวกับ stack และข้อตกลงของคุณเสมอ ดู Customization

ฉันสามารถสร้าง specs ในภาษาอื่นที่ไม่ใช่ภาษาอังกฤษได้หรือไม่?

ได้ เพิ่มคำสั่งภาษาลงใน context: ของ config Multi-Language มีตัวอย่างโค้ดสำหรับหลายภาษาให้คัดลอกไปใช้

ฉันสามารถเปลี่ยน workflow เองได้หรือไม่?

ได้ ด้วย custom schemas Schema กำหนดว่าสิ่งประดิษฐ์ใดบ้างที่มีอยู่และพวกมันขึ้นอยู่กับกันอย่างไร Fork จากค่าเริ่มต้นด้วย openspec schema fork spec-driven my-workflow แล้วแก้ไข ดู Customization

Models, privacy, and upgrades (โมเดล ความเป็นส่วนตัว และการอัปเกรด)

ฉันควรใช้ AI model ตัวใด?

OpenSpec ทำงานได้ดีที่สุดกับโมเดลที่มีเหตุผลสูง README แนะนำโมเดลเช่น Codex 5.5 และ Opus 4.7 สำหรับทั้งการวางแผนและการนำไปใช้งาน นอกจากนี้ให้รักษาหน้าต่างบริบทของคุณให้สะอาด: ล้างก่อนการดำเนินการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด

OpenSpec เก็บข้อมูลหรือไม่?

มันเก็บสถิติการใช้งานแบบนิรนาม: ชื่อคำสั่งและเวอร์ชันเท่านั้น ไม่มีอาร์กิวเมนต์ เส้นทาง เนื้อหา หรือข้อมูลส่วนตัว และจะปิดโดยอัตโนมัติใน CI Opt out ด้วย export OPENSPEC_TELEMETRY=0 หรือ export DO_NOT_TRACK=1

ฉันจะอัปเกรดอย่างไร?

สองขั้นตอน อัปเกรดแพ็คเกจ (npm install -g @fission-ai/openspec@latest) จากนั้นรัน openspec update ภายในแต่ละโปรเจกต์เพื่อรีเฟรช skills และ commands ที่ถูกสร้างขึ้น

ฉันจะถอนการติดตั้ง OpenSpec อย่างไร?

ไม่มีคำสั่งถอนการติดตั้ง เพราะมันเป็นเพียงแพ็คเกจระดับโลกบวกกับไฟล์ในโปรเจกต์ของคุณ ลบแพ็คเกจ (npm uninstall -g @fission-ai/openspec) และทางเลือกคือลบไดเร็กทอรี openspec/ และไฟล์เครื่องมือที่ถูกสร้างขึ้น ขั้นตอนโดยละเอียด รวมถึงสิ่งที่ปลอดภัยที่จะเก็บไว้ อยู่ใน Installation: Uninstalling

Getting help (การขอความช่วยเหลือ)

ฉันจะถามคำถามหรือรายงานบั๊กที่ไหน?

เอกสารเหล่านี้ผิดหรือสับสน ฉันควรทำอย่างไร?

บอกเรา หรือแก้ไขมัน การส่ง PR สำหรับเอกสารยินดีต้อนรับและมีค่า เปิด issue หรือส่ง pull request