Advanced Guide

Claude Code — คู่มือระดับสูง

ต่อจาก Intermediate Guide — อ่านนี่เมื่อใช้ subagent/worktree/TDD คล่องแล้ว และเริ่มอยากปรับ Claude Code ให้เข้ากับ workflow ทีม/โปรเจกต์ใหญ่

1.Hooks — เขียน automation เอง

Hooks คือสคริปต์ที่รันอัตโนมัติตาม event ของ Claude Code (ก่อน/หลังเรียก tool, เริ่ม/จบ session) ตั้งค่าใน .claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "scripts/block-dangerous.sh" }]
      }
    ]
  }
}

ใช้ทำ: บล็อกคำสั่งอันตรายอัตโนมัติก่อนรันจริง, log ทุกการแก้ไฟล์, รัน linter อัตโนมัติหลัง edit

กฎ: hook คือสิ่งที่ทีมต้อง "บังคับ" จริงจัง (ไม่ใช่แค่ขอให้ Claude ระวัง) — ใช้เมื่อ prompt-level instruction ไม่พอ

2.Custom MCP Servers — เชื่อม Claude กับระบบภายนอก

MCP (Model Context Protocol) คือมาตรฐานเชื่อม Claude กับ tool ภายนอก (database, API, ระบบภายในบริษัท) ตั้งค่าใน .mcp.json:

{
  "mcpServers": {
    "my-database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
    }
  }
}

หลังตั้งค่า Claude จะเรียก query database ได้ตรงๆ ผ่าน tool ที่ MCP server เปิดให้ — ไม่ต้องเขียน wrapper เอง

สำคัญ: ก่อนติดตั้ง MCP server จากคนอื่น ตรวจ source (official vendor vs unknown repo) เหมือน install dependency ทั่วไป — มันรันโค้ดจริงในเครื่อง

3.Headless Mode / Automation Scripts

รัน Claude Code แบบไม่ interactive สำหรับ script/CI:

claude -p "run the test suite and report failures" --output-format json

ใช้ต่อยอดเป็น: pre-commit check, scheduled report (cron), CI pipeline step ที่ให้ Claude สรุปผล test/build

4.Multi-Agent Orchestration

เมื่องานใหญ่เกินกว่า 1 agent ทำไหว (เช่น review ทั้ง repo, migrate 50 ไฟล์พร้อมกัน) ใช้ workflow ที่ fan-out เป็นหลาย agent พร้อมกัน แล้ว synthesize ผลกลับมา

Finder agents (หาแต่ละมุม) → Verifier agents (ยืนยันแต่ละ finding แยกกัน) → Synthesis (สรุปเดียว)

ใช้เมื่อ: ต้องความครอบคลุม (audit ทั้ง codebase), ต้องความมั่นใจ (หลาย agent verify ก่อนเชื่อ finding เดียว), หรืองานสเกลใหญ่เกิน context เดียวถือไหว

ข้อควรระวัง: ต้นทุน token สูงกว่าทำเอง — ใช้เมื่อของจริงต้องการ ไม่ใช่ default

5.Permission Modes — ควบคุมสิทธิ์ Claude

.claude/settings.json ตั้งได้ว่า tool ไหนรันได้เลยไม่ต้องถาม, ตัวไหนต้องถามทุกครั้ง, ตัวไหนห้ามเด็ดขาด:

{
  "permissions": {
    "allow": ["Bash(npm test:*)", "Bash(git status)"],
    "deny": ["Bash(rm -rf:*)"],
    "ask": ["Bash(git push:*)"]
  }
}

ทีมที่ทำงานร่วมกันควรตกลง policy นี้ร่วมกัน — ลดจำนวนครั้งที่ต้องกด "อนุมัติ" ของงานที่ปลอดภัยแน่นอน ในขณะที่ยังคุมงานเสี่ยงไว้

6.Skills — สอน Claude ให้รู้ pattern เฉพาะทีม

Skill คือชุดความรู้/ขั้นตอนที่โหลดเข้ามาเฉพาะตอนที่เกี่ยวข้อง (ไม่กิน context ตลอดเวลา) สร้างได้เองที่ .claude/skills/<name>/SKILL.md:

---
name: deploy-checklist
description: Use before any production deploy. Checklist of pre-deploy checks.
---
Before deploying to production:
1. Run full test suite
2. Check migration is reversible
3. Confirm rollback plan exists

เหมาะกับ pattern ที่ทีมทำซ้ำๆ และมี "วิธีที่ถูกต้อง" ชัดเจน (deploy checklist, code style เฉพาะทีม, debugging pattern เฉพาะ stack)

7.Model Routing — เลือกโมเดลให้เข้ากับความเสี่ยงงาน

จับคู่โมเดลกับความซับซ้อนของการตัดสินใจ ไม่ใช่ขนาดงาน:

ระดับความเสี่ยง (ตอบผิดแล้วเสียหายแค่ไหน)โมเดล
ตอบผิดไม่เป็นไร (format, boilerplate, ค้นไฟล์)โมเดลเบา/เร็ว
ตอบผิดแก้ทีหลังได้ (dev งานทั่วไป, test, review)โมเดล default
ตอบผิดเสียหายจริง (สถาปัตยกรรม, security, financial calc)โมเดลที่ฉลาดที่สุดที่มี

หลักคิด: ไฟล์ 300 บรรทัดที่แค่ parse CSV ไม่ต้องใช้โมเดลแพงสุด แต่ trading algo 3 บรรทัดต้องใช้

8.Team Standards — ทำให้ทั้งทีมใช้เหมือนกัน

9.Security Posture สำหรับทีม

เรื่องนโยบายแนะนำ
Secretsห้าม Claude เขียน key ลงโค้ด — บังคับผ่าน hook เช็คก่อน commit
3rd-party installตั้ง gate ก่อนติดตั้ง dependency ใหม่ (ตรวจ source, license, maintainer)
Production deployห้าม auto-push เข้า main/deploy — ต้องผ่าน PR + review เสมอ
Destructive commandsdeny list ใน settings.json (rm -rf, git reset --hard, force push)

10.Claude Agent SDK — เขียนโปรแกรมเรียก Claude เอง (นอก CLI)

Claude Agent SDK (Python/TypeScript) ให้เขียนแอปพลิเคชันของตัวเองที่ฝัง Claude เข้าไปเป็น agent — ไม่ใช่ใช้ผ่าน terminal แบบ Claude Code แต่ควบคุมผ่านโค้ดโดยตรง (กำหนด tool เอง, permission เอง, loop เอง)

ใช้เมื่อ: อยากสร้างผลิตภัณฑ์/บริการที่มี AI agent อยู่ข้างใน (ไม่ใช่แค่ใช้ช่วยเขียนโค้ด) เช่น chatbot ภายในที่ query database เอง, ระบบ auto-triage ticket

11.Scheduled / Cron Agents — ให้ Claude ทำงานซ้ำตามเวลาเอง

ตั้งงานให้รันอัตโนมัติตามตารางเวลา (ทุกเช้า, ทุกสัปดาห์) โดยไม่ต้องเปิด session เอง — บอกความถี่และ prompt ที่ต้องการ Claude จะรันแล้วส่งผลกลับ (email/Slack/ไฟล์)

ใช้เมื่อ: อยากได้ weekly report อัตโนมัติ, ตรวจสุขภาพระบบทุกเช้า, หรือ audit ที่ต้องทำซ้ำตามรอบ (เช่น รีวิว dependency ใหม่ทุกเดือน)

12.Workflow Orchestration แบบเจาะจง (ไม่ใช่แค่ concept)

นอกจาก multi-agent แบบคุยสั่งเอง (§4) ยังมี tool ที่เขียนเป็น "สคริปต์ orchestration" ได้จริง — กำหนด flow ชัดเจนว่า agent ไหนทำอะไรก่อน-หลัง, อันไหนรันคู่ขนาน (parallel), อันไหนต้องรอผลจากอันอื่นก่อน (pipeline)

ใช้เมื่อ: งานที่ต้องการความแม่นยำของลำดับขั้นตอนสูง (เช่น review หลายมุมมองแล้วเอาผลมา verify ไขว้กัน) — ต่างจาก §4 ตรงที่นี่ควบคุม flow เป็นโค้ดจริง ไม่ใช่ปล่อยให้ Claude ตัดสินใจ orchestration เอง

ข้อควรระวัง: ต้นทุน token สูงมาก ใช้เฉพาะงานที่สเกล/ความมั่นใจสำคัญจริงๆ

13.CI/CD Integration — ตัวอย่างจริง

ผูก headless mode (§3) เข้ากับ CI pipeline เช่น GitHub Actions:

- name: Claude code review
  run: |
    claude -p "review this PR diff for bugs and security issues" \
      --output-format json > review.json

ใช้เมื่อ: อยากให้ทุก PR ผ่านการ review อัตโนมัติก่อนถึงมือคน, หรือรัน test summary อัตโนมัติทุกครั้งที่ push

ข้อควรระวัง: ต้องมี API key/credential แยกสำหรับ CI (อย่าใช้ credential ส่วนตัว) และตั้ง cost limit ไว้ป้องกันบิลบาน

14.Checklist ระดับสูง

15.กับดักระดับสูง

อาการสาเหตุแก้
Hook ทำงานช้า/บล็อกงานทั่วไปmatcher กว้างเกินไปเขียน matcher ให้เจาะจง ทดสอบก่อน deploy จริง
MCP server ล่มแล้วทั้ง session ค้างไม่มี timeout/fallbackทดสอบ MCP server แยกก่อนผูกเข้า workflow จริง
Multi-agent ใช้ token บานปลายfan-out agent เยอะเกินความจำเป็นของงานใช้เฉพาะงานที่สเกลจริงต้องการ ไม่ใช่ default ทุกงาน
ทีมแต่ละคน CLAUDE.md ไม่ตรงกันไม่มี team standardทำ template กลาง บังคับ pattern เดียวกัน