devguard
devguard คือระบบควบคุมมาตรฐานการทำงานแบบต้องมีหลักฐานจริง (verified-dev) ผสานกับชุดเครื่องมือประหยัด Token ที่ล็อกเวอร์ชันเสถียรไว้ให้ ติดตั้งเพียงครั้งเดียวแล้วแชร์ทั้งกฎการทำงานและเครื่องมือทั้งหมดร่วมกันได้ทุก Agent: Claude Code, VS Code (Copilot), Google Antigravity, Cursor, OpenCode, Codex CLI และ Gemini CLI
(2) ชั้นประหยัด Token (Components & Companion Tools): ย่อผลลัพธ์คำสั่งใน Terminal และสร้างกราฟ AST ของโค้ดโดยไม่ตัดทอนไฟล์หลักฐานใน
.verify/*.log
การติดตั้ง (Installation)
ปิดโปรแกรม Claude Code, VS Code และ Antigravity ก่อนรันคำสั่ง (เพื่อไม่ให้โปรแกรมเขียนทับไฟล์ตั้งค่าตอนปิด) จากนั้นรันคำสั่งเดียวใน Terminal หรือ PowerShell:
curl -fsSL https://raw.githubusercontent.com/Burapa-J/devguard/main/bootstrap.sh | bash
irm https://raw.githubusercontent.com/Burapa-J/devguard/main/bootstrap.ps1 | iex
สคริปต์ bootstrap.sh / bootstrap.ps1 จะทำงานดังนี้โดยอัตโนมัติ:
- ติดตั้งเครื่องมือพื้นฐานที่ยังขาดผ่าน Homebrew บน macOS,
apt-getบน Linux หรือwingetบน Windows (git,jq,python3,node,xcbeautifyบน macOS,ast-grep,shellcheck) - Clone โปรเจกต์ไว้ที่
~/.local/share/agent-kit/src(หรืออัปเดตของเดิมหากเคยติดตั้งแล้ว) - รัน
./install.sh(ผ่าน Git Bash บน Windows) ด้วยค่าเริ่มต้นที่แนะนำ: ติดตั้งกฎหลัก, สกิลverified-dev, hook เตือนหลัง compact, เชื่อมcodegraph+projectmem+rtkและเปิดการตั้งค่าโปรเจกต์อัตโนมัติใน~/Developer - เพิ่ม
~/.local/binเข้าPATH(ใน~/.zshrcหรือ UserPATHของ Windows พร้อมไฟล์.cmdshim สำหรับเรียกใช้จาก PowerShell และ CMD)
ตัวเลือกการติดตั้งเพิ่มเติม
./install.sh --dry-run # ดูสิ่งที่จะเปลี่ยนโดยไม่แก้ไขไฟล์จริง
./install.sh --with=codegraph,projectmem,rtk,context-mode # เปิดใช้งาน context-mode เพิ่มเติม
./install.sh --targets=claude,vscode,antigravity # เลือกติดตั้งเฉพาะบาง Agent
./install.sh --auto-project=~/Developer,~/Work # กำหนดโฟลเดอร์ที่ให้ตั้งค่าโปรเจกต์อัตโนมัติ
เริ่มต้นอย่างรวดเร็ว (Quickstart)
หลังติดตั้งเสร็จ ให้เปิด Terminal แท็บใหม่ แล้วตรวจสอบสถานะด้วยคำสั่ง:
devguard status # ดูตารางสถานะการเชื่อมต่อของทุก Agent และเครื่องมือ
devguard doctor # ตรวจสุขภาพการติดตั้งทั้ง 8 ข้อ
devguard stats # ดูสถิติการประหยัด Token และอัตราการ Verify ผ่าน
devguard gate init # ใน repo: สร้าง .devguard/checks และติดตั้งด่านตอน commit/push
1. วิธีทำงาน (verified-dev)
พัฒนาต่อยอดจากแนวคิดของ pstack (Lauren Tan), Karpathy Guidelines และ Ponytail ประกอบด้วยกฎหลักขนาดสั้น 9 บรรทัด (rules/core.md) และสกิลเชิงลึก (skills/verified-dev/SKILL.md):
- เลือก Playbook ตามประเภทงาน: แยกขั้นตอนชัดเจนสำหรับ Investigation, Bug fix, Feature, Refactor, Perf issue และ Prompt / LLM pipeline
- โหมดอ่านอย่างเดียวเมื่อถามคำถามหรือรีวิวแผน: เมื่อคุณถามคำถามหรือปรึกษาทางเลือก AI จะไม่แก้ไขไฟล์ใดๆ จนกว่าคุณจะสั่งให้ลงมือ
- ห้ามเดาจาก
--helpหรือชื่อไฟล์: ก่อนอธิบายการทำงานของระบบหรือเสนอแผนออกแบบ AI ต้องอ่านโค้ดจริงทั้งขาอ่าน, ขาเขียน, การจัดการ ID/State และกรณีชนกัน พร้อมอ้างอิงfile:lineเสมอ - เช็คผู้เรียกใช้ทั้งหมด (Sibling-Caller Check): ตรวจสอบทุกจุดที่เรียกใช้ฟังก์ชันผ่าน
codegraph_exploreก่อนแก้ เพื่อให้จุดที่เกี่ยวข้องไม่พังตาม - ต้องมีหลักฐานจากการรันจริงเสมอ: การ build ผ่านไม่ใช่ข้อพิสูจน์ ทุกครั้งที่บอกว่า "เสร็จ" ต้องอ่านไฟล์
.verify/<name>.logและสรุปใบเสร็จตรวจสอบสั้นๆ 1 บรรทัด (คำสั่ง, exit code, ผลลัพธ์หลัก และลิงก์ไฟล์ log) โดยแปะ log เต็มเฉพาะเมื่อพัง - ทุกข้อเท็จจริงต้องบอกที่มา: ลงท้ายด้วย
(read file:line),(ran: คำสั่ง → exit N),(inferred)หรือ(unchecked)หาหลักฐานก่อนตอบ และถ้าคำตอบเปลี่ยนต้องบอกว่าเปลี่ยนเพราะหลักฐานใด - Pre-mortem ก่อนทำฟีเจอร์: ตาราง "อะไรจะพัง / เกิดเมื่อไร / ออกแบบกันอย่างไร / test ที่พิสูจน์" แถวที่ไม่มี test ต้องรายงานเป็นความเสี่ยงที่เปิดอยู่
- พิสูจน์ว่า test ล้มได้: test ใหม่จะนับได้ก็ต่อเมื่อเคยล้มด้วยเหตุผลที่ถูกต้อง (ก่อนแก้ หรือเมื่อถอดการป้องกันออก)
- ด่าน "เสร็จ": ถ้า repo มี
.devguard/checksต้องผ่านdevguard checkก่อนบอกว่าเสร็จ และห้ามข้าม hook ด้วย--no-verify
2. เครื่องมือที่ติดตั้งและดูแลให้ (Components & Companion Tools)
ติดตั้งตรงจากต้นทาง (Upstream) ด้วยเวอร์ชันที่ล็อกไว้ชัดเจน และไม่ใช้ local prompt proxy ที่ทำให้การเชื่อมต่อสะดุด
| ชื่อเครื่องมือ | ประเภท | หน้าที่ | แพ็กเกจต้นทาง | ค่าเริ่มต้น |
|---|---|---|---|---|
codegraph |
MCP Component | สร้างกราฟ AST ค้นหา Symbol และจุดเรียกใช้ (codegraph_explore) |
npm @colbymchenry/codegraph@1.6.2 |
เปิด (On) |
projectmem |
MCP Component | ความจำรายโปรเจกต์และระดับเครื่อง (บั๊ก, สิ่งที่ลองแล้ว, วิธีแก้, การตัดสินใจ) พร้อมซิงค์ข้ามเครื่องแบบ CRDT ผ่าน iCloud Drive อัตโนมัติ | PyPI projectmem==0.3.5 (แยก venv) |
เปิด (On) |
rtk |
Hook / Plugin | บีบอัดผลลัพธ์คำสั่งใน Terminal ลง 38–90% ก่อนส่งเข้า Context | Homebrew rtk (1.2.0+) |
เปิด (On) |
context-mode |
MCP Component | รันคำสั่งใน Sandbox และทำดัชนีค้นหาสำหรับ Output ขนาดใหญ่ (Node ≥ 22.5) | npm context-mode@2.1.7 |
เลือกเปิดเอง |
ast-grep |
Companion CLI | ค้นหาและแก้โค้ดตามโครงสร้าง Tree-sitter AST แบบหลายบรรทัด | Homebrew ast-grep |
ติดตั้งพร้อมใช้ |
xcbeautify |
Companion CLI | ย่อ log ของ xcodebuild ให้เหลือเฉพาะสรุปและบรรทัดที่เกิดปัญหา |
Homebrew xcbeautify |
ติดตั้งพร้อมใช้ |
shellcheck |
Companion CLI | ตรวจ shell script แบบ static; kit ใช้ตรวจตัวเองทุก commit | Homebrew shellcheck |
ติดตั้งพร้อมใช้ |
gitleaks |
Gate check | สแกน secret ในไฟล์ที่ stage ไว้ เพิ่มเข้า .devguard/checks ของ repo ที่ต้องการ |
Homebrew gitleaks |
เลือกใช้ราย repo |
Agents ที่รองรับและตำแหน่งไฟล์
| Agent | ไฟล์กฎหลัก (Rules) | โฟลเดอร์ Skill | ไฟล์ตั้งค่า MCP |
|---|---|---|---|
| Claude Code | ~/.claude/CLAUDE.md |
~/.claude/skills/verified-dev |
~/.claude.json |
| VS Code (Copilot) | ~/.copilot/copilot-instructions.md |
อ่านจาก ~/.claude/skills ร่วมกัน |
~/Library/Application Support/Code/User/mcp.json |
| Google Antigravity | ~/.gemini/GEMINI.md |
~/.gemini/config/skills/verified-dev |
~/.gemini/config/mcp_config.json |
| Cursor | ~/.cursor/rules/devguard.mdc |
~/.cursor/skills/verified-dev |
~/.cursor/mcp.json |
| OpenCode | ~/.config/opencode/AGENTS.md |
~/.config/opencode/skills/verified-dev |
~/.config/opencode/opencode.jsonc |
| Codex CLI | ~/.codex/AGENTS.md |
~/.codex/skills/verified-dev |
~/.codex/config.toml |
| Gemini CLI | ~/.gemini/GEMINI.md |
~/.gemini/skills/verified-dev |
~/.gemini/settings.json |
คำสั่ง CLI ทั้งหมด
| คำสั่ง | การทำงาน |
|---|---|
devguard |
เปิดเมนูแบบ Interactive เลือกคำสั่งด้วยปุ่มลูกศร |
devguard status |
แสดงตารางสรุปสิ่งที่ติดตั้งและเชื่อมต่อไว้ในทุก Agent |
devguard doctor [--fix] |
ตรวจสุขภาพ 8 จุดเสี่ยง และใส่ --fix เพื่อซ่อมแซมอัตโนมัติ |
devguard stats [options] |
ดูสถิติประหยัด Token, ขนาดกราฟ AST และอัตราการ Verify ผ่าน (-p โปรเจกต์นี้, -d รายวัน, --dashboard, --reset) |
devguard sync [--quiet] |
ซิงค์ความจำของ projectmem ข้ามเครื่องผ่าน iCloud Drive แบบ Append-Only CRDT |
devguard sync --check |
อ่านอย่างเดียว: ทุกเครื่องมี event ตรงกันหรือยัง แยกตามโปรเจกต์ (in-sync, diverged, single, incomplete) |
devguard check [commit|push] |
รัน .devguard/checks ของ repo (ด่าน "เสร็จ") ล้มแล้ว exit 1 |
devguard gate init|install|uninstall |
สร้างไฟล์ checks ตัวอย่าง และ/หรือ ติดตั้ง/ถอด hook pre-commit และ pre-push |
devguard review [--with claude|agy|gemini] [--base REF] |
ให้ model อีกค่ายรีวิวงานแบบอ่านอย่างเดียว ผลอยู่ที่ .verify/review-*.md |
devguard eval run|compare |
วัดความถูกต้อง, tag ที่มา และการกลับคำเมื่อถูกกดดัน เทียบผลสองรอบได้ |
devguard select |
เลือกเปิด/ปิด Agents และเครื่องมือแบบ Interactive |
devguard update |
ดึงโค้ดเวอร์ชันล่าสุด อัปเกรดเครื่องมือทั้งหมด และซิงก์การตั้งค่าใหม่ |
devguard init [--all] |
ตั้งค่าโปรเจกต์ปัจจุบัน หรือทุกโปรเจกต์ในโฟลเดอร์อัตโนมัติ |
devguard skip |
สร้างไฟล์ .agent-kit-skip เพื่อยกเว้นโปรเจกต์ปัจจุบันจากการตั้งค่าอัตโนมัติ |
devguard uninstall [--purge] |
ถอดการเชื่อมต่อคืนค่าเดิมทุกไฟล์ (ใส่ --purge เพื่อลบ CLI ที่ระบบติดตั้งให้ด้วย) |
การเก็บหลักฐานด้วย agent-verify
เพื่อไม่ให้ rtk ตัดทอนบรรทัดสำคัญของการทดสอบ คำสั่งตรวจสอบจะรันผ่าน agent-verify ซึ่งบันทึกผลลัพธ์เต็มลงไฟล์ .verify/<name>.log พร้อมชี้เลขบรรทัดที่เกิด error (errors_at=L...):
agent-verify unit-tests -- swift test
# ผลลัพธ์: agent-verify[unit-tests] exit=0 lines=42 log=.verify/unit-tests.log
agent-verify build-check -- xcodebuild test -scheme MyApp -destination 'platform=macOS'
# ผลลัพธ์: agent-verify[build-check] exit=65 lines=184 errors_at=L92,L141 log=.verify/build-check.log
ด่าน "เสร็จ" (.devguard/checks)
กฎเป็นแค่การขอให้ agent ตรวจงาน แต่ด่านนี้ตรวจให้จริงไม่ว่า model ไหนเขียนโค้ด แต่ละ repo เขียนคำสั่งตรวจจริงไว้ในไฟล์ .devguard/checks (commit เข้า repo) บรรทัดละหนึ่ง check:
commit build: swift build # ทุก commit: ต้องเร็ว
push test: swift test # ก่อน push: suite เต็ม
commit secrets: gitleaks git --staged --redact --no-banner . # เลือกใส่: กัน secret หลุดเข้า commit
devguard gate init สร้างไฟล์ตัวอย่างและติดตั้ง hook pre-commit / pre-push ส่วน devguard check ใช้รันเองได้ทุกเมื่อ ทุก check รันผ่าน agent-verify ถ้าล้มจะแสดงบรรทัดเดียว พร้อม log เต็มที่ .verify/gate-<name>.log
- ไม่ทับ hook ที่ไม่ได้เขียนเอง (จะบอกบรรทัดที่ต้องเพิ่มให้แทน) และใช้กับ worktree กับ
core.hooksPathได้ - ถ้าย้าย kit ไปที่อื่น จะปล่อย commit ผ่านพร้อมคำเตือน เพื่อไม่ให้ทุก repo ถูกบล็อก
- เตือนเมื่อ commit แก้ไฟล์
.devguard/checksและถ้าไฟล์เขียนผิดรูปแบบจะล้มพร้อมบอกเลขบรรทัด - รัน check ด้วย
SIGPIPEค่าปกติและ Python แบบ isolated ผลจึงเหมือนรันใน terminal - ข้อจำกัด: ตรวจ working tree ทั้งหมด ไม่ใช่เฉพาะส่วนที่ stage และ
git commit --no-verifyยังข้ามได้ (กฎหลักห้ามไว้)
รีวิวข้ามค่าย (devguard review)
model แต่ละค่ายจับปัญหาได้ต่างกัน devguard review ส่งงาน (งานที่ยังไม่ commit รวมไฟล์ใหม่, commit ล่าสุด หรือทั้งช่วงด้วย --base REF) ให้ model อีกค่ายรีวิวแบบอ่านอย่างเดียวตาม rubric: บั๊ก, จุดที่อาจพัง, test ที่ผ่านแม้ไม่มีการแก้ และคำกล่าวอ้างที่โค้ดไม่รองรับ แสดงผลบรรทัดเดียว (verdict, จำนวนข้อ, path ของรายงาน) และเก็บรายงานไว้ที่ .verify/review-<เวลา>-<ผู้รีวิว>-<pid>.md
devguard review --with agy # Claude เขียน: ให้ Gemini (ผ่าน Antigravity) รีวิว
devguard review --with claude # Gemini เขียน: ให้ Claude รีวิว
devguard review --base main # รีวิวทั้ง branch
เลือกค่ายที่ไม่ได้เขียนโค้ดนั้น Gemini CLI ปฏิเสธบัญชีส่วนตัวแล้ว ฝั่ง Gemini จึงใช้ agy แทน CLI ของผู้รีวิวต้อง login ใน terminal หนึ่งครั้ง ถ้ายังไม่ได้ login จะมีคำแนะนำบอก ผลรีวิวเป็นแค่ข้อสงสัย ต้องเปิดโค้ดยืนยันทีละข้อ
วัดผล agent (devguard eval)
การแก้กฎจะยังเป็นแค่สมมติฐานจนกว่าจะวัดผล ชุดคำถามเป็น JSON บรรทัดละข้อ มี prompt, regex expect, regex reject (ไม่บังคับ) และ pushback (ไม่บังคับ) สำหรับถามกดดันต่อในบทสนทนาเดิม:
devguard eval run .devguard/evals/kit.jsonl --with agy --reps 3 --label before
# ...แก้กฎ...
devguard eval run .devguard/evals/kit.jsonl --with agy --reps 3 --label after
devguard eval compare .verify/eval-before-*.json .verify/eval-after-*.json
รายงานผลรายข้อ: คำตอบแรกถูกหรือไม่, จำนวน tag ที่มาต่อคำตอบ และกลับคำบ่อยแค่ไหนเมื่อถูกกดดัน
หลักฐาน: รีวิวข้ามค่ายช่วยได้จริงไหม
นำ 7 commit ของ kit นี้มาสร้างเป็น repo แยก แล้วให้ Claude และ Gemini รีวิวแบบไม่เห็นคำตอบ เทียบกับบั๊กที่รู้แน่ 11 ข้อ: แต่ละค่ายจับได้ 8/11 และใช้สองค่ายรวมกันจับได้ 10/11 โดยแต่ละค่ายเจอบั๊กที่อีกค่ายพลาด commit ที่คิดว่าไม่มีบั๊กก็ถูกทั้งสองค่ายชี้ปัญหา และตรวจแล้วเป็นบั๊กจริง ส่วนเกณฑ์อัตโนมัติจาก diff สั่งให้รีวิวทุก commit ที่มีโค้ด จึงไม่ได้สร้าง ข้อสรุป: ให้ agent รันเฉพาะ devguard check กับทุกงานเป็นหลัก ส่วน devguard review ให้รันเฉพาะเมื่อผู้ใช้สั่งเท่านั้น (และแค่แนะนำท้ายงานเมื่อแก้จุดเสี่ยงสูง เช่น ข้อมูลถาวร, sync, concurrency หรือ security) ข้อจำกัด: รันครั้งเดียวต่อคู่ และบั๊ก 11 ข้อมาจากผู้เขียนคนเดียว จึงบอกได้แค่แนวโน้ม ไม่ใช่ตัวเลขที่แม่นยำ รายละเอียด: docs/experiments/2026-10-30-cross-model-review.md
การวัดผลการทำงาน (devguard stats)
รันคำสั่ง devguard stats เพื่อดูผลลัพธ์จากการใช้งานจริงครบทั้ง 3 หมวด:
╭─ 1. RTK Shell Compression Savings ─────────────────────────────────────────────╮
Total commands: 2446 Tokens saved: 194.2K (38.6%)
Efficiency meter: █████████░░░░░░░░░░░░░░░ 38.6%
╰────────────────────────────────────────────────────────────────────────────────╯
╭─ 2. Repositories (CodeGraph & ProjectMem) ─────────────────────────────────────╮
│ Repository Files Symbols Edges Fixes Tokens Saved │
├────────────────────────────────────────────────────────────────────────────────┤
│ TOTAL (8 repos) 655 16207 46092 51 134000 │
╰────────────────────────────────────────────────────────────────────────────────╯
╭─ 3. Verification & Workflow Quality (.verify/*.log) ───────────────────────────╮
│ Repository Verifies Passed Failed Pass Rate Lines Saved │
├────────────────────────────────────────────────────────────────────────────────┤
│ TOTAL (5 repos) 135 127 8 94% 22497 │
╰────────────────────────────────────────────────────────────────────────────────╯
การตรวจสุขภาพและซ่อมแซมตัวเอง (devguard doctor)
คำสั่ง devguard doctor ตรวจสอบ 8 จุดเสี่ยงของระบบ และซ่อมให้อัตโนมัติเมื่อใส่ --fix:
- คราบการติดตั้ง
toklessเดิม (รวมถึงล้างANTHROPIC_BASE_URLproxy ที่ค้างใน~/.claude/settings.json) - Symlink ขาดหรือชื่อเก่าที่ค้างอยู่ใน
~/.local/bin - ปลั๊กอินที่ทำงานซ้ำซ้อนหรือตีกัน (
caveman,ponytail,cavecrew) - ตำแหน่งไฟล์ MCP ของแต่ละ Agent
- ปลั๊กอินและ Hook ของ RTK สำหรับ Google Antigravity
- ความตรงกันของบล็อกกฎในไฟล์ของแต่ละ Agent เทียบกับ
rules/core.md - เวอร์ชันของ CLI ทั้งหมดและเครื่องมือเสริม (
ast-grep,xcbeautify,shellcheck) - memory sync ข้ามเครื่อง: hook
.pthชี้ไปที่ kit นี้, มี iCloud hub และไม่มี projectmem MCP ที่ยังรันโค้ด sync เก่า (ให้ปิดเปิด agent ใหม่--fixไม่ปิด process ให้)
การตั้งค่าโปรเจกต์อัตโนมัติ และซิงค์ความจำข้ามเครื่อง
ทุก Git repository ภายใต้ ~/Developer (ลึก 1–2 ชั้น) จะถูกตั้งค่าให้อัตโนมัติผ่าน 3 ช่องทาง: ตอนเปิด Claude Code, ตอนสั่ง cd เข้าโฟลเดอร์ใน zsh และการสแกนเบื้องหลังของ launchd ทุก 30 นาที โดยตรวจซ่อมทั้ง .gitignore, .codegraph/, .projectmem/config.toml, .git/hooks/post-commit และทะเบียนใน ~/.projectmem/projects.json
ซิงค์ความจำข้ามเครื่องผ่าน iCloud Drive (Multi-Mac CRDT Sync): เมื่อเปิดใช้งาน iCloud Drive ระบบจะซิงค์ความจำของ projectmem ข้ามเครื่องอัตโนมัติผ่าน ~/Library/Mobile Documents/com~apple~CloudDocs/devguard-sync/:
- แยกไฟล์ตามเครื่อง (Per-Device Node Files): แต่ละเครื่องเขียนลงไฟล์ของตัวเอง (
nodes/<device_id>.jsonl,docs/<device_id>-PROJECT_MAP.md,docs/<device_id>-plan.md,global/nodes/<device_id>.json) จึงไม่เกิดไฟล์ซ้ำของ iCloud - จับคู่โปรเจกต์ด้วย Git Root Commit (
root-<sha12>): แม้ตั้งชื่อโฟลเดอร์คนละชื่อกันในแต่ละเครื่อง ระบบก็จับคู่เข้าถังความจำเดียวกันอัตโนมัติ - แก้เลข Issue ชนกันขณะออฟไลน์: เรียงลำดับตามเวลาพร้อมผูก
parent_issue_keyและอัปเดต.projectmem/.current_issueให้เองโดยข้อมูลไม่ปนกัน - ซิงค์แบบ Real-time โดยไม่ต้องคอยรันเอง: ทำงานอัตโนมัติทุกครั้งที่ MCP อ่านหรือเขียนความจำ (ผ่าน
.pthhook) รวมถึงตอนcd, ตอนlaunchdสแกน หรือสั่งdevguard sync - ไม่ทำ event หายระหว่าง sync: การเขียน
events.jsonlใช้ lock ร่วมกัน event ที่เพิ่มเข้ามาระหว่าง sync จึงไม่หาย - ตรวจว่า sync ตรงกันหรือยัง:
devguard sync --checkเทียบไฟล์ของทุกเครื่องทีละโปรเจกต์ และบอกชื่อเครื่องที่ยังขาด event ส่วนdevguard statusแสดงยอดรวม repo ที่ยังไม่มี commit และไม่มี remote จะไม่ถูก sync จนกว่าจะ commit ครั้งแรก เพื่อไม่ให้ repo คนละตัวที่ชื่อโฟลเดอร์ซ้ำกันรวมความจำกัน
การถอนการติดตั้ง (Uninstalling)
ทุกไฟล์ที่ถูกแก้ไขจะมีสำเนาสำรองอยู่ที่ ~/.agent-kit-backup/<เวลา>/ (เก็บชุดสำรองล่าสุดไว้สูงสุด 10 ชุดโดยอัตโนมัติ) และการสั่ง uninstall จะคืนสภาพไฟล์เดิมกลับมาทุกไบต์:
devguard uninstall --dry-run # ดูสิ่งที่จะถูกลบโดยไม่ลบจริง
devguard uninstall # ถอดกฎ, skill, hook และ MCP ออก (เก็บ CLI ของเครื่องมือไว้)
devguard uninstall --purge # ลบ CLI ที่ devguard ติดตั้งให้ด้วย