Intermediate Guide

Claude Code — คู่มือระดับกลาง

ต่อจาก Beginner Guide — อ่านนี่เมื่อใช้ /clear /compact คล่องแล้ว และทำ Plan Mode เป็นแล้ว

1.Custom Slash Commands — สร้างคำสั่งของตัวเอง

แทนที่จะพิมพ์ prompt เดิมซ้ำทุกครั้ง (เช่น "review โค้ดที่เพิ่งแก้แล้วบอก bug") สร้างเป็นคำสั่งสั้นได้

สร้างไฟล์ .claude/commands/review.md ในโปรเจกต์:

---
description: Review recently changed code for bugs
---
Review the current git diff. Focus on:
- Logic errors
- Missing error handling
- Security issues
Report only high-confidence findings.

ใช้ด้วย /review — Claude จะรัน prompt นี้ทันที ไม่ต้องพิมพ์ยาวทุกครั้ง

2.Subagents — แยกงานให้ "ผู้ช่วย" ทำคู่ขนาน

Claude Code เรียก sub-agent (context แยก) ไปทำงานเฉพาะทางได้ เช่น ค้นโค้ดทั้ง repo, review PR, เขียน plan

ใช้ agent ค้นหาว่า function calculate_tax ถูกเรียกใช้ที่ไหนบ้างในโปรเจกต์

ข้อดี: งานค้นหา/สำรวจเยอะๆ ไม่กิน context หลักของ session — sub-agent ทำเสร็จแล้วส่งสรุปกลับมาสั้นๆ

เมื่อไหร่ควรใช้: งานที่ต้องอ่านไฟล์เยอะ (>5 ไฟล์) เพื่อหาคำตอบเดียว หรืองานอิสระหลายอย่างที่ทำพร้อมกันได้

3.Plan Mode แบบละเอียด

ไม่ใช่แค่พิมพ์ "วางแผนก่อน" — มี mode จริงจัง (Shift+Tab สลับโหมด หรือพิมพ์ขอ):

ใช้กับงานที่ แก้หลายไฟล์ หรือ สถาปัตยกรรมเปลี่ยน — งานเล็ก (แก้ 1 บรรทัด) ข้ามได้

4.Test-Driven Development (TDD) กับ Claude

Workflow ที่แนะนำสำหรับ feature ใหม่:

1. บอก Claude: "เขียน test ก่อนที่ยังไม่ผ่าน (fail) สำหรับ feature นี้"
2. ดู test แล้วเข้าใจว่ามัน expect อะไร
3. บอกให้ implement โค้ดจนกว่า test จะผ่าน
4. รัน test suite เต็มอีกรอบ ไม่ใช่แค่ test ที่เพิ่งเขียน

ข้อดี: บังคับให้นิยาม "เสร็จ" ชัดเจนล่วงหน้า ไม่ใช่เดาทีหลังว่า "น่าจะโอเค"

5.Git Worktrees — ทำหลายงานคู่ขนานไม่ชนกัน

ถ้าอยากให้ Claude ทำ feature A ใน session หนึ่ง และ feature B อีก session พร้อมกัน (คนละ branch) โดยไม่ให้ไฟล์ชนกัน:

git worktree add ../myproject-feature-a feature-a
git worktree add ../myproject-feature-b feature-b

แล้วเปิด Claude Code แยก 2 terminal คนละโฟลเดอร์ — งานคนละ branch ทำงานพร้อมกันได้จริงโดยไม่ทับกัน

สำคัญ: ใส่ .worktrees/ หรือชื่อโฟลเดอร์ worktree ไว้ใน .gitignore ก่อน

6.CLAUDE.md แบบขยาย — เมื่อโปรเจกต์โตขึ้น

นอกจาก CLAUDE.md ที่ root แล้ว ใส่ CLAUDE.md ย่อยในโฟลเดอร์ย่อยได้ (เช่น backend/CLAUDE.md) — Claude จะอ่านทั้งของ root และของโฟลเดอร์ที่กำลังทำงานอยู่

ไฟล์ใช้ทำอะไร
MEMORY.mdClaude เขียนเอง — เก็บ bug ที่เจอ+วิธีแก้, decision ทางสถาปัตยกรรม กันเจอปัญหาเดิมซ้ำ
PLAN.mdแผนงาน feature ที่ agreed แล้ว — Claude เสนอ เราแก้ ไม่ให้ Claude แก้ตรงๆ
.env.templateรายการ env var ที่ต้องมี (ไม่มีค่าจริง) กันลืมว่าต้อง config อะไรบ้าง

7.Context Management แบบละเอียด

สถานการณ์ทำอะไรเหตุผล
งานย่อยเกี่ยวเนื่องในโปรเจกต์เดิมทำต่อ session เดิมContext มีค่า ไม่ต้องเสียเวลาโหลดใหม่
Context เกิน ~50%/compactความแม่นยำตกฮวบหลัง 50% — อย่ารอให้หลอนก่อนค่อยทำ
เปลี่ยนหัวข้อในโปรเจกต์เดิม/clearContext เก่า = noise รบกวนงานใหม่
เปลี่ยนโปรเจกต์เปิด session ใหม่CLAUDE.md/MEMORY.md คนละไฟล์
Claude เริ่มลืม/สับสน/ตอบแปลกๆ/clear ทันทีสัญญาณ context เน่า
Implementation เสร็จ ก่อนเข้า review/compactเก็บ budget ไว้ให้รอบ review/test

8.Systematic Debugging — ไม่เดาสุ่ม

เวลาเจอ bug อย่าปล่อยให้ Claude "ลองแก้ไปเรื่อยๆ" — สั่งให้ทำตามลำดับ:

1. reproduce bug ให้เห็นก่อน (ยืนยันว่ามันเกิดจริง)
2. หา root cause (อ่าน stack trace / log จริง ไม่เดา)
3. เสนอ fix ที่ตรงจุด ไม่ใช่ patch อาการ
4. verify ว่า fix แก้ปัญหาจริง (รัน test/reproduce ซ้ำ)

ถ้า Claude เสนอ fix โดยไม่ได้ reproduce ก่อน ให้ถามกลับ: "แน่ใจนะว่านี่คือสาเหตุจริง ลอง reproduce ให้ดูก่อน"

9.Code Review ก่อน Merge

ก่อน commit/PR งานใหญ่ สั่ง:

review โค้ดที่เพิ่งแก้ทั้งหมด หา bug, security issue, และจุดที่ over-engineer เกินความจำเป็น

Claude จะกลับมาอ่านตัวเองอย่างเป็นระบบ (ไม่ใช่ self-praise) — จับพวก edge case ที่ตอน implement มองข้าม

10.รู้จัก Hooks คร่าวๆ (ยังไม่ต้องเขียนเอง)

Hooks คือ automation ที่รันอัตโนมัติตาม event (ก่อน/หลัง Claude เรียก tool, ตอนเริ่ม/จบ session) เช่น: บล็อกไม่ให้รันคำสั่งอันตรายอัตโนมัติ, log ทุกครั้งที่แก้ไฟล์, เตือนก่อน push ระดับ intermediate แค่รู้ว่ามีอยู่พอ — เขียนเองเมื่อทีมมี pattern ที่ต้องบังคับซ้ำๆ จริงจัง

11.Output Styles — ปรับ "โทน" การตอบของ Claude

Claude ปรับรูปแบบการตอบได้ตาม output style ที่ตั้งไว้ (เช่น ตอบละเอียดแบบสอน, ตอบสั้นห้วนแบบ operator, ตอบแบบ senior engineer ข้ามพื้นฐาน) เลือกได้ผ่านคำสั่งตั้งค่า style

ใช้เมื่อ: อยากให้ Claude อธิบายเหตุผลเวลาเขียนโค้ดให้ (โหมดสอน), หรืออยากให้ตอบสั้นเข้าประเด็นไม่ต้องมี intro ยาว

12.Background Tasks — รันงานค้างไว้เบื้องหลัง

สั่งให้ Claude รันคำสั่งที่ใช้เวลานาน (เช่น dev server, build, test suite ยาว) แบบไม่บล็อกไม่ต้องรอ:

รัน dev server ไว้เบื้องหลัง แล้วช่วยดู log error ให้ด้วย

Claude จะรันแล้วกลับมาทำงานอื่นต่อได้ทันที พอ process เสร็จหรือมีปัญหาจะแจ้งกลับมาเอง

ใช้เมื่อ: ต้องรัน server ค้างไว้ระหว่างทดสอบ, หรือรัน job ที่ใช้เวลานานโดยไม่อยากรอเฉยๆ

13.Checkpoints / Rewind — ย้อนกลับ state ก่อนหน้าได้

Claude Code เก็บ checkpoint ของงานที่แก้ไว้ ถ้า Claude แก้พัง/หลุดขอบเขต ย้อนกลับไปจุดก่อนหน้าได้โดยไม่ต้องพึ่ง git (สั่งขอ "ย้อนกลับไปก่อนที่จะแก้ไฟล์นี้") ต่างจาก git ตรงที่ไม่ต้อง commit ไว้ก่อนก็ย้อนได้ — เหมาะกับตอนทดลองอะไรเสี่ยงๆ ที่ยังไม่อยาก commit

14.Custom Subagent Types — นิยาม "ผู้ช่วย" เฉพาะทาง

นอกจาก sub-agent ทั่วไป (§2) ยังนิยาม agent เฉพาะทางเองได้ที่ .claude/agents/<name>.md — กำหนดได้ว่า agent นี้เข้าถึง tool อะไรได้บ้าง (เช่น agent สำหรับ "ค้นหาอย่างเดียว" ไม่ให้สิทธิ์แก้ไฟล์)

ใช้เมื่อ: อยากมี agent เฉพาะทางที่ทีมเรียกซ้ำบ่อย (เช่น "test-runner" ที่รัน test ได้อย่างเดียว ไม่แตะโค้ด)

15.Extended Thinking — ให้ Claude คิดนานขึ้นก่อนตอบ

งานที่ตัดสินใจซับซ้อน (สถาปัตยกรรม, debug ยากๆ, คำนวณซับซ้อน) เปิดโหมดคิดขยาย (extended thinking) ให้ Claude ใช้เวลาไตร่ตรองมากขึ้นก่อนตอบ แลกกับตอบช้าลงหน่อย

ใช้เมื่อ: งานที่ตอบผิดแล้วเสียหายจริง ไม่ใช่งานทั่วไปที่เร็วดีกว่า

16.Checklist ระดับกลาง

17.กับดักที่เจอบ่อยระดับนี้

อาการสาเหตุแก้
Claude เริ่มแก้เกินขอบเขตที่ขอไม่ได้ผ่าน Plan Mode ก่อนบังคับ Plan Mode ทุกงานที่แตะ >2 ไฟล์
Session ยาวจนตอบช้า/แปลกContext เต็มเกิน ไม่ยอม compactตั้งนิสัย /compact ทุก ~50%
Sub-agent ทำงานซ้ำกับที่ main session ทำอยู่แล้วสั่ง delegate แล้วยังทำเองต่ออย่าทำงานซ้ำที่ sub-agent กำลังทำ รอผลมันก่อน
Bug แก้แล้วกลับมาใหม่แก้ที่อาการ ไม่ใช่ root causeบังคับ reproduce ก่อนแก้เสมอ (§8)