/build
ผู้อ่าน: Coding agent และผู้ดูแล integration คำสั่ง CLI และ schema ด้านล่างเป็นเอกสารระบบ ไม่ใช่รายการที่ผู้ใช้ต้องทำเอง ผู้ใช้เริ่มที่ เริ่มใช้งาน
พูดง่าย ๆ: Build คือขั้นที่ agent เขียนโค้ดและ test ตามข้อตกลง คุณไม่ต้องทำอะไร
นอกจาก agent ถามเรื่องที่มีแต่คุณตอบได้ งานเกิดใน sandbox
(สำเนาที่แยกไว้) จึงไม่แตะโฟลเดอร์ของคุณ harness เตรียมเครื่องมือ ติดตามงาน
และกู้คืนปัญหา setup เอง ผลที่ได้คืองานที่เสร็จใน sandbox แล้ว Prove เริ่มต่อโดยอัตโนมัติ
Build ไม่ส่งอะไรเข้าโปรเจกต์ของคุณ มีเพียง /land เท่านั้นที่ทำ
สำหรับ agent และผู้ดูแล integration
หัวข้อที่มีชื่อว่า “สำหรับ agent และผู้ดูแล integration”/build <change>Build ใช้คำสั่งหลักของ agent เพียงคำสั่งเดียว:
claude-foundation advance <change> --through provenCoordinator ตรวจ agreement สร้างหรือ sync workspace แยก compile dependency ของ
task ตรวจ lease ที่ยังทำงาน แล้วคืน action protocol v6 เพียงหนึ่งตัว เมื่อทำ action
นั้นเสร็จ Agent เรียก resume ที่ส่งกลับมา โดยไม่ประกอบ chain ของ sandbox,
packet, plan และ dispatch เอง Proof เริ่มในการเรียกเดียวกันก็ต่อเมื่อ Build เสร็จแล้ว
/build จึงไม่ต้องวนกลับมาที่ DONE ของ Build แยกอีกรอบ หยุดที่ proven และไม่ Land
ถ้าต้องการหยุดแค่ Build ยังใช้ --through build ได้
Action เจ็ดแบบ
หัวข้อที่มีชื่อว่า “Action เจ็ดแบบ”| Action | ความหมาย |
|---|---|
WORKING |
งานของ harness ยังทำอยู่ (proof หรือ transaction ของ Land) ให้รอแทนการเริ่มรอบใหม่ |
EDIT |
ทำเฉพาะ task, workspace และ path ที่คืนมา (ใช้ workspace ของแต่ละ task; task ของ submodule ชี้ไปที่ repository sandbox ของมัน) เปิดเฉพาะไฟล์ใน contextFiles สร้างไฟล์ใน newFiles แล้วรัน checkCommand ของแต่ละ task (verify ที่รันผ่าน claude-foundation exec) |
REPAIR |
แก้ repair batch ที่เรียงตาม dependency ให้ครบแล้ว resume |
RUN_EXTERNAL |
รัน boundary operation ที่ตั้งค่าไว้หนึ่งตัว |
WAIT |
รอ resource ที่ task หรือ change อื่นถืออยู่ หรือรอเจ้าของภายนอก harness จะ resume เอง และ state ถูกเก็บไว้ |
ASK_USER |
เรื่องที่มีแต่คุณตัดสินได้: อนุมัติ spec, ความหมายของ product, acceptance, waiver, review ที่ใช้รอบหมด, Land, side effect, budget หรือสาเหตุในสภาพแวดล้อมของคุณ |
DONE |
ถึงเป้าหมาย Build แล้ว |
ทุก action ที่ยังไม่จบระบุสาเหตุ actor ทางเลือกที่ปลอดภัย state ที่เก็บไว้ และ resume command ที่แน่นอน Automatic recovery ทำได้เฉพาะในอำนาจปัจจุบัน ระบบไม่ เปลี่ยน lease เก่าหรือการรันซ้ำให้กลายเป็น pass ก่อนถึง Land ไม่มีอะไรหยุด agent นอกจากเรื่องที่คุณต้องตัดสินใจ: setup ที่ล้ม, sync conflict และ resource ที่ change อื่นถืออยู่ ส่งไปที่ agent หรือ harness ไม่ใช่คุณ การแก้ที่ได้ผลเดิมซ้ำสามรอบจะกลับไปหาเจ้าของงาน พร้อมให้เปลี่ยนวิธี และแนบ output ที่วนซ้ำมาด้วย
Task เดียว หรือ chain ของ task ที่ต้องทำทีละตัว ใน repository เดียวที่ไม่มี claim ข้าม repository
หรือ resource ร่วม จะทำใน session ปัจจุบัน: EDIT จะส่งทุก task มาพร้อมกัน
เรียงตาม dependency ให้ทำให้ครบแล้ว resume ครั้งเดียว advance จะรัน verify ของแต่ละ
task ใหม่ ติ๊ก task ที่ผ่านใน tasks.md ให้เอง และคืนเฉพาะ task ที่ล้ม
(verificationFailures) พร้อม task ที่ต้องรอมัน Agent ไม่ต้องแก้ checkbox เอง
Isolation และ concurrency
หัวข้อที่มีชื่อว่า “Isolation และ concurrency”เขียน product ได้เฉพาะ workspace และ path ที่ EDIT คืนมา Shell mutation ต้องเริ่ม
จาก workspace นั้น (บน Claude Code phase guard จะปัก directory ที่ shell รายงานมาเป็น
anchor ให้เมื่ออยู่ใน workspace แล้ว) Worktree มีเฉพาะ tracked files ถ้าไม่มี setup
command Harness จะรันคำสั่งติดตั้งตาม lockfile ของ workspace เอง (npm ci หรือคำสั่ง
frozen-lockfile ของ pnpm, yarn, bun) ตั้ง sandbox.installDependencies: false เพื่อปิด
และ sandbox.setupCommand หรือ setup command ราย repository ใช้แทนได้ การติดตั้งที่ล้ม
ไม่ block Build: agent จะได้รับคำสั่ง directory และ log ไปทำต่อ เมื่อ Build แก้
package.json หรือ lockfile, harness จะรัน setup ใหม่ก่อนการตรวจครั้งถัดไป ส่วนการ link หรือ copy
node_modules ของ checkout เข้า workspace จะถูกปฏิเสธ
Phase hook และ claude-foundation exec ใช้ containment policy เดียวกัน ทั้งคู่
ปฏิเสธ absolute operand ที่อยู่นอก workspace, การเปลี่ยน directory ออกภายหลัง และ
การเขียนผ่าน symlink ออกนอก workspace ส่วน exec derive phase จาก runtime state
และเริ่ม child process ของ Build ใน canonical workspace สำหรับ change แบบหลาย
repository ให้ใช้ exec <change> --repo <id> (หรือ --task <id>) เพื่อเริ่มใน
sandbox ของ repository นั้น นี่ยังเป็น cooperative
containment ดังนั้น host ต้องรับผิดชอบ process isolation สำหรับผลทางอ้อม
Parallel mode คืนเฉพาะ task อิสระพร้อม lease instruction Host ต้องเริ่ม worker ที่
lease สำเร็จทั้งหมดก่อนรอ ตรวจ write จริง แล้ว resume คำสั่งเดิม ถ้ามี task พร้อมทำเพียงตัวเดียว
session ปัจจุบันจะทำเองภายใต้ lease ของ harness แทน worker การแก้นอก path ของทุก task
ไม่หยุด Build: Prove จะบันทึกไว้ และ path ของ control-plane, CI หรือ secret หรือไฟล์ที่ถูกลบ
จะแสดงให้คุณเห็นตอน Land Primitive อย่าง
sandbox, packet, agents plan, agents dispatch ยังอยู่ใน help --all สำหรับ
operator และ host integration
พบ behavior ใหม่ระหว่าง Build
หัวข้อที่มีชื่อว่า “พบ behavior ใหม่ระหว่าง Build”อย่าแก้ OpenSpec หลาย ledger ด้วยมือ ให้ส่ง semantic amendment หนึ่งชุด:
claude-foundation change amend <change> <amendment.json> --consume-amendmentCompiler รักษา task ที่เสร็จและ manual section ตรวจ agreement ใหม่แบบ transaction
แล้วกลับมา advance โดย updateTasks เพิ่ม claim coverage ได้ แต่เปลี่ยน outcome
ไม่ได้ ถ้าสัญญาของ task เปลี่ยนต้องเพิ่ม task ใหม่ verify ของ task ที่เสร็จแล้วเปลี่ยนได้เฉพาะด้วย
reopen: true (--reopen) ซึ่งเอาเครื่องหมายเสร็จออกให้ต้องผ่านใหม่ และ removeTasks
ถอน task ที่ยังไม่เสร็จซึ่งไม่มี task อื่นพึ่งพาได้
verify command ที่ผิดของ task ที่ยังไม่เสร็จแก้ได้ตรง ๆ โดยคง approval ไว้:
claude-foundation change amend <change> --task <task> --verify <command> task จะถูก
รับเมื่อคำสั่งใหม่ผ่านใน workspace เท่านั้น และคำสั่งที่ผ่านเสมอจะถูกปฏิเสธ
reviseRequirements และ removeRequirements แก้หรือลบ requirement เดิมใน
amendment เดียวกัน จึงไม่ต้อง abandon change เพียงเพราะการตัดสินใจเปลี่ยน งาน cloud,
secret, Terraform, deploy หรือ restart ที่ต้องใช้
สิทธิ์จะเป็น external operation แบบมีชนิด Build ไม่ขอ credential
DONE ของ Build ยังไม่ใช่ proof /build จึงเดินต่อเข้า Prove ให้อัตโนมัติ เพราะ Prove
ไม่มี side effect ภายนอก และหยุดที่ proven โดยไม่ Land