Skip to content
← เอกสารข้อกำหนดทั้งหมด

ข้อกำหนด DWP

มาตรฐานปัจจุบัน: v7 (DWP 7.0.0) นี่คือพื้นฐานข้อกำหนด v5 ที่ยังคงไว้พร้อมส่วนขยายวงจรชีวิต v6 และรุ่นสัญญา v7 แพ็ก 7.x สร้างแผนใหม่ด้วย v7 เป็นค่าเริ่มต้น คำขอ v6 อย่างชัดเจนยังคงสร้างแผน v6 และแผนเดิมยังคงรุ่นที่บันทึกไว้ manifest และสัญญาของ v7 เผยแพร่ที่ plan-manifest/v7.json และ plan-contract/v7.json ส่วน live snapshot ยังคงอยู่ที่ plan-snapshot/v6.json

เวอร์ชัน 5.0.0. สถานะ: เสถียร เอกสารนี้คือข้อกำหนดเชิงบรรทัดฐานสำหรับระเบียบวิธี Deep Work Plan (DWP) คำสำคัญ MUST, MUST NOT, SHOULD, SHOULD NOT และ MAY ให้ตีความตามที่อธิบายไว้ใน RFC 2119

เพิ่มเติมใน 2.4.0 ไม่มีการเปลี่ยนแปลงที่ทำลายความเข้ากันได้ (1) ส่วนพื้นผิวที่แตะต้อง (Touched Surface) — สัญญาระหว่างสิ่งที่งานเปลี่ยนกับสิ่งที่ต้องตรวจสอบ พร้อมการเลือก gate ตามระดับความเสี่ยง (isolated / seam / shared-core / unknown); (2) การตรวจสอบครบวงจรกลายเป็นข้อกำหนดสถานะสุดท้ายที่รันใน Final Review เดี่ยวที่บังคับของแผน พร้อมกฎการใช้หลักฐานซ้ำอย่างชัดเจน; (3) การตัดสินใจเรื่อง skill ภายในงานย้ายเข้าไปอยู่ในงานที่เป็นเจ้าของ และรายงานสรุปสำหรับผู้บริหารกลายเป็นแบบเลือกได้ เมื่อมีคำขอ; (4) โฟลว์ create แบบรู้โหมด — โหมด trust สร้างแผนขึ้นโดยตรงโดยยังคงการวิเคราะห์และการตรวจสอบคุณภาพ; (5) การสร้างแผนแบบ Lite-first — โฟลว์ create แบบมีการแนะนำผลิตแผน Lite ที่ดำเนินการได้โดยตรงแทนร่างที่ดำเนินการไม่ได้ และสามารถเลื่อนขั้นเป็นแผน Full ได้ทุกเมื่อ (ดู แผน Lite); และ (6) เมทริกซ์ความเข้ากันได้ที่ชัดเจน: แผนและ repository จากเวอร์ชันก่อนหน้ายังคงสอดคล้อง

มาตรฐาน 4.0.0 การกระโดดของเวอร์ชันจัดหมายเลขมาตรฐานให้เข้ากับสายผลิตภัณฑ์ — 2.x เป็นประวัติศาสตร์และไม่มีมาตรฐาน 3.x — และไม่เปลี่ยนข้อกำหนดใดจาก 2.4.0 แผนและรีโพสิทอรีจากเวอร์ชันก่อนยังคงสอดคล้อง

นิยาม

Deep Work Plan คือสิ่งประดิษฐ์แบบ markdown ล้วนที่มีโครงสร้าง ซึ่งอธิบายงานวิศวกรรมที่ซับซ้อนโดยแยกย่อยเป็นหน่วยงานตามลำดับและทบทวนได้ ออกแบบมาเพื่อให้เอเจนต์เขียนโค้ด AI ที่ทำงานอย่างอิสระสร้าง ดำเนินการ และดูแลรักษา

DWP ขับเคลื่อนด้วยข้อกำหนด แผนคือข้อกำหนด และเอเจนต์ MUST ดำเนินการเทียบกับเกณฑ์การยอมรับและ validation gate ที่ชัดเจนของมันแทนที่จะด้นสด ข้อกำหนด — ไม่ใช่บทสนทนาแชต — คือแหล่งความจริงที่ยั่งยืน งานจึงตรวจสอบได้และดำเนินต่อได้ข้ามเซสชันและข้ามเอเจนต์ มันยังเป็น harness engineering ที่ทำให้พกพาได้ บริบท control loop guardrail และสถานะที่ดำเนินต่อได้ซึ่งทำให้เอเจนต์เชื่อถือได้ถูกติดตั้งลงใน repository เองในรูปของ markdown ธรรมดา เอเจนต์ที่สอดคล้องตัวใดก็ MAY ขับเคลื่อน repository ได้โดยไม่ต้องมีเฟรมเวิร์กเฉพาะเครื่องมือ

โฟลว์ create — ขั้นตอนเดียว รู้โหมด

โฟลว์ create เก็บรวบรวมวัตถุประสงค์ บริบท ข้อจำกัด และโครงร่างงานหนึ่งครั้ง ทำการวิเคราะห์ความต้องการ (ขอบเขต การเรียงลำดับส่วนพึ่งพิงระหว่างงาน การเลือก validation จากพื้นผิวที่แตะต้อง ระดับความเข้มงวดตามสัดส่วน) แล้วจึงสร้างขึ้นจริงตามโหมดที่นักพัฒนาเลือก:

  • โหมดแบบมีการแนะนำ (ค่าเริ่มต้น) โฟลว์สร้างแผน Lite ขึ้นโดยตรง — ข้อเสนอที่กระชับและดำเนินการได้อยู่แล้ว พร้อมบันทึกงานแบบ inline {#task-N} ทบทวนได้ในรอบเดียว — แล้วถามนักพัฒนาว่าจะคงไว้เป็น Lite เลื่อนขั้นเป็นแผน Full ขอให้แก้ไข หรือหยุด ไม่มีการผลิตร่างระหว่างกลางที่ดำเนินการไม่ได้อีกต่อไป
  • โหมด trust (trust / auto) โฟลว์สร้างรูปแบบที่เลือกไว้ขึ้นโดยตรง (Lite หรือ Lite ตามด้วยการเลื่อนขั้นเป็น Full ทันที) โดยไม่มีขั้นตอนทบทวน — นักพัฒนาสละสิทธิ์นั้น การวิเคราะห์ความต้องการ การเรียงลำดับส่วนพึ่งพิง และการตรวจสอบคุณภาพแผนยังคงรัน: trust สละสิทธิ์การทบทวน ไม่ใช่การวิเคราะห์ แผนโหมด trust ถูกบันทึกว่าได้รับอนุมัติล่วงหน้าสำหรับการดำเนินงานแบบไม่มีผู้ดูแล

ทั้งสองโหมดตัดสินใจรูปแบบของแผน (Lite หรือ Full) โดยเป็นส่วนหนึ่งของการวิเคราะห์ความต้องการเดียวกัน ไม่เคยเป็นเรื่องที่คิดทีหลัง ดูรูปแบบเต็ม การสร้างและการเลือก และวงจรชีวิตการเลื่อนขั้นได้ที่ แผน Lite

โครงสร้างแผน

แผนใหม่ MUST ใช้ไดเรกทอรีที่มีหมายเลขภายใต้ .dwp/plans/ เช่น PLAN_001_<slug>/ ส่วนไดเรกทอรีเดิมที่ไม่มีหมายเลข PLAN_<slug>/ ยังคงใช้ได้และจะไม่ถูกเปลี่ยนชื่อ โดยแผนมีหนึ่งในสองรูปแบบต่อไปนี้:

  • Full ไดเรกทอรี MUST ประกอบด้วย README.md (ภาพรวมแผน เป้าหมาย ตารางงาน และสถานะ) หนึ่งไฟล์ต่อหนึ่งงานตั้งชื่อว่า <n>.task_<slug>.md และ PROGRESS.md (log การทำงานที่บันทึกต่อเนื่อง)
  • Lite บันทึกงานที่กระชับและดำเนินการได้เต็มรูปแบบอยู่แบบ inline ใน README.md หลัง anchor ที่เสถียรอย่าง {#task-N} แทนที่จะเป็นไฟล์งานแยกต่างหาก — แต่ละบันทึกยังคงพกเป้าหมาย พื้นผิวที่แตะต้อง เกณฑ์การยอมรับ การตรวจสอบ และ log การเสร็จสิ้น PROGRESS.md ยังคง REQUIRED แผน Lite MAY ถูกเลื่อนขั้นเป็น Full ได้ทุกเมื่อ ดูวงจรชีวิตแบบเต็มได้ที่ แผน Lite แทนที่จะกล่าวซ้ำที่นี่

แผน MAY พกชั้นสถานะที่เครื่องอ่านได้เพิ่มเติม: manifest.json (เอกลักษณ์คงที่ เขียนหนึ่งครั้งตอน materialization) และ state.json (สถานะการดำเนินงานต่อหนึ่งงานแบบสด) ชั้นสถานะ RECOMMENDED สำหรับแผน v5และ REQUIRED สำหรับการดำเนินงานแบบไม่มีผู้ดูแลและสำหรับ agent workspace ที่ไม่มี git ดู สถานะแผน

แผนใหม่จะได้รับ ID ตัวเลขที่เพิ่มขึ้นตามลำดับและมีอย่างน้อยสามหลัก (เช่น PLAN_001_add_payment_webhooks/) สคีมา v5 ที่ตรึงไว้จะนับ ID ตัวเลขเป็นหนึ่งคำ ดังนั้น slug ของ v5 จึงมี 2–4 คำ ส่วน slug ของ v6 และ v7 มี 2–5 คำ โฟลเดอร์เดิมที่ไม่มีหมายเลข PLAN_<slug>/ ยังคงอ่านได้และจะไม่มีการเปลี่ยนชื่อ หากมีแผนที่มีหมายเลข latest จะหมายถึงแผนที่มี ID ตัวเลขสูงสุด.

โครงสร้างงาน

ไฟล์งานแต่ละไฟล์ MUST มีสิบส่วนนี้ตามลำดับ

  1. เป้าหมาย — คำบอกกล่าวหนึ่งย่อหน้าว่างานนี้บรรลุอะไร
  2. บริบท — ภูมิหลัง ลิงก์ และเหตุผลที่งานนี้มีอยู่
  3. พื้นผิวที่แตะต้อง (Touched Surface) — สัญญาระหว่างสิ่งที่งานเปลี่ยนกับสิ่งที่ต้องตรวจสอบ
  4. ขั้นตอน — การกระทำที่เป็นรูปธรรมและเรียงลำดับซึ่งต้องทำ
  5. เกณฑ์การยอมรับ — เช็กลิสต์ของเงื่อนไขที่นิยามว่าเสร็จ
  6. การตรวจสอบ — คำสั่งหรือการทดสอบที่ต้องรันเพื่อยืนยัน เลือกจากพื้นผิวที่แตะต้อง
  7. ไฟล์ — พาธที่คาดว่าจะถูกสร้างหรือแก้ไข
  8. ส่วนพึ่งพิง — งานอื่นหรือเงื่อนไขเบื้องต้นภายนอก
  9. ความเสี่ยง — สิ่งที่อาจผิดพลาดและการบรรเทา
  10. การเสร็จสิ้นและ Log — เครื่องหมายสถานะพร้อมบันทึกตามลำดับเวลา

งาน MAY รวมส่วน Delta เพิ่มเติม (RECOMMENDED สำหรับการเปลี่ยนแปลงพฤติกรรม brownfield — ดูด้านล่าง) และส่วน Rollback (RECOMMENDED สำหรับการย้ายข้อมูล การเปลี่ยนแปลงโครงสร้างพื้นฐาน หรือการ deploy)

ในแผน v7 สัญญาผลลัพธ์ยังสามารถทำเครื่องหมายงานเป็น parallel_safe ได้ด้วย: เป็นการยืนยันที่กำหนดตอนสร้างว่างานนั้นรันใน delegate ได้โดยไม่สลับปนกับงานพี่น้อง เครื่องหมายนี้ไม่อนุญาตสิ่งใดเลยหากสัญญาไม่มีสิทธิ์ agent_delegation (การมอบหมายงาน)

พื้นผิวที่แตะต้อง (Touched Surface)

พื้นผิวที่แตะต้องคือสัญญาระหว่างสิ่งที่งานเปลี่ยนกับสิ่งที่ต้องตรวจสอบ มันมีอยู่เพื่อให้การตรวจสอบถูกเลือกตามผลกระทบ ไม่ใช่ตามความเคยชิน และเพื่อให้ผู้อ่านในภายหลังเห็นได้ว่าทำไมจึงเลือก gate นั้น งานที่เปลี่ยนพฤติกรรม MUST บันทึก

  • พื้นผิวที่วางแผน — พาธ โมดูล แพ็กเกจ หรือการกำหนดค่าที่งานตั้งใจจะเปลี่ยน เขียนไว้ก่อนลงมือแก้ไข
  • พื้นผิวจริง — รายการที่กระทบยอดแล้วหลังการแก้ไข ซึ่งมาจาก diff จริง เอเจนต์ MUST กระทบยอดพื้นผิวที่วางแผนกับพื้นผิวจริงก่อนเลือก gate
  • ผู้ใช้ที่ได้รับผลกระทบ — โมดูล แพ็กเกจ หรือบริการที่พึ่งพิงพื้นผิวจริง เท่าที่การแมปที่จัดทำเป็นเอกสารของ repository จะระบุได้ ในกรณีที่ระบุไม่ได้ รายการนั้น MUST บอกไว้เช่นนั้น
  • ระดับความเสี่ยง — หนึ่งใน: isolated (จำกัดอยู่ในโมดูลเดียวและการทดสอบของมัน); seam (เปลี่ยนสัญญา การคงข้อมูล การกำหนดเส้นทาง การ serialize การยืนยันตัวตน หรือการต่อสายของเฟรมเวิร์กระหว่างผู้ร่วมงาน); shared/core (ถูก import อย่างกว้างขวาง หรือเป็นการเปลี่ยน dependency, migration, การกำหนดค่า build/test, schema หรือ toolchain); unknown (การแมปหายไป ล้าสมัย หรือยังไม่ได้ตรวจสอบ)
  • การแมปการทดสอบที่ใช้ — การแมปที่จัดทำเป็นเอกสารหรือเครื่องมือใดที่ทำให้เลือกเช่นนั้น
  • gate ที่เลือกและเหตุผล — คำสั่งที่แน่ชัดและเหตุผลว่าทำไมมันจึงครอบคลุมพื้นผิวจริง

ไฟล์การกำหนดค่า schema ไฟล์รายการ dependency เทมเพลต fixtures migration และไฟล์คำสั่งของเอเจนต์ เปลี่ยนพฤติกรรมได้ และ MUST ถูกจัดระดับตามผลกระทบของมัน ไม่ใช่ตามนามสกุลไฟล์ งานที่เปลี่ยนเฉพาะร้อยแก้ว คอมเมนต์ หรือสิ่งประดิษฐ์จากการวิจัย MAY ประกาศว่าพื้นผิวไม่มีผลบังคับ และยังคงรันการตรวจที่ไม่ใช่ runtime ของ repository

ส่วน Delta (การเปลี่ยนแปลง brownfield)

งานจริงส่วนใหญ่แก้ไขพฤติกรรมที่มีอยู่แทนที่จะสร้างพฤติกรรมใหม่ งานที่เปลี่ยนวิธีทำงานของระบบที่มีอยู่ SHOULD พกส่วน Delta ที่อธิบายการเปลี่ยนแปลงเป็นสัญญาก่อน/หลังที่ชัดเจน โดยใช้หัวข้อรายการสาม:

  • ADDED — พฤติกรรมที่มีหลังงานและไม่มีก่อนหน้านี้
  • MODIFIED — พฤติกรรมที่มีทั้งสอง ระบุเป็น was: … → now: …
  • REMOVED — พฤติกรรมที่มีก่อนหน้าและหายไปอย่างตั้งใจหลังจากนั้น

แต่ละรายการ MUST เป็นพฤติกรรมที่สังเกตได้ — การตอบสนองของ endpoint flag ของ CLI สถานะ UI ค่าเริ่มต้น — ไม่ใช่รายละเอียดการ implement ส่วน Delta คือ diff ของผู้ตรวจสอบในระดับพฤติกรรม: เกณฑ์การยอมรับยืนยันรายการ ADDED/MODIFIED และรายการ REMOVED คือใบอนุญาตชัดเจนในการลบ สิ่งใดที่ไม่ได้ระบุว่า REMOVED MUST ยังคงทำงาน

Validation gate — เลือกตามระดับความเสี่ยง

การตรวจสอบคือ gate ที่เปลี่ยนการกล่าวอ้างว่าเสร็จให้กลายเป็นหลักฐานว่าเสร็จ งาน MUST NOT ถูกทำเครื่องหมายว่าเสร็จจนกว่าทุกคำสั่งในส่วนการตรวจสอบของมันจะรันและผ่านแล้ว gate ของงานที่เปลี่ยนพฤติกรรมถูกเลือกจากพื้นผิวที่แตะต้องซึ่งกระทบยอดแล้ว ตามระดับความเสี่ยง

ระดับความเสี่ยง การตรวจสอบที่ต้องมี
isolated การทดสอบของพฤติกรรมที่เปลี่ยนไปและของผู้ใช้ที่ได้รับผลกระทบ บวกกับการตรวจแบบสถิตที่ครอบคลุมพื้นผิวจริง
seam ข้างต้น บวกกับการทดสอบ integration หรือ contract ของรอยต่อนั้น — เพิ่มในงานนี้หากยังไม่มี การตรวจ integration ที่รอยต่อไม่ถูกเลื่อนไปไว้ท้ายแผน
shared/core ขยายไปยังแพ็กเกจที่ได้รับผลกระทบและผู้ใช้ทางอ้อมของมัน ในกรณีที่ไม่สามารถจำกัดขอบเขตผลกระทบได้อย่างน่าเชื่อถือ ให้รันการตรวจสอบครบวงจร
unknown ตรวจสอบและแก้ไขการเลือกให้ถูกต้อง หากยังระบุไม่ได้ ให้รันคำสั่งที่กว้างกว่าหรือคำสั่งครบวงจร
ไม่มีผลบังคับ (ร้อยแก้ว/การวิจัย) การตรวจที่ไม่ใช่ runtime ของ repository พร้อมบันทึกเหตุผลไว้ในพื้นผิวที่แตะต้อง

การเปลี่ยนพฤติกรรม MUST ทำให้ได้การเลือกการทดสอบที่ไม่ว่างเปล่าและเกี่ยวข้อง — selector ที่ไม่ถูกต้องหรือ runner ที่เลือกการทดสอบได้ศูนย์รายการไม่ใช่ความครอบคลุม ในกรณีที่แผนที่การทดสอบของ repository ล้าสมัย ให้อนุมานการเรียกใช้ที่ถูกต้องและบันทึกการอัปเดตการแมปนั้นไว้ คำสั่งเล็ก ๆ ที่ขาดหายไปไม่เคยจำเป็นต้องรันการออนบอร์ดใหม่ทั้งหมด ในกรณีที่ไม่มีการเรียกใช้แบบจำกัดขอบเขตอยู่เลย ให้ใช้ชุดการทดสอบที่ใช้ได้ทั้งหมด — เป็นพฤติกรรม legacy ไม่ใช่ข้อผิดพลาด

เมื่องานเพิ่มฟังก์ชันหลักใหม่หรือเปลี่ยนพฤติกรรมที่มีอยู่อย่างมีนัยสำคัญ เกณฑ์การยอมรับของมัน MUST รวมความครอบคลุมของการทดสอบอัตโนมัติสำหรับพฤติกรรมที่ใหม่หรือเปลี่ยนไป และการตรวจสอบของมันรันการทดสอบของ repository ร่วมกับการตรวจ lint, type-check และ format — ไม่ใช่เพียง build เท่านั้น การทดสอบที่มีอยู่ MUST ยังคงผ่าน

การตรวจสอบครบวงจรบนสถานะสุดท้าย

gate ต่อหนึ่งงานตรวจสอบสิ่งที่แต่ละงานแตะต้อง มันไม่ได้แทนที่การตรวจสอบแผนทั้งแผน ก่อนที่แผนจะเสร็จสิ้น การตรวจสอบที่ใช้ได้ทั้งหมดของ repository MUST รันและผ่านบนสถานะที่เกี่ยวข้องลำดับสุดท้าย หลังการเปลี่ยนแปลงเชิงสาระครั้งสุดท้าย — ภายใน Final Review การรันที่กว้างกว่าในช่วงก่อนหน้าเกิดขึ้นที่ขอบเขตการ integrate หรือหลังการเปลี่ยนแปลงแบบ shared/core ไม่ใช่ตามตารางนับจำนวนงาน ผลลัพธ์ที่ผ่านแล้ว MAY ถูกใช้ซ้ำได้ก็ต่อเมื่อมีหลักฐานว่า input ที่เกี่ยวข้องเทียบเท่ากัน มิฉะนั้นให้รันใหม่ การรัน gate แต่ละครั้งทิ้งบันทึกที่กระชับไว้: คำสั่ง ขอบเขต revision ผลลัพธ์ และพาธของหลักฐาน

วินัยด้านความปลอดภัย

ความปลอดภัยเป็นเรื่องสำคัญลำดับแรกเช่นเดียวกับการทดสอบ และเป็นไปตามโมเดลสองชั้นเดียวกัน: วินัยต่อหนึ่งงานขณะที่งานกำลังดำเนินอยู่ บวกกับการตรวจความปลอดภัยของ Final Review ที่ครอบคลุมชุดการเปลี่ยนแปลงทั้งหมดในตอนท้าย เมื่อใดก็ตามที่งานแตะต้องการพิสูจน์ตัวตนหรือการให้สิทธิ์ การจัดการ input, secrets หรือการกำหนดค่า, พื้นผิวเครือข่าย ไฟล์ หรือ shell, หรือ dependencies:

  • เกณฑ์การยอมรับ ของมัน MUST ระบุความคาดหวังด้านความปลอดภัยของการเปลี่ยนแปลงนั้น — input ถูก validate และ escape, ไม่มีสาระความลับในโค้ดหรือ fixtures, การตรวจสอบ auth ถูกรักษาไว้หรือเสริมให้แข็งแกร่งขึ้น — สอดคล้องกับ docs/SECURITY.md
  • ทุก commit MUST ได้รับการยืนยันว่าปราศจาก secrets หรือ credentials ก่อนที่มันจะ land รวมถึง test fixtures และตัวอย่างในเอกสารด้วย secret ใน commit ที่ push ไปแล้ว MUST ถูกถือว่ารั่วไหลและต้อง rotate ไม่ใช่เพียงลบออก
  • ในกรณีที่งานที่อ่อนไหวด้านความปลอดภัยมีสาระสำคัญ งาน hardening เฉพาะ SHOULD ถูกวางไว้ทันทีหลังงาน implementation และก่อนงาน comprehensive-tests เพื่อให้ข้อค้นพบถูกแก้ไขก่อนที่การทดสอบจะเข้ารหัสพฤติกรรมนั้น และข้อค้นพบแต่ละอย่างกลายเป็นกรณี regression แทนที่จะเป็นการทำงานซ้ำ

วินัยต่อหนึ่งงานนี้ไม่ได้แทนที่การตรวจความปลอดภัยของ Final Review: การตรวจต่อหนึ่งงานจับปัญหาใน commit ที่ปัญหาเกิดขึ้น ขณะที่ gate สุดท้ายตรวจสอบทั้งแผน — รวมถึงงานทดสอบและงานเอกสารเองด้วย

มาตรฐานคุณภาพ — พิสูจน์แล้ว ไม่ใช่แค่กล่าวอ้าง

อัตลักษณ์ของ DWP คือความเป็นเลิศที่ได้รับการตรวจสอบ: ความถูกต้อง ความชัดเจน ความเรียบง่าย ความปลอดภัย ประสิทธิภาพ และความสามารถในการขยายตัว ซึ่งพิสูจน์แล้ว ไม่ใช่แค่กล่าวอ้าง กฎเหล่านี้ใช้กับทุกแผนและทุกเอเจนต์ที่ทำแผนต่อ (§5.1.4 ของ DWP_SPECIFICATION.md ในแพ็ก):

  1. gate คือสมมติฐาน gate ที่สร้างใหม่หรือเปลี่ยนแปลง MUST แสดงให้เห็นว่าล้มเหลวกับข้อบกพร่องที่ฝังไว้ (หรือกับ tree ก่อนการเปลี่ยนแปลง) ก่อนจะได้รับความไว้วางใจ และการรันที่ล้มเหลวนั้นถูกบันทึกไว้ การผ่านแบบว่างเปล่า — binary ที่ขาดไป input ว่าง ไม่มีไฟล์หรือการทดสอบใดตรงเลย log ว่าง หรือ || true บน gate สุดท้าย — ถือเป็นความล้มเหลว pipeline รันด้วย pipefail (หรือรักษา exit status ไว้ด้วยวิธีอื่น) gate ที่ค้นหาเฉพาะข้อความที่เอเจนต์เขียนเองเป็นเพียงตัวป้องกันเชิงโครงสร้าง ไม่ใช่หลักฐานที่สังเกตได้ของพฤติกรรม งานที่มีสัญญา input ต้องระบุ input กรณีขอบ (ว่าง หลายบรรทัด ช่องว่างนำหน้าหรือต่อท้าย) ไว้ในเกณฑ์การยอมรับ — การผ่านทุกตัวอย่างไม่ได้พิสูจน์กฎ การทดสอบผลลัพธ์แบบตรงตัวต้องตรวจด้วย sentinel ([ "$(f x; printf s)" = $'y\ns' ]): $(…) ตัดการขึ้นบรรทัดใหม่ท้ายสุดทิ้ง ดังนั้นหากไม่ทำเช่นนี้ ผลลัพธ์ที่ทำการขึ้นบรรทัดใหม่สุดท้ายหายไปหรือซ้ำเป็นสองครั้งก็จะผ่านได้
  2. เทียบกับ base ประสิทธิภาพ coverage และขนาดถูกเทียบกับ base branch (หรือ revision เริ่มต้นของแผน) ไม่ใช่เทียบกับเกณฑ์เพียงอย่างเดียว การถดถอยเมื่อเทียบกับ base ต้องรายงานแม้เกณฑ์ยังผ่านอยู่
  3. วัดก่อน งานที่ 1 ของการแก้ไข การตรวจสอบ หรือการปรับประสิทธิภาพ ตรวจสอบสมมติฐานตั้งต้นและเครื่องมือวัดก่อนเปลี่ยนแปลงสิ่งใด
  4. ออกแบบก่อนสร้าง การเปลี่ยนแปลงที่ไม่ใช่เรื่องเล็กต้องเขียนอินเทอร์เฟซ รูปแบบความล้มเหลว ท่าทีด้านความปลอดภัย และแผนการทดสอบไว้ก่อนเขียนโค้ด
  5. ซื่อตรงต่อสภาพแวดล้อม gate รันในสภาพแวดล้อมที่ประกาศไว้ — คลาสคำสั่ง wrapper สำหรับคอนเทนเนอร์ working directory ที่ระบุชัด และ locale ที่ตรึงไว้เมื่อมีการเปรียบเทียบเอาต์พุต ความล้มเหลวของสภาพแวดล้อมคือสิ่งที่ขวางอยู่ซึ่งต้องแก้หรือรายงาน — ไม่ใช่การผ่าน และไม่โยนความผิดให้การเปลี่ยนแปลง
  6. รีวิวก่อนขั้นตอนที่ย้อนกลับไม่ได้ AI Diff Review ในเครื่องของ Final Review รันก่อนการ merge การติดแท็ก หรือการเผยแพร่ใด ๆ ที่แผนทำ โดยเทียบกับ baseline ของแผน การเสร็จสิ้นแผนยังคงรักษาสัญญา never-block ของการรีวิว (reviewer ที่ไม่มีอยู่ถูกบันทึกเป็นข้อค้นพบ local reviewer not installed) แต่ขั้นตอน merge แท็ก หรือเผยแพร่เองยังคงถูกบล็อกด้วยข้อค้นพบนั้นจนกว่า reviewer จะรัน หรือนักพัฒนายกเว้นให้อย่างชัดเจน — ไม่ข้ามไปเงียบ ๆ เด็ดขาด การเปลี่ยนแปลงด้านระเบียบวิธี โปรโตคอล และความปลอดภัย SHOULD ได้รับการรีวิวจาก reviewer ของผู้ให้บริการหรือเอเจนต์อื่นด้วย
  7. หลักฐานที่กระชับ analysis_results/ เก็บรายงาน log digest และตัวชี้ — ไม่เก็บผลิตภัณฑ์ dependency tree หรือสำเนาที่ vendor มา ผลิตภัณฑ์มี repository ของตัวเองหรือ touched surface ที่ประกาศไว้
  8. ความต่อเนื่องไม่เคยลดมาตรฐาน เอเจนต์ผู้สืบทอดได้รับ gate ชุดเดียวกัน handoff packet ไม่ปิดเกณฑ์ใด ไม่ผ่อน gate ใด และไม่ข้ามการรีวิวใด (ความเป็นอิสระของ swarm)

วงจรชีวิตของแผน — Final Review

ทุกแผนที่สอดคล้องซึ่งเขียนขึ้นภายใต้เวอร์ชันนี้จบลงด้วยงานที่บังคับเพียงหนึ่งเดียวพอดี นั่นคือ Final Review (งานที่ N) ความรับผิดชอบสองอย่างที่เวอร์ชันก่อนหน้าวางไว้ในงานปิดท้ายแยกกันถูกย้ายที่: การตัดสินใจเรื่อง skill ย้ายเข้าไปอยู่ในงานที่สร้างรูปแบบนั้นขึ้นมา และรายงานสรุปสำหรับผู้บริหารกลายเป็นสิ่งประดิษฐ์แบบเลือกได้เมื่อมีคำขอ ไม่มีสิ่งใดในการตรวจความปลอดภัยถูกผ่อนปรน

Final Review MUST ทำตามลำดับนี้

(ก) การตรวจความปลอดภัย — ทบทวนชุดการเปลี่ยนแปลงสะสมทั้งหมดของแผนเพื่อหา secret ที่ hardcode ไว้ ความเสี่ยงจาก injection พื้นผิวการโจมตีใหม่ การยืนยันตัวตนที่อ่อนแอลง และข้อมูลอ่อนไหวใน log หรือเอกสาร ตรวจสอบ dependency ที่ถูกเพิ่มเข้ามา ยืนยันว่า docs/SECURITY.md ยังคงสะท้อนความเป็นจริง และเขียนรายงานการทบทวนความปลอดภัยแม้เมื่อไม่พบสิ่งใด ข้อค้นพบระดับวิกฤตถูกแก้ไข — หรือได้รับการยอมรับอย่างชัดเจนจากผู้ใช้ — ก่อนที่แผนจะเสร็จสิ้น การตรวจนี้รวมถึงการรีวิวในเครื่องด้วย AI Diff Reviewer ที่บังคับบนช่วงการเปลี่ยนแปลงทั้งหมดของแผน reviewer ที่ไม่มีอยู่ถูกบันทึกเป็นข้อค้นพบ local reviewer not installed ไม่ใช่การข้ามไปอย่างเงียบ ๆ

(ข) การตรวจสอบครบวงจรบนสถานะสุดท้าย — การตรวจสอบที่ใช้ได้ทั้งหมดของ repository รันและผ่านบนสถานะที่เกี่ยวข้องลำดับสุดท้าย

(ค) การกระทบยอดเรื่อง skill — ทุกงานพกการจัดการผลลัพธ์ skill มาด้วย และผู้สมัครที่ถูกบันทึกไว้ทุกรายมีการจัดการแล้ว ไม่มีรายงานการค้นพบรอบที่สอง

(ง) การกระทบยอดเอกสาร — พื้นผิวที่แตะต้องของทุกงานที่เปลี่ยนพฤติกรรมถูกตรวจเทียบกับเอกสารที่ลงทะเบียนพื้นผิวนั้นไว้ (ทะเบียน gate ก่อน แล้วจึงเอกสารสถาปัตยกรรมและเอกสารโมดูล แล้วจึงดัชนี AGENTS.md) สิ่งที่ตกหล่นถูกแก้ไขภายในการรีวิว และการตรวจสอบที่ได้รับผลกระทบถูกรันใหม่

(จ) การเสร็จสิ้น — บันทึกของแผนสอดคล้องกัน (รายการงาน log ความคืบหน้า และในแผน v6 และ v7 คือ snapshot ที่ได้จาก journal และ receipt) รายงานการเสร็จสิ้นพร้อมสิ่งที่ส่งมอบ หลักฐานการตรวจสอบ และข้อจำกัด เสนอรายงานสรุปสำหรับผู้บริหารหนึ่งครั้ง แผนเสร็จสิ้นไม่ว่าข้อเสนอนั้นจะได้รับคำตอบหรือไม่

Final Review รันตามลำดับหลังงานอื่นทั้งหมด และไม่เคยถูกวางไว้ในกลุ่มแบบขนาน

การตัดสินใจเรื่อง skill ภายในงาน

คำถามที่ว่า “งานนี้สร้างรูปแบบที่นำกลับมาใช้ใหม่ได้ซึ่งคุ้มค่ากับ skill หรือ agent หรือไม่” ถูกตอบภายในงานที่สร้างรูปแบบนั้นขึ้นมา ขณะที่หลักฐานของมันยังอยู่ในบริบท การเสร็จสิ้นและ Log ของทุกงานพกการจัดการผลลัพธ์ skill (skills disposition) มาด้วย: ไม่มี อัปเดต skill ที่มีอยู่ สร้างสิ่งประดิษฐ์ที่มีชื่อ หรือเลื่อนออกไปพร้อมเหตุผล การเขียนขึ้นที่สมควรเกิดขึ้นภายในงานนั้น ก่อน validation gate และ commit ของมัน หลังตรวจสอบแคตตาล็อกที่มีอยู่เพื่อหาความซ้ำซ้อน

รายงานสรุปสำหรับผู้บริหาร — แบบเลือกได้ เมื่อมีคำขอ

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

โปรโตคอลการเสร็จสิ้นงาน

หลังผ่านการตรวจสอบและก่อนก้าวไปงานถัดไป เอเจนต์ MUST ตามลำดับ: (1) ทำเครื่องหมายงานเป็น [x] ใน README ของแผน; (2) เพิ่มจำนวนสถานะแผน; (3) กรอกส่วนการเสร็จสิ้นและ Log ของงานโดยไม่มีค่า placeholder; (4) เพิ่มรายการ 3–5 bullet เข้า PROGRESS.md; (5) commit (ในกรณีที่แผน commit) ในรูปแบบ {type}({scope}): {description} — Task {N} of PLAN_{name}; (6) ในกรณีที่แผนพกชั้นสถานะ เขียน state.json ใหม่แบบ atomic — งาน completed บันทึก gate บันทึกผลลัพธ์ commit hash

หกขั้นตอนรวมเป็น transaction ตรรกะหนึ่งรายการ เอเจนต์ที่ถูกขัดจังหวะกลางโปรโตคอล MUST NOT เริ่มงานถัดไป — มันต้องเสร็จสิ้นหรือยกเลิกการเสร็จสิ้นบางส่วนก่อน

DWP Resume Protocol

Resume MUST เป็นไปได้จากไฟล์ของแผนบวก git log เท่านั้น โดยไม่มีสถานะภายนอก ใน workspace ที่ไม่มี git — ดู Archetype §3 — state.json ของแผน REQUIRED และทำหน้าที่แทน git log

เอเจนต์ที่กำลัง resume — เซสชันใหม่ เอเจนต์อื่น รอบ daemon ที่กำหนดเวลา หรือ cloud session ที่ตื่น — MUST ทำพิธีกรรมนี้ตามลำดับ:

  1. Re-anchor อ่าน README ของแผน: เป้าหมาย แนวทางทั่วไป รายการงาน
  2. ระบุ checkpoint หางานที่ยังไม่ได้ทำเครื่องหมายงานแรกใน README อ่าน git log และ git status (หรือ checkpoint ของ state.json ในกรณีที่ไม่มี git)
  3. ปรับประสานสถานะ ในกรณีที่ state.json มีอยู่ เปรียบเทียบกับ checkbox ของ README เมื่อเบี่ยงเบน สร้าง state.json ใหม่จาก markdown ก่อนดำเนินการต่อ
  4. ตรวจสอบรอยต่อ อ่านส่วนการเสร็จสิ้นและ Log ของงานจุด resume และรายการ PROGRESS.md ล่าสุด — พื้นฐานที่ยืนยันล่าสุดของเซสชันก่อนหน้า
  5. Smoke-test รัน validation ราคาถูกที่สุดที่คงอยู่ของ repository เพื่อยืนยันว่าโลกยังทำงานอยู่ก่อนสร้างต่อจากมัน smoke test ที่ล้มเหลวถูกตรวจสอบก่อน ไม่ใช่สร้างต่อจากมัน
  6. ดำเนินการแบบ atomic ดำเนินงานถัดไปเพียงงานเดียว อย่ารวมข้างหน้า

เอเจนต์ MUST เชื่อถือเครื่องหมาย [x] ที่เสร็จแล้ว และ MUST NOT ตรวจสอบงานที่เสร็จแล้วซ้ำ เว้นแต่ผู้ใช้ร้องขออย่างชัดเจน หรือ smoke test ล้มเหลวในลักษณะที่เกี่ยวข้องกับงานที่เสร็จแล้ว

ลูปดำเนินงาน

DWP นิยามหกปฏิบัติการของแผน

  • create — สร้างแผนใหม่จากเป้าหมาย
  • execute — ดำเนินแผนทีละงาน
  • refine — แก้ไขแผนที่มีอยู่
  • resume — ดำเนินแผนที่ถูกขัดจังหวะต่อ
  • status — รายงานสถานะแผนโดยไม่ดำเนินการ
  • verify — ตรวจสอบความสอดคล้องของ repository และแผนแบบอ่านอย่างเดียว

sub-skill อีกสามตัวทำให้แพ็กที่ติดตั้งครบถ้วน: onboard (ทำให้ repository เป็น AI-first) author (สร้างหรืออัปเดต skill เอเจนต์ และคำสั่งของ repository เอง) และ upgrade (ย้าย skill ที่ติดตั้งไปยังรุ่นที่ใหม่กว่าเมื่อได้รับความยินยอม โดยไม่ย้ายแผนที่มีอยู่) ตัว router และ sub-skill ทั้งเก้าตัวนี้จัดส่งมาเป็น skill pack เดียว

พื้นที่ทำงานผลลัพธ์

สิ่งประดิษฐ์ทั้งหมดของ DWP MUST อยู่ภายใต้ไดเรกทอรี .dwp/ ที่ถูก gitignore ที่รากของ repository

สถานะแผนที่เครื่องอ่านได้

แผน MAY พกชั้นสถานะที่เครื่องอ่านได้ — manifest.json (เอกลักษณ์คงที่) และ state.json (สถานะต่อหนึ่งงานแบบสด บันทึก validation gate บันทึกผลลัพธ์ checkpoint สถานะ blocked) แผน markdown ยังคงเป็นแหล่งความจริง ชั้น JSON เป็นการฉายภาพที่ได้รับมา สร้างใหม่ที่จุดโปรโตคอลและปรับประสานตอน resume

ชั้นสถานะ RECOMMENDED สำหรับแผน v5 REQUIRED สำหรับการดำเนินงานแบบไม่มีผู้ดูแล และ REQUIRED สำหรับ agent workspace ที่ไม่มี git ดูนิยามเชิงบรรทัดฐานเต็มรูปแบบใน สถานะแผน

ความเข้มงวดตามสัดส่วน

ความเข้มงวด MUST เป็นสัดส่วนกับงาน พิธีกรรมบนการเปลี่ยนแปลงเล็กน้อยคือความล้มเหลวของระเบียบวิธี ไม่ใช่ความปลอดภัยเพิ่มเติม งานทุกชิ้นอยู่ในระดับเดียวกันพอดี:

ระดับ เมื่อใด รูปแบบ
micro การเปลี่ยนแปลง atomic เดียว: หนึ่งความกังวล ประมาณหนึ่งรอบ ไม่มีการประสานงาน การแก้บั๊ก การเปลี่ยนข้อความ การปรับการกำหนดค่า ไม่มีโฟลเดอร์แผน เอเจนต์ระบุเป้าหมาย เกณฑ์การยอมรับ และ validation gate แบบ inline ในการสนทนา ดำเนินการ ตรวจสอบ commit
standard งานหลายขั้นตอนที่มีขอบเขตจริง: ฟีเจอร์ การ refactor การย้ายข้อมูลภายใน repo หนึ่ง ระดับเริ่มต้น แผนเต็มรูปแบบ: โฟลเดอร์แผน งานสิบส่วน Final Review
deep งานระยะยาวที่ครอบคลุมกลุ่มแบบขนาน child repository หรือหลาย session ไม่มีผู้ดูแล แผน standard บวกความสามารถ orchestrator และ/หรือ team-agents และชั้นสถานะ

เอเจนต์ที่ถูกขอให้สร้างแผนสำหรับงานระดับ micro MUST บอกว่าแผนไม่สมดุลและเสนอรูปแบบ inline แทน โฟลเดอร์แผน MUST NOT ถูกสร้างสำหรับการเปลี่ยนแปลงไฟล์เดียวเล็กน้อย

งานระดับ micro ยังคงรักษาสิ่งที่ต้องทำเสมอ: เป้าหมายชัดเจน validation gate ที่รันและผ่าน และวินัยการทดสอบสำหรับการเปลี่ยนแปลงพฤติกรรม ระดับเปลี่ยนการบรรจุ ไม่ใช่ gate

เมื่อขอบเขตขยายระหว่างดำเนินการ — งาน micro เปิดเผยขอบเขตจริง แผน standard แตกออกเป็น sub-repository — เอเจนต์ MUST หยุดและยกระดับงานไปยังระดับถัดไปแทนที่จะยืดระดับปัจจุบัน

ความเข้ากันได้

แผนและ repository จากเวอร์ชันก่อนหน้ายังคงสอดคล้อง และตัวตรวจสอบความสอดคล้อง MUST แยกแยะสิ่งประดิษฐ์ legacy ที่รู้จัก (ยอมรับ) ออกจากสิ่งประดิษฐ์ที่ประกาศเวอร์ชันนี้แต่ไม่ถูกต้องอย่างเป็นวัตถุวิสัยภายใต้มัน (ปฏิเสธ)

กรณี กฎ
แผนที่เขียนขึ้นภายใต้เวอร์ชันก่อนหน้า (สามงานสุดท้ายที่บังคับ; งานที่ไม่มีพื้นผิวที่แตะต้อง) ถูกดำเนินโดยเวอร์ชันนี้ รองรับ ดำเนินตามรูปแบบที่บันทึกไว้ของมันเอง — งานสุดท้ายไม่ถูกเพิ่ม ลบ หรือจัดลำดับใหม่ ไม่มีการเพิ่มพื้นผิวที่แตะต้องระหว่างทาง และการตรวจสอบถอยกลับไปใช้ชุดที่ใช้ได้ทั้งหมด เซสชัน refine MAY ย้ายมันอย่างตั้งใจ
repository ที่ออนบอร์ดภายใต้เวอร์ชันก่อนหน้า ถูกออนบอร์ดหรือวางแผนโดยเวอร์ชันนี้ รองรับ แผนถอยกลับไปใช้ gate แบบชุดเต็ม เอกสารการเรียกใช้แบบจำกัดขอบเขตที่ขาดหายไปเป็นข้อค้นพบที่ระบุชื่อการอัปเกรด harness แบบเจาะจง ไม่ใช่ความล้มเหลว
แผนที่เขียนขึ้นภายใต้เวอร์ชันนี้ เอเจนต์ทำตามเวอร์ชันนี้ รองรับ — เป็นเป้าหมาย
แผนที่เขียนขึ้นภายใต้เวอร์ชันนี้ เอเจนต์ทำตามเวอร์ชันก่อนหน้า ไม่รองรับ แต่จัดทำเป็นเอกสารไว้ repository ที่ตรึง skill รุ่นเก่า SHOULD อัปเกรด skill ก่อนรับแผนใหม่

การกำหนดเวอร์ชัน

ข้อกำหนดนี้ใช้การกำหนดเวอร์ชันเชิงความหมาย