ข้ามไปยังเนื้อหา

ติดตั้ง

ผู้อ่าน: ผู้ดูแลโปรเจกต์และ 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 แทน
Terminal window
npm install -g @fission-ai/openspec@1.7.0

แนะนำให้มี jq เพื่อ merge hook เข้า .claude/settings.json เดิม หากไม่มี installer จะทำงานต่อโดยเก็บไฟล์เดิมไว้ และสร้าง .claude/settings.foundation.json ให้ตรวจและ merge เอง

Terminal window
git clone https://github.com/Maximumsoft-Co-LTD/claude-foundation.git
cd claude-foundation
./install.sh /path/to/your-project
Terminal window
brew tap maximumsoft-co-ltd/claude-foundation \
https://github.com/Maximumsoft-Co-LTD/claude-foundation
brew install claude-foundation
claude-foundation init /path/to/your-project --yes

claude-foundation init คือ installer ตัวเดียวกัน ส่วน --yes คือข้ามการถามยืนยัน เวลาอัปเกรดให้รัน brew upgrade claude-foundation แล้วรัน init ในแต่ละโปรเจกต์ ที่ต้องการรีเฟรช

Claude Code ไม่ต้องใช้ adapter ส่วน host อื่นใช้ --host เพื่อวาง adapter ทับการติดตั้งชุดเดียวกัน:

Terminal window
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 ชื่อซ้ำของผู้ใช้
Terminal window
claude-foundation version
claude-foundation doctor --stage change

doctor คือคำสั่งที่ควรหยิบใช้ทุกครั้งที่รู้สึกว่ามีอะไรผิดปกติ มันวินิจฉัยสถานะของโปรเจกต์ provider และ lifecycle และรายงาน apply transaction ที่ค้างอยู่ก่อนที่ Land จะไปเจอเข้า

ถ้าเป็น Git project installer จะ stage ไฟล์ setup ที่ดูแลให้ แต่จะไม่ commit ตรวจแล้ว commit ก่อนเริ่ม change แรก:

Terminal window
git status
git commit -m "chore: install Change Loop"

ขั้นนี้ต้องได้รับอนุญาตจากคุณอย่างชัดเจน ถ้ายังไม่ commit ระบบจะมองไฟล์ติดตั้งเป็น ส่วนหนึ่งของ change ถัดไปตามจริง ทำให้ change แรกใหญ่ขึ้นและต้องใช้ isolated copy

เปิด session ใหม่ของ agent ในโปรเจกต์ที่ initialize แล้ว จากนั้นบอกผลลัพธ์ที่ต้องการ:

/change ให้เจ้าของ account แก้ display name ของตัวเองได้

ตรวจข้อตกลงที่ agent เสนอ แล้วทำต่อด้วย /build, /prove และ /land ที่อนุมัติ อย่างชัดเจน Agent จะรัน CLI และคำสั่ง recovery เบื้องหลังเอง ดูขั้นตอนทั้งหมดที่ เริ่มใช้งาน

จำเป็นเฉพาะสภาพแวดล้อมที่ล็อกสิทธิ์หรือรันแบบไม่มีคนเฝ้า (CI) การตั้งค่าแบบ interactive ปกติข้ามส่วนนี้ได้

.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

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 ด้วย และการแก้ไฟล์อื่นในโปรเจกต์ยังถูกปฏิเสธ):

Terminal window
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 นั้นเมื่อรันแบบไม่มีคนเฝ้า

เส้นแบ่งนี้สำคัญ เพราะการอัปเกรดทำงานตามมัน ไฟล์ที่ Change Loop เป็นเจ้าของจะ ถูกคัดลอกทับทุกครั้งที่ติดตั้ง และถูกบันทึกไว้ใน .foundation/install-manifest.txt

.claude/orchestrator.md
.claude/commands
.claude/harness
.claude/skills
.claude/rules
.claude/hooks
openspec/schemas
.foundation/.gitignore
.foundation/README.md
WORKFLOW.md

ส่วนไฟล์ที่โปรเจกต์เป็นเจ้าของจะถูกสร้างให้ตอนยังไม่มี หรือ merge เข้าไป แต่ ไม่เคยถูกเขียนทับ

.claude/settings.json # merge hook ด้วย jq พร้อม backup ที่มี timestamp
openspec/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