บท 02
ลูปหลัก
DWP นิยามชุดปฏิบัติการขนาดเล็กที่เคลื่อนแผนจากเป้าหมายไปสู่งานที่เสร็จสมบูรณ์และทบทวนได้ ได้แก่ create → execute → refine → resume → status โดยมี verify เป็นการตรวจสอบความสอดคล้องที่ยืนยันผลลัพธ์ เมื่อรวมกันทั้งหมดจึงก่อเป็นลูปที่เอเจนต์ดำเนินตามตลอดอายุของแผน เอเจนต์ดำเนินงานทีละหนึ่งงาน ตรวจสอบแต่ละขั้นก่อนจะไปต่อ
ลูปนี้คือรูปแบบเชิงปฏิบัติการของ spec-driven development แผนคือข้อกำหนดที่เอเจนต์ดำเนินการเทียบกับมัน แต่ละงานมีเกณฑ์การยอมรับที่ชัดเจน และขั้นการตรวจสอบคือ gate ที่เปลี่ยนการกล่าวอ้างว่าเสร็จให้กลายเป็นหลักฐานว่าเสร็จ เพราะแผนและ progress log อยู่ใน repository ลูปจึงดำเนินต่อได้ข้ามเซสชันและข้ามเอเจนต์
ปฏิบัติการต่าง ๆ
- create — สร้างแผนใหม่จากเป้าหมาย เอเจนต์วิเคราะห์เป้าหมาย แยกย่อยเป็นงานตามลำดับ และเขียนไฟล์แผน มันควรถามคำถามเพื่อให้ชัดเจนก่อนเขียนเมื่อเป้าหมายกำกวม
- execute — ดำเนินแผนทีละงาน เอเจนต์อัปเดต progress log หลังแต่ละงานและทำเครื่องหมายสถานะการเสร็จสิ้นของงานนั้น มันต้องไม่ข้ามงานโดยไม่บันทึกเหตุผล
- refine — แก้ไขแผนที่มีอยู่ เอเจนต์อาจเพิ่ม ลบ หรือจัดลำดับงานใหม่ แต่ต้องรักษางานที่เสร็จแล้วไว้และอัปเดตตารางงาน
- resume — ดำเนินแผนที่ถูกขัดจังหวะต่อ เอเจนต์อ่าน progress log และไฟล์งานเพื่อสร้างสถานะขึ้นใหม่ จากนั้นดำเนินต่อจากงานที่ยังไม่เสร็จงานแรก
- status — รายงานความคืบหน้าโดยไม่ดำเนินการ เอเจนต์สรุปงานที่เสร็จแล้ว งานที่กำลังทำ และงานที่ค้างอยู่ โดยไม่เปลี่ยนแปลงสิ่งใด
- verify — ตรวจสอบความสอดคล้องโดยไม่เปลี่ยนแปลงสิ่งใด เอเจนต์รายงานว่า repository เป็นไปตามมาตรฐานหรือไม่ และแผนมีรูปแบบที่ถูกต้องหรือไม่ — ทุกงานต้องมีเกณฑ์การยอมรับและ validation gate ดูเอกสารความสอดคล้องของข้อกำหนด
ไดเรกทอรีผลลัพธ์ .dwp/
สิ่งประดิษฐ์ทั้งหมดของ DWP อยู่ภายใต้ไดเรกทอรี .dwp/ ที่ถูก gitignore ที่รากของ repository การเก็บพื้นที่ทำงานไว้นอกระบบควบคุมเวอร์ชันหมายความว่าสถานะการทำงานของแผนจะไม่ปนเปื้อนประวัติของโปรเจกต์
.dwp/
├── plans/
│ └── PLAN_<slug>/
│ ├── README.md
│ ├── PROGRESS.md
│ └── <n>.task_<slug>.md
└── config.yaml
โครงสร้างงานเก้าส่วน
- 01 เป้าหมาย
- 02 บริบท
- 03 ขั้นตอน
- 04 เกณฑ์การยอมรับ
- 05 การตรวจสอบ
- 06 ไฟล์
- 07 การพึ่งพา
- 08 ความเสี่ยง
- 09 การเสร็จสิ้นและบันทึก
ไฟล์งานทุกไฟล์มีเก้าส่วนนี้ตามลำดับ โครงสร้างนี้รับประกันว่าแต่ละหน่วยงานเป็นอิสระในตัวเองและทบทวนได้
- เป้าหมาย — หนึ่งย่อหน้าระบุว่างานนี้บรรลุอะไร
- บริบท — ภูมิหลัง ลิงก์ และเหตุผลที่งานนี้มีอยู่
- ขั้นตอน — การกระทำที่เป็นรูปธรรมและเรียงลำดับซึ่งต้องทำ
- เกณฑ์การยอมรับ — เช็กลิสต์ของเงื่อนไขที่นิยามว่าเสร็จ
- การตรวจสอบ — คำสั่งหรือการทดสอบที่ต้องรันเพื่อยืนยันงาน
- ไฟล์ — พาธที่คาดว่าจะถูกสร้างหรือแก้ไข
- ส่วนพึ่งพิง — งานอื่นหรือเงื่อนไขเบื้องต้นภายนอก
- ความเสี่ยง — สิ่งที่อาจผิดพลาดและการบรรเทา
- การเสร็จสิ้นและ Log — เครื่องหมายสถานะพร้อมบันทึกตามลำดับเวลา
การตรวจสอบ การเสร็จสิ้น และการดำเนินต่อ
การตรวจสอบเป็นส่วนหนึ่งของงาน ไม่ใช่สิ่งที่นึกขึ้นได้ทีหลัง แต่ละงานระบุคำสั่งหรือการทดสอบที่พิสูจน์ว่ามันเสร็จแล้ว และเอเจนต์รันสิ่งเหล่านั้นก่อนทำเครื่องหมายว่าเสร็จ การเสร็จสิ้นถูกบันทึกด้วยเครื่องหมายสถานะที่ชัดเจน ([ ] ยังไม่เริ่ม, [~] กำลังทำ, [x] เสร็จ, [!] ติดขัด) ในส่วนการเสร็จสิ้นและ Log การดำเนินต่ออาศัยเครื่องหมายเหล่านี้และ progress log — เอเจนต์สามารถสร้างขึ้นใหม่ได้อย่างแม่นยำว่าแผนหยุดที่ใดและดำเนินต่อจากงานที่ยังไม่เสร็จงานแรกโดยไม่ต้องทำงานที่เสร็จแล้วซ้ำ