เดือนแรก ผมใช้ Claude Code ในสภาพดิบ ๆ คือเขียนคำสั่ง กด Enter อ่านโค้ดที่ออกมา แล้วก็แก้ไปเรื่อย ตอนนั้นคิดว่าแค่นี้ก็พอแล้ว แต่ความจริงแล้ว มันเหมือนเพิ่งได้ใบขับขี่เฉพาะรถอัตโนมัติแล้วไปขับบนทางหลวง ยังดึงประสิทธิภาพของมันออกมาไม่ถึงครึ่งด้วยซ้ำ จนมีช่วงเวลาที่แค่ปรับตั้งค่าเจ็ดอย่าง ก็ทำให้พฤติกรรมต่อคำถามเดียวกันเปลี่ยนไปราวกับคนละเครื่องมือ
ยินดีที่ได้รู้จักครับ ผมชื่อ Hermes เป็นคนทำงานที่ใช้ AI โดยเฉพาะ Claude Code ในงานจริงทุกวัน บทความนี้จะทำให้คุณได้การตั้งค่าทั้งเจ็ดแบบติดไม้ติดมือกลับไปลองใช้ได้ทันที พร้อมค่าคอนฟิกจริง
เนื้อหานี้เป็นตัวอย่างฟรีจากส่วนหนึ่งของ Note แบบเสียเงินของผมชื่อ "Claude Code Complete Guide" ใครสนใจผมจะแปะลิงก์ไว้ท้ายบทความครับ
ทำไมการใช้งาน "แบบดิบ ๆ" ถึงได้ประสิทธิภาพแค่ครึ่งเดียว
ถ้าไม่ตั้งค่าอะไรเลย Claude Code จะเริ่มต้นทุกบทสนทนาด้วยสภาพที่ไม่รู้อะไรเกี่ยวกับโปรเจกต์เลย มันไม่รู้โครงสร้างไดเรกทอรี ไม่รู้กติกาการเขียนโค้ด หรือไม่รู้ว่าต้องเช็กอะไรก่อน commit เพราะงั้นต่อให้ถามคำถามเดียวกัน วันหนึ่งมันอาจเดาคำสั่งได้ถูก อีกวันอาจไปสร้างไฟล์ผิดที่
นี่ไม่ใช่ข้อบกพร่อง แต่เป็นสิ่งที่ตั้งใจออกแบบมา เอกสารทางการเขียนชัดเจนว่า "แต่ละเซสชันเริ่มต้นจากกระดานเปล่า" พูดง่าย ๆ คือหน้าที่ในการดึงประสิทธิภาพออกมาเป็นของผู้ใช้เอง ต่อไปนี้คือการตั้งค่าเจ็ดอย่างที่จะมาเติมเต็ม "กระดานเปล่า" นั้น

การตั้งค่า 7 อย่าง พร้อมการสาธิต
1. CLAUDE.md — ความทรงจำของโปรเจกต์
การวางไฟล์ชื่อ CLAUDE.md ไว้ที่ root ของโปรเจกต์ จะทำให้ Claude Code อ่านไฟล์นั้นทุกครั้งที่เริ่มเซสชัน ถ้าไม่มีไฟล์นี้ Claude จะต้องเดาใหม่จากศูนย์ทุกครั้ง
เนื้อหาควรเขียนด้วย mindset ว่า "เขียนไว้เพื่อไม่ต้องมาแก้ความผิดพลาดเดิมซ้ำอีก" เขียนรายละเอียดที่เป็นรูปธรรมและพิสูจน์ได้ ไม่ใช่ปรัชญาลอย ๆ
ภาพรวมโปรเจกต์: Inventory Management API (Node.js + PostgreSQL) รันเทสด้วย npm test / รัน npm run lint ก่อน commit ทุกครั้ง API handlers อยู่ใน src/api/handlers/
แทนที่จะเขียนว่า "รักษาโค้ดให้สะอาด" ให้เขียนว่า "indent 2 ช่องว่าง" แทนที่จะเขียนว่า "เทสให้ดี" ให้เขียนว่า "รัน npm test" แค่ความแตกต่างตรงนี้ก็เปลี่ยนอัตราการทำตามของ Claude ไปอย่างเห็นได้ชัด ว่ากันว่าประสิทธิภาพจะลดลงถ้าไฟล์ยาวเกิน 200 บรรทัด ดังนั้นเคล็ดลับคือย้ายขั้นตอนละเอียดไปไว้ที่ Setting 7 (Skills) ที่จะพูดถึงทีหลัง
2. hooks — บังคับสิ่งที่ตัดสินใจไว้แล้วด้วยกลไก
CLAUDE.md คือ "คำขอ" ไม่ใช่ "ข้อบังคับ" นี่คือความเข้าใจผิดที่พบบ่อย เพราะเป็นเรื่องปกติที่ Claude จะพลาดข้ามคำสั่งไปบ้าง กฎที่อยากให้ทำตามแบบ 100% ควรบังคับด้วยกลไกที่เรียกว่า hooks
เขียนตั้งค่าแบบนี้ใน .claude/settings.json:
กำหนด hooks.PreToolUse ด้วย matcher: "Bash" คำสั่งที่จะให้รันคือ ~/.claude/hooks/check-test.sh
ขอยกตัวอย่างให้ดูจริง ก่อนที่จะเพิ่มตั้งค่านี้ ผมเจอเหตุการณ์นี้บ่อยมาก คือสั่งให้ Claude "แก้บั๊ก" แล้วมัน commit ทันทีหลังจากแก้เสร็จโดยไม่รันเทสเอง จนมาสังเกตทีหลังว่าเทสพัง
การตั้ง hook บน event PreToolUse จะมีสคริปต์แทรกเข้ามาก่อนที่ Claude จะรันคำสั่ง ถ้าสคริปต์นั้นคืนค่า "exit code 2" การทำงานนั้นจะถูกบล็อก
สคริปต์มีหน้าที่แค่รัน npm test ถ้าตรวจพบ git commit ถ้าเทสไม่ผ่าน จะแสดงข้อความ "Tests did not pass" และคืนค่า exit code 2 exit code 2 คือสัญญาณให้ hook บล็อกการเรียกใช้เครื่องมือ
ตั้งแต่วินาทีที่เพิ่มชิ้นนี้เข้าไป การ commit ในขณะที่เทสแดงกลายเป็นสิ่งที่เป็นไปไม่ได้เลย จุดแข็งของ hooks คือคุณพิสูจน์ได้จริงว่ามันเปลี่ยนจาก "คำขอ" เป็น "การบังคับ" ด้วยการรันคำสั่งจริง

3. Sub-agents — อย่าให้งานค้นคว้ามาทำให้บทสนทนาหลักรก
ถ้าให้มันอ่านไฟล์ log ใหญ่ ๆ หรือสำรวจโค้ดทั้งโปรเจกต์ ข้อมูลเหล่านั้นจะสะสมอยู่ใน context ของบทสนทนา เมื่อ context ปนเปื้อน ความแม่นยำในการทำตามคำสั่งช่วงหลังจะลดลง
เพื่อเลี่ยงปัญหานี้ ให้ใช้ sub-agents ย้ายงานค้นคว้าและตรวจสอบไปไว้ใน context window ที่แยกออกไป แล้วส่งกลับมาแค่บทสรุปยังงานหลัก ตัวอย่างเช่น ถ้าสั่ง "ค้นหาวิธี implement authentication ใน repo นี้แล้วสรุปประเด็นสำคัญให้หน่อย" กระบวนการสำรวจ (การอ่านไฟล์และ log จำนวนมาก) จะเกิดขึ้นใน context window ที่แยกออกไป และมีแค่ข้อสรุปที่กลับเข้ามาในบทสนทนาหลัก
✗ ปล่อยให้มันอ่านไฟล์ log ใหญ่ ๆ ในบทสนทนาหลักต่อไปเรื่อย ๆ
◯ ย้ายงานออกไปด้วยการสั่ง "ให้อีก agent ช่วยค้นคว้าเรื่องนี้ แล้วเอากลับมาแค่บทสรุป"
งานที่ต้อง "อ่านเยอะเพื่อเอาข้อมูล" เช่น ผลการเทส หรือการค้นหาเอกสาร เป็นงานที่คุ้มค่าจะย้ายไปให้ sub-agents ทำเป็นพิเศษ
4. Plan Mode — ให้มันเขียนแผนก่อนลงมือ
เวลาสั่งให้แก้ไขอะไรที่ซับซ้อน Claude อาจเริ่มเขียนโค้ดผิดทิศทางขึ้นมาซะดื้อ ๆ ทำให้ต้องมานั่งทำใหม่ทั้งหมดทีหลัง Plan Mode คือโหมดที่ให้มันทำแค่งานค้นคว้าและวางแผนโดยไม่แก้ไขอะไรเลย
สลับไปโหมดนี้ได้ด้วยปุ่ม Shift+Tab ในโหมด Plan Mode Claude จะอ่านไฟล์และรันคำสั่งเพื่อค้นคว้า แต่จะไม่แก้ไข source code เมื่อวางแผนเสร็จ มันจะเสนอแผนมาให้คุณ แล้วค่อยตัดสินใจว่าจะอนุมัติหรือไม่
ถ้ารู้สึกว่าพิมพ์ "วางแผนก่อน" ทุกครั้งมันน่าเบื่อ ก็ตั้งค่าให้โหมดนี้เป็นค่าเริ่มต้นได้ในโปรเจกต์ settings
กำหนด permissions.defaultMode ใน settings.json เป็น "plan"
ยิ่งการแก้ไขซับซ้อนเท่าไร ยิ่งพลาดตั้งแต่ก้าวแรกแล้วต้องทำใหม่ก็ยิ่งหนักเท่านั้น Plan Mode คือประกันที่จะป้องกันไม่ให้ต้องมานั่งทำใหม่
5. Permission Modes — ออกแบบจุดที่จะให้มันหยุด
Claude Code มีหลายโหมด ตั้งแต่โหมดที่ถามยืนยันทุกครั้งที่แก้ไฟล์หรือรันคำสั่ง ไปจนถึงโหมดที่ดำเนินการอัตโนมัติในระดับหนึ่ง โดยค่าเริ่มต้นมันจะถามยืนยันทุกอย่างยกเว้นการอ่าน
ในการทำงานจริงประจำวัน จุดสมดุลที่ให้การแก้ไขไฟล์ทำได้อัตโนมัติ ส่วนอย่างอื่นต้องยืนยัน จะจัดการง่ายที่สุด และคุณสามารถตั้งจุดสมดุลนั้นเป็นค่าเริ่มต้นได้ด้วยการเขียนแบบนี้ในไฟล์ settings:
กำหนด permissions.defaultMode ใน settings.json เป็น "acceptEdits"
✗ ใช้โหมดที่ปิดการตรวจสอบทั้งหมดเพราะคิดว่า "ขี้เกียจยืนยัน"
◯ ทำให้อัตโนมัติเฉพาะการแก้ไขไฟล์ แต่ยังให้ยืนยันสำหรับคำสั่งเสี่ยงหายนะ (เช่น force push หรือ deploy ขึ้นโปรดักชัน)
จากประสบการณ์ผม คนที่เผลอตั้งค่าให้ "อัตโนมัติทั้งหมด" คือคนที่มารู้สึกตกใจกับการเปลี่ยนแปลงที่ไม่คาดคิดทีหลัง ค่อย ๆ ผ่อนคลายการตั้งค่าได้เมื่อคุณรู้แล้วว่าอยากให้มันหยุดตรงไหน

6. Context Management — เก็บกวาดห้องบ่อย ๆ
ถ้าปล่อยให้บทสนทนาเดียวดำเนินต่อไปไม่รู้จบ ประวัติที่ไม่เกี่ยวข้องจะตกค้างอยู่ใน context ทำให้เปลือง tokens และความแม่นยำของคำตอบลดลง
พิมพ์ /clear เพื่อล้างบทสนทนาให้สะอาดเมื่อจะขยับไปทำงานที่ไม่เกี่ยวข้อง แค่นั้นเอง ส่วนบทสนทนาที่อยากกลับมาดูทีหลัง ให้ใช้ /rename ตั้งชื่อก่อนที่จะล้าง จะได้เรียกกลับมาได้โดยไม่สับสน
✗ ใช้บทสนทนาเดิมตั้งแต่เช้าจรดเย็น โดยที่เรื่องไม่เกี่ยวข้องจากเมื่อวานยังค้างอยู่
◯ ใช้ /clear เมื่อจบงานแต่ละอย่าง และใช้ /rename ก่อนถ้าจำเป็น
ถ้า Setting 3 (Sub-agents) คือการ "แยกงานค้นคว้าภายในงานเดียว" Setting 6 นี้คือ "การแยกระหว่างงาน" การทำทั้งสองอย่างคือหนทางเดียวที่จะทำให้ context สะอาดจริง ๆ
7. Skills — เก็บขั้นตอนไว้นอกบทสนทนา
ถ้ายิ่งเติมขั้นตอนต่าง ๆ ลงใน CLAUDE.md ไฟล์ก็จะยิ่งบวมขึ้น ทำให้ปริมาณที่ต้องอ่านตอนเริ่มทุกเซสชันเพิ่มขึ้น แถมขั้นตอนที่ไม่ได้ใช้เป็นประจำก็จะถูกอ่านต่อเนื่องแม้ในงานที่ไม่เกี่ยวข้อง
Skills คือตัวช่วยตรงนี้ ถ้าวางไฟล์ SKILL.md ไว้ใต้ .claude/skills/ มันจะถูกอ่านเฉพาะเมื่อจำเป็นเท่านั้น ถ้า CLAUDE.md คือ "ความทรงจำที่ต้องอ่านทุกครั้ง" Skill ก็คือ "คู่มือที่เปิดเฉพาะตอนจำเป็น"
ตัวอย่างเช่น ถ้ามีขั้นตอนยาว ๆ ที่ไม่ได้ใช้บ่อย อย่างขั้นตอน PR review หรือขั้นตอน database migration ก็ย้ายมันออกจาก CLAUDE.md ไปไว้ฝั่ง Skills บทสนทนาประจำวันจะได้เบาสบาย และจะจ่ายต้นทุนความหนักเฉพาะตอนจำเป็นเท่านั้น
สรุป — จะเกิดอะไรขึ้นถ้าไม่มีทั้ง 7 อย่างนี้?
สรุปประเด็นสำคัญครับ
ถ้าไม่มี CLAUDE.md Claude ก็จะเดาใหม่จากศูนย์ทุกครั้ง ถ้าไม่มี hooks กติกาที่ตกลงกันไว้ก็เป็นแค่ "คำขอ" และโดนข้ามได้ ถ้าไม่มี sub-agents และ /clear context จะปนเปื้อนแล้วความแม่นยำลดลง ถ้าไม่มี Plan Mode คุณต้องแบกรับความเสี่ยงในการทำใหม่ทั้งหมดสำหรับงานที่ซับซ้อน ถ้าตั้ง permission modes แบบไม่คิดหน้าคิดหลัง ก็จะเสียจุดที่ใช้หยุดการทำงานไม่คาดฝัน ถ้าไม่มี Skills CLAUDE.md จะยิ่งหนักขึ้นเรื่อย ๆ
ในอีกมุมหนึ่ง นี่คือเรื่องของ "เสียเปรียบถ้าไม่ตั้งค่าทั้ง 7 อย่าง" ถ้าอ่านมาถึงตรงนี้แล้วยังไม่เคยตั้ง CLAUDE.md หรือไม่เคยใช้ /clear เลยสักครั้ง นั่นคือพื้นที่ให้คุณเติบโต
ไม่จำเป็นต้องทำทั้งหมดในครั้งเดียว เริ่มจากลองแค่ CLAUDE.md กับ Plan Mode ในงานวันนี้ก่อน แค่นั้นก็สัมผัสความแตกต่างจากสภาพดิบ ๆ ได้ทันที

ผมรวบรวมการตั้งค่าเชิงลึกและกับดักที่พบบ่อยในทางปฏิบัติไว้อย่างเป็นระบบใน Note แบบเสียเงินชื่อ "Claude Code Complete Guide" ใครอยากรู้ว่าหลังจาก 7 อย่างนี้จะมีอะไรต่อ ไปดูได้ที่นี่





