ติดตั้ง
ผู้อ่าน: ผู้ดูแลโปรเจกต์และ agent ที่ได้รับอนุญาตให้ตั้งค่า หากต้องการใช้งานตามปกติ เริ่มที่ เริ่มใช้งาน
ติดตั้ง CLI claude-foundation ครั้งเดียวในเครื่อง แล้ว initialize Change Loop
ในแต่ละโปรเจกต์ การรัน init ซ้ำคือการอัปเกรดไฟล์ที่ระบบดูแล ใช้กับรีโปที่มีของ
อยู่แล้วได้: ระบบเติมสิ่งที่ขาด รีเฟรชเฉพาะไฟล์ของตัวเอง และไม่แตะไฟล์ของโปรเจกต์
สิ่งที่จำเป็นและเครื่องมือที่แนะนำ
หัวข้อที่มีชื่อว่า “สิ่งที่จำเป็นและเครื่องมือที่แนะนำ”| เครื่องมือ | สถานะ | เหตุผล |
|---|---|---|
| Node.js 20.19 ขึ้นไป | จำเป็น | runtime เป็น ESM Node ล้วน ไม่มีขั้นตอน compile |
| OpenSpec CLI 1.7.0 | จำเป็น | ใช้ sync spec และ archive |
| Git | แนะนำ | ใช้แยกงานด้วย worktree; โปรเจกต์ที่ dirty หรือไม่ใช่ Git จะใช้ isolated copy แทน |
npm install -g @fission-ai/openspec@1.7.0แนะนำให้มี jq เพื่อ merge hook เข้า .claude/settings.json เดิม หากไม่มี
installer จะทำงานต่อโดยเก็บไฟล์เดิมไว้ และสร้าง
.claude/settings.foundation.json ให้ตรวจและ merge เอง
ติดตั้งจาก source
หัวข้อที่มีชื่อว่า “ติดตั้งจาก source”git clone https://github.com/Maximumsoft-Co-LTD/claude-foundation.gitcd claude-foundation./install.sh /path/to/your-projectติดตั้งด้วย Homebrew
หัวข้อที่มีชื่อว่า “ติดตั้งด้วย Homebrew”brew tap maximumsoft-co-ltd/claude-foundation \ https://github.com/Maximumsoft-Co-LTD/claude-foundationbrew install claude-foundationclaude-foundation init /path/to/your-project --yesclaude-foundation init คือ installer ตัวเดียวกัน ส่วน --yes คือข้ามการถามยืนยัน
เวลาอัปเกรดให้รัน brew upgrade claude-foundation แล้วรัน init ในแต่ละโปรเจกต์
ที่ต้องการรีเฟรช
agent host อื่นนอกจาก Claude Code
หัวข้อที่มีชื่อว่า “agent host อื่นนอกจาก Claude Code”Claude Code ไม่ต้องใช้ adapter ส่วน host อื่นใช้ --host เพื่อวาง adapter ทับการติดตั้งชุดเดียวกัน:
claude-foundation init /path/to/your-project --host cursor # หรือ opencode, codex| Host | adapter เพิ่มอะไรให้ |
|---|---|
| Cursor | เจ็ด lifecycle prompt หลักรวม /deliver แบบ optional พร้อม /changes และ alias /feature ใน .cursor/commands/ และ skill router แบบ always-on เป็น rule .mdc ที่ตั้ง alwaysApply: true |
| OpenCode | prompt หลักเจ็ดตัวรวม /deliver แบบ optional พร้อม utility/alias สองตัวใน .opencode/commands/ และ guard plugin ที่ .opencode/plugins/foundation.js ซึ่ง replay hook ที่ ship มา — secrets guard กับ phase-mutation guard บล็อกแบบ live ส่วน lint ให้ feedback ตอนแก้ไฟล์ ส่วน skill กับ agent contract ไม่ต้องมี adapterเลย เพราะ OpenCode อ่าน .claude/skills/ และ AGENTS.md ได้เอง |
| Codex CLI | prompt หลักเจ็ดตัวรวม /deliver แบบ optional พร้อม utility/alias สองตัวใน $CODEX_HOME/prompts (Codex ไม่มีไดเรกทอรี prompt ต่อโปรเจกต์) พร้อม ownership marker เพื่อให้การติดตั้งซ้ำรีเฟรชเฉพาะ prompt ของ Change Loop โดยไม่ทับ prompt ชื่อซ้ำของผู้ใช้ |
ตรวจสอบ
หัวข้อที่มีชื่อว่า “ตรวจสอบ”claude-foundation versionclaude-foundation doctor --stage changedoctor คือคำสั่งที่ควรหยิบใช้ทุกครั้งที่รู้สึกว่ามีอะไรผิดปกติ มันวินิจฉัยสถานะของโปรเจกต์ provider และ lifecycle และรายงาน apply transaction ที่ค้างอยู่ก่อนที่ Land จะไปเจอเข้า
Commit การติดตั้ง
หัวข้อที่มีชื่อว่า “Commit การติดตั้ง”ถ้าเป็น Git project installer จะ stage ไฟล์ setup ที่ดูแลให้ แต่จะไม่ commit ตรวจแล้ว commit ก่อนเริ่ม change แรก:
git statusgit commit -m "chore: install Change Loop"ขั้นนี้ต้องได้รับอนุญาตจากคุณอย่างชัดเจน ถ้ายังไม่ commit ระบบจะมองไฟล์ติดตั้งเป็น ส่วนหนึ่งของ change ถัดไปตามจริง ทำให้ change แรกใหญ่ขึ้นและต้องใช้ isolated copy
เริ่ม change แรก
หัวข้อที่มีชื่อว่า “เริ่ม change แรก”เปิด session ใหม่ของ agent ในโปรเจกต์ที่ initialize แล้ว จากนั้นบอกผลลัพธ์ที่ต้องการ:
/change ให้เจ้าของ account แก้ display name ของตัวเองได้ตรวจข้อตกลงที่ agent เสนอ แล้วทำต่อด้วย /build, /prove และ /land ที่อนุมัติ
อย่างชัดเจน Agent จะรัน CLI และคำสั่ง recovery เบื้องหลังเอง ดูขั้นตอนทั้งหมดที่
เริ่มใช้งาน
การตั้งค่าขั้นสูง
หัวข้อที่มีชื่อว่า “การตั้งค่าขั้นสูง”จำเป็นเฉพาะสภาพแวดล้อมที่ล็อกสิทธิ์หรือรันแบบไม่มีคนเฝ้า (CI) การตั้งค่าแบบ interactive ปกติข้ามส่วนนี้ได้
Permission allowlist
หัวข้อที่มีชื่อว่า “Permission allowlist”.claude/settings.json ยังเป็นของ project Installer จะ merge hook ที่ ship มา และต่อท้าย permissions.allow แบบแคบ เพื่อไม่ให้ Claude Code ขออนุมัติทุกขั้นของ harness ได้แก่ Bash(claude-foundation *), Bash(.foundation/bin/claude-foundation *), Bash(node .claude/harness/foundation.mjs *), Edit(/.foundation/sandboxes/**), Edit(/.foundation/repository-sandboxes/**), Edit(/.foundation/drafts/**) (draft ของ Change) และ Edit(/openspec/investigations/**) (record ของ Investigate) test runner ของโปรเจกต์ไม่ได้รับ rule: Build task แต่ละงานคืน verify เป็น checkCommand (claude-foundation exec <change> --task <id> -- <verify>) ซึ่ง rule ของ CLI ครอบคลุมอยู่แล้ว โดยเพิ่มเฉพาะ rule ที่ยังไม่มีต่อจาก rule ของผู้ใช้ ไม่ลบหรือสลับลำดับ entry เดิม และการรันซ้ำไม่เพิ่มอะไร guard ของ PreToolUse ยังทำงานก่อน rule เหล่านี้ ให้ใส่ --no-permission-allowlist ทุกครั้งที่ install หรือ upgrade หากไม่ต้องการให้แตะ permissions.allow
Headless / CI (claude -p)
หัวข้อที่มีชื่อว่า “Headless / CI (claude -p)”Claude Code จะไม่ใช้ permissions.allow ของโปรเจกต์จนกว่า workspace จะถูก trust ใน checkout ใหม่ การรัน claude -p แบบ headless จะแสดง Ignoring ... permissions.allow entry ... this workspace has not been trusted ทำให้ rule Bash(claude-foundation *) ที่ installer ใส่ไว้ไม่มีผล และทุกคำสั่ง harness ถูกปฏิเสธ ให้รัน claude แบบ interactive ในโปรเจกต์หนึ่งครั้งแล้วยอมรับ trust prompt หรือให้สิทธิ์ตาม allowlist ที่ installer ใส่ไว้เท่านั้นทุกครั้งที่รัน headless (rule Edit ครอบคลุม Write ด้วย และการแก้ไฟล์อื่นในโปรเจกต์ยังถูกปฏิเสธ):
claude -p "/change <intent>" --allowedTools \ "Bash(claude-foundation *)" "Bash(.foundation/bin/claude-foundation *)" \ "Bash(node .claude/harness/foundation.mjs *)" "Edit(/.foundation/drafts/**)" \ "Edit(/.foundation/sandboxes/**)" "Edit(/.foundation/repository-sandboxes/**)" \ "Edit(/openspec/investigations/**)"check ของ Build รันผ่าน claude-foundation exec จึงไม่ต้องให้สิทธิ์ test runner เพิ่ม tool อื่นของโปรเจกต์เฉพาะเมื่อการรันต้องใช้ Claude Code ถือว่า path ใต้ ~/.claude/ เป็น sensitive path จึงควรวาง consumer project ไว้นอก directory นั้นเมื่อรันแบบไม่มีคนเฝ้า
installer เป็นเจ้าของอะไรบ้าง
หัวข้อที่มีชื่อว่า “installer เป็นเจ้าของอะไรบ้าง”เส้นแบ่งนี้สำคัญ เพราะการอัปเกรดทำงานตามมัน ไฟล์ที่ Change Loop เป็นเจ้าของจะ ถูกคัดลอกทับทุกครั้งที่ติดตั้ง และถูกบันทึกไว้ใน .foundation/install-manifest.txt
.claude/orchestrator.md.claude/commands.claude/harness.claude/skills.claude/rules.claude/hooksopenspec/schemas.foundation/.gitignore.foundation/README.mdWORKFLOW.mdส่วนไฟล์ที่โปรเจกต์เป็นเจ้าของจะถูกสร้างให้ตอนยังไม่มี หรือ merge เข้าไป แต่ ไม่เคยถูกเขียนทับ
.claude/settings.json # merge hook ด้วย jq พร้อม backup ที่มี timestampopenspec/config.yaml # คัดลอกเฉพาะตอนยังไม่มีopenspec/repositories.yaml # คัดลอกเฉพาะตอนยังไม่มีfoundation.json # สร้างเริ่มต้น; เติม field/ย้าย default เก่าที่รองรับCLAUDE.md / AGENTS.md # เขียนทับเฉพาะบล็อก pointer ที่ทำเครื่องหมายไว้spec, change ที่ยัง active, runtime state, agent ที่คุณเขียนเอง และ hook ของคุณรอดทุกการอัปเกรด และถ้ามี path ถูกถอดออกจากรายการที่ Change Loop ดูแล มันจะถูกลบจากโปรเจกต์คุณก็ต่อเมื่อ manifest เคยระบุว่าเป็นเจ้าของไฟล์นั้นเท่านั้น — Change Loop จึงไม่เคยลบไฟล์ที่มันไม่ได้ติดตั้งเอง
เพราะ foundation.json เป็นของโปรเจกต์ การอัปเกรดรักษานโยบายที่ปรับเอง
โดยไม่แทนที่ทั้งไฟล์ แต่อาจเติม field ที่ขาดและย้ายค่า budget default เก่าที่รู้จัก อ่าน
ตั้งค่า foundation.json ก่อนแก้ไฟล์นี้
ไฟล์เป็นของโปรเจกต์ไม่ได้หมายความว่าผู้ใช้ต้องแก้เอง Agent ที่ได้รับอนุญาต ช่วยตั้งค่าได้ คำสั่งระบบที่ติดตั้งแยกจากกฎของโปรเจกต์ ดู ไฟล์และเจ้าของข้อมูล
หลักฐานฝั่งเบราว์เซอร์ยังเป็นของคุณ
หัวข้อที่มีชื่อว่า “หลักฐานฝั่งเบราว์เซอร์ยังเป็นของคุณ”Change Loop ไม่ติดตั้ง test framework เบราว์เซอร์ หรือ dependency ของโปรเจกต์ให้ ถ้า claim ต้องการหลักฐานจากเบราว์เซอร์ ให้ติดตั้งและล็อกเวอร์ชัน @playwright/test พร้อม browser binary ในแอปของคุณเอง Change Loop จะตรวจสอบและสั่งรันเครื่องมือที่มีอยู่ในเครื่อง แต่จะไม่โหลด browser framework ที่ไม่ได้ล็อกเวอร์ชันมาระหว่างพิสูจน์
กฎเดียวกันนี้ใช้กับทุกอย่าง: executable ทุกตัวที่ adapter เรียกใช้ต้องเป็นของรีโปคุณและถูกล็อกเวอร์ชันโดยรีโปคุณ ไม่ใช่โดย harness