การย้ายเฟรมเวิร์ก
ตัวอย่างขั้นตอนของงานที่ DWP ถูกสร้างมาเพื่อรองรับ นั่นคือการย้ายที่กินไฟล์หลายสิบไฟล์และเวลาหลายชั่วโมง ยาวพอที่ agent ที่ไร้การชี้นำจะหลุดจากเส้นทาง
เป้าหมาย
การเปลี่ยนแปลงก้อนใหญ่หนึ่งครั้ง → งานเรียงลำดับและมีประตู
เมื่อไม่มีแผน
ในรูปแบบ Deep Work Plan
- งาน 1
- งาน 2
- งาน 3
- งาน 4
- งาน 5
“ย้ายชั้นข้อมูลจาก ORM เดิมไปยังตัวใหม่ตลอดทั้งบริการ”
เมื่อไม่มีแผน
agent แก้ model ไปเรื่อย ๆ จนบริบทเต็มไปด้วยการเปลี่ยนแปลงที่ทำค้างไว้ครึ่ง ๆ กลาง ๆ ลืมไปว่าได้แปลงจุดเรียกใช้ไหนไปแล้วบ้าง และทิ้ง build ที่ขึ้นสีแดงไว้โดยไม่มีบันทึกว่าเหลืออะไรอีก การทำงานต่อจึงหมายถึงต้องประกอบกระบวนคิดของตนเองขึ้นใหม่จาก log ของแชต
เมื่อทำเป็น Deep Work Plan
/dwp-create แยกเป้าหมายออกเป็น task แบบ atomic ที่เรียงลำดับ แต่ละตัวมี acceptance criteria และ validation gate ดังนี้
- นำ ORM ตัวใหม่เข้ามาควบคู่กับตัวเดิม (ไม่เปลี่ยนพฤติกรรม gate คือ build + test ขึ้นเขียว)
- ย้าย model และจุดเรียกใช้ของ module A (gate คือ test ของ module A ขึ้นเขียว)
- ทำซ้ำราย module หนึ่ง task ต่อหนึ่ง module และบันทึกความคืบหน้าหลังทุก task
- ลบ ORM เดิมและ shim ของมันออก (gate คือไม่เหลือการอ้างอิงใด และชุดทดสอบทั้งหมดขึ้นเขียว)
- อัปเดตเอกสารและ README ราย module
/dwp-execute รัน task ตามลำดับ commit หลังแต่ละ gate ที่ผ่าน และอัปเดต PROGRESS.md หากหน้าต่างบริบทรีเซ็ตกลางคัน /dwp-resume จะอ่านแผนและความคืบหน้าจากดิสก์แล้วดำเนินต่อที่ task ถัดไปที่ยังไม่ถูกทำเครื่องหมาย
ผลลัพธ์
การย้ายลงเอยเป็นลำดับของ commit เล็ก ๆ ที่ตรวจทานได้และถูกตรวจสอบทีละตัว อีกทั้งยังรอดพ้นการถูกขัดจังหวะ เพราะแหล่งความจริงคือแผน ไม่ใช่บทสนทนา