การดีบักการตั้งค่าของคุณ
วินิจฉัยว่าเหตุใด CLAUDE.md, การตั้งค่า, hooks, MCP servers, หรือ skills ไม่มีผล ใช้ /context, /doctor, /hooks, และ /mcp เพื่อดูว่าอะไรโหลดจริงๆ
เมื่อ Claude ละเว้นคำสั่งหรือฟีเจอร์ที่คุณตั้งค่าไม่ปรากฏ สาเหตุมักเป็นเพราะไฟล์ไม่ได้โหลด โหลดจากตำแหน่งอื่นที่คุณคาดไว้ หรือไฟล์อื่นทับมัน คู่มือนี้แสดงวิธีตรวจสอบสิ่งที่ Claude Code โหลดจริงๆ เพื่อช่วยให้คุณระบุสาเหตุ
สำหรับปัญหาการติดตั้ง การพิสูจน์ตัวตน และการเชื่อมต่อ โปรดดู แก้ไขปัญหาการติดตั้งและการเข้าสู่ระบบ แทน
ดูว่าอะไรโหลดเข้า context
คำสั่ง /context แสดงทุกอย่างที่ครอบครอง context window สำหรับเซสชันปัจจุบัน แบ่งตามหมวดหมู่: system prompt, memory files, skills, MCP tools และข้อความสนทนา รันก่อนเพื่อยืนยันว่า CLAUDE.md, rules หรือคำอธิบาย skill ของคุณมีอยู่หรือไม่
สำหรับรายละเอียดในหมวดหมู่เฉพาะ ให้ติดตามด้วยคำสั่งที่เฉพาะเจาะจง:
| คำสั่ง | แสดง |
|---|---|
/memory | ไฟล์ CLAUDE.md และ rules ที่โหลด รวมถึงรายการ auto-memory |
/skills | Skills ที่มีจากแหล่ง project, user และ plugin |
/agents | Subagents ที่ตั้งค่าและการตั้งค่าของพวกเขา |
/hooks | การตั้งค่า hook ที่ใช้งานอยู่ |
/mcp | MCP servers ที่เชื่อมต่อและสถานะ |
/permissions | กฎ allow และ deny ที่ใช้งานอยู่ในปัจจุบัน |
/doctor | การวินิจฉัยการตั้งค่า: keys ที่ไม่ถูกต้อง ข้อผิดพลาด schema สุขภาพการติดตั้ง |
/debug [issue] | เปิดใช้งานการบันทึก debug สำหรับเซสชันและ prompt ให้ Claude วินิจฉัยโดยใช้ผลลัพธ์บันทึกและ settings paths |
/status | แหล่ง settings ที่ใช้งานอยู่ รวมถึงว่า managed settings มีผลอยู่หรือไม่ |
ตรวจสอบ resolved settings
Settings รวมกันผ่าน managed, user, project และ local scopes Managed settings จะชนะเสมอเมื่อมีอยู่ ในส่วนที่เหลือ scope ที่ใกล้ชิดกว่าจะแทนที่ scope ที่กว้างกว่าตามลำดับ local, project, user
รัน /doctor เพื่อตรวจสอบไฟล์ตั้งค่าของคุณและระบุ keys ที่ไม่ถูกต้องหรือข้อผิดพลาด schema
รัน /status เพื่อดูว่าแหล่ง settings ใดที่ใช้งานอยู่ รวมถึงว่า managed settings มีผลอยู่หรือไม่
ตรวจสอบ MCP servers
รัน /mcp เพื่อดู server ที่ตั้งค่าทุกตัว สถานะการเชื่อมต่อ และว่าคุณได้อนุมัติสำหรับ project ปัจจุบันหรือไม่ Server สามารถกำหนดถูกต้องแต่ยังไม่ให้เครื่องมือได้ด้วยเหตุผลทั่วไปบางประการ:
- Project-scoped servers ใน
.mcp.jsonต้องมีการอนุมัติครั้งเดียว หาก prompt ถูกยกเลิก server จะยังคงถูกปิดใช้งานจนกว่าคุณจะอนุมัติจาก/mcp - Server ที่ไม่สามารถเริ่มต้นได้จะแสดงว่าล้มเหลวใน
/mcpเส้นทางไฟล์ relative ในcommandหรือargsเป็นสาเหตุที่พบบ่อย - Server ที่แสดงว่าเชื่อมต่อแต่แสดงรายการเครื่องมือเป็นศูนย์ได้เริ่มต้นสำเร็จแต่ไม่ส่งรายการเครื่องมือ เลือก Reconnect จาก
/mcp
ตรวจสอบ hooks
รัน /hooks เพื่อแสดงรายการ hook ทุกตัวที่ลงทะเบียนสำหรับเซสชันปัจจุบัน จัดกลุ่มตาม event หาก hook ที่คุณกำหนดไม่ปรากฏ แสดงว่าไม่ได้ถูกอ่าน: hooks อยู่ภายใต้ key "hooks" ในไฟล์ settings ไม่ใช่ในไฟล์แยกต่างหาก
หาก hook ปรากฏแต่ไม่ทำงาน matcher มักเป็นสาเหตุ ฟิลด์ matcher เป็น string เดียวที่ใช้ | เพื่อจับคู่ชื่อเครื่องมือหลายตัว เช่น "Edit|Write" ชื่อเครื่องมือที่สะกดผิดจะล้มเหลวอย่างเงียบๆ
ทดสอบกับการตั้งค่าที่สะอาด
เริ่มต้นด้วย claude --safe-mode ซึ่งเปิดเซสชันโดยปิดการใช้งานการปรับแต่งทั้งหมด รวมถึง CLAUDE.md, skills, plugins, hooks, MCP servers และคำสั่งและ agents แบบกำหนดเอง
cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude
เซสชันที่สะอาดนี้ไม่มีการตั้งค่า user หรือ project, hooks, MCP servers, plugins หรือ memory ใดๆ
ตรวจสอบสาเหตุทั่วไป
ความประหลาดใจในการตั้งค่าส่วนใหญ่สืบย้อนไปยังชุดกฎตำแหน่งและไวยากรณ์ขนาดเล็ก ตรวจสอบสิ่งเหล่านี้ก่อนที่จะสรุปว่าเป็นบั๊ก:
| อาการ | สาเหตุ | การแก้ไข |
|---|---|---|
| Hook ไม่ทำงาน | matcher เป็น JSON array แทนที่จะเป็น string | ใช้ string เดียวพร้อม | เพื่อจับคู่หลายเครื่องมือ |
| Hook ไม่ทำงาน | ค่า matcher เป็นตัวพิมพ์เล็ก เช่น "bash" | การจับคู่มีความสำคัญตัวพิมพ์ ชื่อเครื่องมือใช้ตัวพิมพ์ใหญ่: Bash, Edit, Write, Read |
| Hooks กำหนดใน standalone file แทนที่จะเป็น settings.json | Hooks อยู่ในไฟล์แยกต่างหาก | ไม่มีไฟล์ hooks standalone สำหรับ project หรือ user config กำหนด hooks ภายใต้ key "hooks" ใน settings.json |
MCP servers ใน .mcp.json ไม่โหลด | ไฟล์อยู่ภายใต้ .claude/ หรือใช้รูปแบบ config ของ Claude Desktop | Project MCP config อยู่ที่ root ของ repository เป็น .mcp.json ไม่ใช่ภายใน .claude/ |
Skill ปรากฏใน /skills แต่ Claude ไม่เรียกใช้ | Skill มี disable-model-invocation: true ใน frontmatter | ตรวจสอบป้ายใน /skills: ป้าย "user-only" หมายความว่า Claude จะไม่เรียกใช้เอง |
แหล่งข้อมูลที่เกี่ยวข้อง
สำหรับเอกสารอ้างอิงฉบับเต็มในแต่ละพื้นที่การตั้งค่า โปรดดูหน้าเฉพาะ:
- Settings: ลำดับความสำคัญและรายการ key ทั้งหมด
- Hooks reference: ชื่อ event, payloads และรูปแบบผลลัพธ์
--debug hooks - MCP: การตั้งค่า server, การอนุมัติ และผลลัพธ์
/mcp - แก้ไขปัญหาการติดตั้งและการเข้าสู่ระบบ: ปัญหา
command not found, PATH และการพิสูจน์ตัวตน