การแก้ไขและปรับปรุงการเปลี่ยนแปลง
ทุกอาร์ติแฟกต์ในหนึ่งการเปลี่ยนแปลงเป็นเพียงไฟล์ Markdown ที่คุณสามารถแก้ไขได้ตลอดเวลา ไม่มี "ขั้นตอนวางแผน" ที่ล็อกไว้ ไม่มีประตูอนุมัติ ไม่ต้องเข้าสู่โหมดแก้ไขพิเศษใดๆ ต้องการเปลี่ยนข้อเสนอหลังจากเริ่มสร้างแล้ว? เปิดไฟล์ proposal.md แล้วแก้ไขได้ทันที ตรวจพบว่าแบบจำลองผิดกลางกระบวนการนำไปใช้? แก้ไข design.md แล้วดำเนินการต่อ นี่คือคำตอบทั้งหมด และเป็นการออกแบบโดยเจตนา
หน้านี้สำหรับช่วงเวลาที่คุณคิดว่า "รอสักนิด ฉันสามารถกลับไปแก้ไขสิ่งนั้นได้หรือ?" คำตอบคือได้ นี่คือวิธีทำสำหรับแต่ละกรณีที่พบบ่อย
วิธีการแก้ไขสิ่งใดๆ ทั้งหมดสองแบบ
คุณมีทั้งสองวิธีใช้งานได้ตลอดเวลา:
- แก้ไขไฟล์โดยตรง อาร์ติแฟกต์เป็นไฟล์ Markdown ธรรมดาที่อยู่ในโฟลเดอร์
openspec/changes/<name>/เปิดไฟล์proposal.md,design.md,tasks.mdหรือ delta spec ใดๆ ที่อยู่ภายใต้โฟลเดอร์specs/ในโปรแกรมแก้ไขของคุณแล้วแก้ไข ไม่จำเป็นต้องทำอย่างอื่นใดอีก - ขอให้ AI ของคุณแก้ไขให้ ในแชท เพียงบอกสิ่งที่คุณต้องการ เช่น "อัปเดตข้อเสนอเพื่อลบแนวคิดการแคชและเพิ่มส่วน rate-limit" หรือ "แบบจำลองควรใช้คิว ไม่ใช่การสำรวจสถานะ (polling)" AI จะแก้ไขอาร์ติแฟกต์ให้คุณโดยใช้ส่วนที่เหลือของการเปลี่ยนแปลงเป็นบริบท
ใช้วิธีใดก็ได้ที่เหมาะกับสถานการณ์ ปรับเปลี่ยนคำเล็กน้อย? แก้ไขไฟล์โดยตรง ต้องการปรับปรุงแนวคิดหลัก? ให้ AI แก้ไขด้วยบริบททั้งหมดของงาน
"ฉันจะอัปเดตข้อเสนอ (หรือสเปค) หลังจากเริ่มแล้วได้อย่างไร?"
แค่อัปเดตมันเอง การเปลี่ยนแปลงเดิมที่ปรับปรุงแล้ว
หากคุณใช้คำสั่งแบบขยาย ลำดับการทำงานปกติคือ: แก้ไขอาร์ติแฟกต์ จากนั้นรัน /opsx:continue เพื่อดำเนินการต่อจากสถานะใหม่ หรือรัน /opsx:apply เพื่อดำเนินการนำไปใช้ต่อตามแผนที่อัปเดตแล้ว หากคุณใช้คำสั่ง core เริ่มต้น แก้ไขอาร์ติแฟกต์แล้วรัน /opsx:apply; คำสั่งนี้จะอ่านไฟล์ปัจจุบัน ดังนั้นจึงจะสร้างตามที่อาร์ติแฟกต์ระบุไว้ในปัจจุบัน
โมเดลความคิด: อาร์ติแฟกต์คือแผนที่ใช้งานจริง ไม่ใช่สัญญาที่เซ็นไว้แล้ว AI ทำงานจากเนื้อหาปัจจุบันของอาร์ติแฟกต์เสมอ ดังนั้นการแก้ไขอาร์ติแฟกต์จึงเป็นการควบคุมทิศทางการทำงาน
text
คุณ: ฉันต้องการเปลี่ยนแนวทางการทำงานในการเปลี่ยนแปลงนี้
คุณ: [แก้ไข design.md, หรือบอกให้ AI:]
อัปเดต design.md เพื่อใช้งานพื้นหลังแทนการเรียกแบบซิงโครนัส
AI: อัปเดต design.md แล้ว รายการงานยังเหมาะสมอยู่ ต้องการให้ฉันดำเนินการต่อหรือ?
คุณ: /opsx:applyนี้เป็นคำตอบสำหรับคำถามที่พบบ่อยมาก: ไม่มีคำสั่ง "อัปเดตข้อเสนอ" แยกต่างหาก เพราะคุณไม่จำเป็นต้องใช้คำสั่งนั้น ไฟล์เป็นแหล่งข้อมูลหลัก และการแก้ไขไฟล์ (ด้วยตนเองหรือผ่าน AI) คือการอัปเดตนั้นเอง
"ฉันจะกลับไปตรวจสอบหลังจากนำไปใช้แล้วได้อย่างไร?"
คุณไม่จำเป็นต้อง "กลับไป" เพราะคุณไม่เคยออกจากขั้นตอนนั้นเลย ลำดับการทำงานเป็นรูปแบบไหลลื่น: การตรวจสอบ การแก้ไข และการนำไปใช้ไม่ใช่ขั้นตอนต่อเนื่องที่คุณติดอยู่ในนั้น
โดยเฉพาะ หลังจากทำงานด้วย /opsx:apply มาบางส่วน:
- ต้องการตรวจสอบแผนอีกครั้ง? เปิดอาร์ติแฟกต์และอ่านมัน หรือรัน
openspec show <change>ในเทอร์มินัลของคุณเพื่อดูภาพรวมที่รวมไว้ - พบสิ่งที่ต้องการแก้ไข? แก้ไขอาร์ติแฟกต์ (หรือขอให้ AI แก้ไขให้) แล้วดำเนินการต่อ
- ต้องการตรวจสอบแบบมีโครงสร้างว่าโค้ดตรงกับแผนหรือ? รัน
/opsx:verify(คำสั่งแบบขยาย) คำสั่งนี้จะรายงานความสมบูรณ์ ความถูกต้อง และความสอดคล้องโดยไม่บล็อกสิ่งใดๆ ดูเพิ่มเติมที่ เวิร์กโฟลว์: การตรวจสอบ
ไม่มี "ขั้นตอนตรวจสอบ" ที่ต้องกลับไปหา เพราะการตรวจสอบเป็นสิ่งที่คุณสามารถทำได้ตลอดเวลา รวมถึงหลังจากนำไปใช้แล้ว
"ฉันแก้ไขโค้ดด้วยตนเองแล้ว ฉันจะปรับให้สอดคล้องกับ OpenSpec ได้อย่างไร?"
สถานการณ์นี้เกิดขึ้นบ่อยครั้งและเป็นเรื่องปกติ คุณปรับเปลี่ยนบางอย่างในโปรแกรมแก้ไขของคุณ และตอนนี้โค้ดและอาร์ติแฟกต์ไม่สอดคล้องกัน ปรับให้กลับมาเป็นสอดคล้องในทิศทางที่ถูกต้อง:
- โค้ดปัจจุบันถูกต้อง ส่วนสเปคล้าสมัย อัปเดต delta spec (และ tasks หากเกี่ยวข้อง) เพื่ออธิบายพฤติกรรมที่คุณนำไปใช้จริง สเปคควรตรงกับความเป็นจริงก่อนที่คุณจะเก็บ归档 เพราะการเก็บ归档จะผสานสเปคเข้ากับแหล่งข้อมูลหลักของคุณ
- สเปคถูกต้อง โค้ดเบี้ยวไปจากกำหนด ดำเนินการสร้างหรือแก้ไขต่อไปจนกว่าโค้ดจะตรงกับสเปค
วิธีที่เร็วที่สุดในการค้นหาความไม่สอดคล้องคือการใช้ /opsx:verify: คำสั่งนี้จะอ่านอาร์ติแฟกต์และโค้ดของคุณแล้วบอกจุดที่แตกต่างกัน รับผลลัพธ์ของมันเป็นรายการสิ่งที่ต้องทำเพื่อปรับให้สอดคล้อง แล้วดำเนินการเก็บ归档 เมื่อทั้งสองตรงกัน
หลักการ: เมื่อถึงช่วงเก็บ归档 สเปคของคุณจะเป็นข้อมูลจริงที่ถูกบันทึกไว้ ดังนั้นก่อนที่คุณจะเก็บ归档 ให้ปรับสเปคให้ตรงกับพฤติกรรมจริงของโค้ด การแก้ไขด้วยตนเองยินยอมได้ เพียงแต่อย่าปล่อยให้สเปคเบี้ยวไปโดยไม่รู้ตัว
การปรับปรุงข้อเสนอที่คุณไม่พึงพอใจ
หากข้อเสนอที่สร้างขึ้นไม่ตรงกับที่ต้องการ คุณมีสามวิธีที่ดีให้เลือก:
- ปรับปรุงตรงที่เดิม บอกให้ AI รู้ว่าอะไรผิด ("ขอบเขตกว้างเกินไป ลบฟีเจอร์ของผู้ดูแลระบบออก") แล้วให้มันแก้ไข เป็นวิธีที่ราคาไม่แพงและมักจะถูกต้อง
- สำรวจก่อน แล้วสร้างข้อเสนอใหม่ หากปัญหาคือแนวคิดเองไม่ชัดเจน ถอยกลับไปใช้
/opsx:explore, คิดให้รอบคอบ แล้วให้ข้อเสนอที่ชัดเจนกว่าออกมา ดูเพิ่มเติมที่ สำรวจก่อน - เริ่มใหม่ทั้งหมด หากเจตนาเดิมเปลี่ยนแปลงไปอย่างพื้นฐาน การเปลี่ยนแปลงใหม่อาจชัดเจนกว่าการแก้ไขแบบจางๆ ของอันเก่า
เมื่อใดควรอัปเดต และเมื่อใดควรเริ่มการเปลี่ยนแปลงใหม่
เวอร์ชันสั้น: อัปเดตเมื่อเป็นงานเดิมที่ปรับปรุงแล้ว เริ่มใหม่เมื่อเจตนาเปลี่ยนแปลงไปอย่างพื้นฐาน หรือขอบเขตขยายออกเป็นงานที่ไม่เกี่ยวข้องกัน
- เป้าหมายเดิม แนวคิดดีขึ้น? อัปเดต
- ขอบเขตแคบลง (ส่ง MVP ออกตอนนี้ ส่วนที่เหลือส่งทีหลัง)? อัปเดต แล้วเก็บ归档 แล้วเริ่มการเปลี่ยนแปลงใหม่สำหรับขั้นที่สอง
- ปัญหาเองเปลี่ยนแปลงไป ("เพิ่มโหมดมืด" เปลี่ยนเป็น "สร้างระบบธีมทั้งหมด")? เริ่มการเปลี่ยนแปลงใหม่
มีแผนภาพลำดับขั้นและตัวอย่างปฏิบัติอย่างสมบูรณ์ที่ เวิร์กโฟลว์: เมื่อใดควรอัปเดตหรือเริ่มใหม่ และเนื้อหาเพิ่มเติมที่ลึกกว่าใน OPSX: เมื่อใดควรอัปเดตหรือเริ่มใหม่
หมายเหตุเกี่ยวกับ tasks
tasks.md คือรายการตรวจสอบที่ปรับเปลี่ยนได้ตลอดเวลา ไม่ใช่แผนที่กำหนดแล้วอย่างคงที่ ขณะที่คุณนำไปใช้ คุณสามารถเพิ่ม tasks ที่ค้นพบ ลบ tasks ที่ปรากฏว่าไม่จำเป็น หรือเรียงลำดับใหม่ AI จะทำเครื่องหมายรายการว่าเสร็จสมบูรณ์เมื่อทำสำเร็จในระหว่าง /opsx:apply และจะดำเนินการต่อจากรายการแรกที่ยังไม่ได้ทำเครื่องหมายหากคุณกลับมาทำภายหลัง การแก้ไขรายการกลางกระบวนการเป็นสิ่งที่คาดหวังไว้
แหล่งข้อมูลเพิ่มเติม
- เวิร์กโฟลว์ - แบบแผนปฏิบัติการ รวมถึงคำแนะนำในการตัดสินใจระหว่างอัปเดตหรือเริ่มใหม่
- ตรวจสอบการเปลี่ยนแปลง - การตรวจสอบแผนอย่างรวดเร็วภายใน 2 นาทีก่อนที่คุณจะเริ่มสร้าง
- สำรวจก่อน - สถานที่ที่คุณสามารถถอยกลับไปใช้เมื่อต้องการปรับปรุงแนวคิดใหม่
- คำสั่ง - รายละเอียดการใช้
/opsx:continue,/opsx:applyและ/opsx:verify - แนวคิด: อาร์ติแฟกต์ - การใช้งานของแต่ละอาร์ติแฟกต์