PATIPHAN DEV
หน้าแรกคอร์สเรียนผลงานสินค้าบทความเกี่ยวกับผมติดต่อ
เข้าสู่ระบบ
ศัพท์และพื้นฐาน Claude สำหรับผู้เริ่มต้น
ความคืบหน้า0/15 บทเรียน (0%)

บทที่ 1 · รู้จัก Claude ก่อนเริ่มใช้งาน

  • Claude คืออะไร มีกี่แบบ ต่างกันตรงไหน15 นาที
  • รู้จักตระกูลโมเดล Claude: Opus, Sonnet, Haiku, Fable เลือกใช้ตัวไหนดี18 นาที
  • Prompt, Token และ Context Window คืออะไร15 นาที

บทที่ 2 · ไฟล์และโฟลเดอร์สำคัญที่ Claude Code ใช้

  • CLAUDE.md ทำหน้าที่อะไร ต่างจาก README ยังไง15 นาที
  • settings.json กับ settings.local.json ต่างกันตรงไหน18 นาที
  • ข้างในโฟลเดอร์ .claude/ มีอะไรบ้าง18 นาที

บทที่ 3 · ศัพท์เทคนิคที่เจอบ่อยตอนใช้งาน

  • Subagent คืออะไร ใช้ตอนไหน16 นาที
  • Skill กับ Slash Command ต่างกันยังไง16 นาที
  • MCP (Model Context Protocol) คืออะไร ทำไมสำคัญ18 นาที

บทที่ 4 · เตรียมพร้อมก่อนเริ่มใช้งานจริง

  • ศัพท์ที่เจอบ่อยแบบสรุปย่อ (Cheat Sheet)12 นาที
  • คำถามที่พบบ่อยสำหรับผู้เริ่มต้น (FAQ)15 นาที
100%

Hook คืออะไร ใช้ทำอะไรได้บ้าง

ใช้เวลาประมาณ 16 นาที

ในบทนี้

  1. 1.Hook คืออะไร
  2. 2.จุดที่ hook ทำงานได้ (เหตุการณ์หลักๆ)
  3. 3.Hook บล็อกหรือแก้ไข action ได้ยังไง
  4. 4.ตัวอย่างการใช้งานจริง
  5. 5.ความสัมพันธ์กับ permission rule

Hook คืออะไร

Hook คือสคริปต์ (shell command) ที่ทำงานอัตโนมัติแบบ deterministic ณ จุดที่กำหนดไว้ล่วงหน้าใน lifecycle ของ Claude Code เช่น ก่อนเรียก tool, หลังเรียก tool เสร็จ, หรือตอน session จบ ต่างจากการสั่งผ่าน prompt หรือ CLAUDE.md ที่เป็นแค่ "คำแนะนำ" ที่โมเดลอาจทำตามหรือไม่ก็ได้ — hook คือโค้ดที่รันแน่นอนทุกครั้ง ไม่ขึ้นกับดุลยพินิจของโมเดล

จุดสำคัญ

Permission rule และ hook ถูกบังคับใช้โดย Claude Code ตัวโปรแกรมเอง ไม่ใช่โดยโมเดล ต่อให้ prompt หรือ CLAUDE.md จะเขียนกำกับไว้ยังไง ก็ไม่สามารถ "override" การตัดสินใจของ hook ได้

จุดที่ hook ทำงานได้ (เหตุการณ์หลักๆ)

Claude Code มี hook event ให้เกาะหลายจุดตลอด lifecycle ของ session ที่ใช้งานบ่อยที่สุดคือ:

  • PreToolUse — ทำงานก่อน tool จะถูกเรียกจริง ใช้ บล็อก การกระทำที่ไม่ต้องการได้ เช่น ห้ามแก้ไฟล์ที่สำคัญ หรือห้ามรันคำสั่งอันตราย
  • PostToolUse — ทำงานหลัง tool เรียกสำเร็จ ใช้ตรวจสอบ, format, หรือ lint โค้ดที่เพิ่งแก้ แต่

บทถัดไป

Permission Mode คืออะไร ควบคุมอะไรบ้าง

ใช้เวลาประมาณ 15 นาที

บทก่อนหน้า: MCP (Model Context Protocol) คืออะไร ทำไมสำคัญ
.env และการเก็บ API key อย่างปลอดภัย
15 นาที
Hook คืออะไร ใช้ทำอะไรได้บ้าง
16 นาที
  • Permission Mode คืออะไร ควบคุมอะไรบ้าง15 นาที
  • Plan Mode คืออะไร ช่วยอะไรก่อนลงมือทำงานจริง14 นาที
  • ย้อนกลับการกระทำที่เกิดไปแล้วไม่ได้
  • Stop — ทำงานตอน Claude ตอบจบ ใช้เช็คเงื่อนไข เช่น บังคับให้ test ต้องผ่านก่อนถือว่าจบงาน
  • SubagentStop — ทำงานตอน subagent ทำงานเสร็จ
  • SessionStart / SessionEnd — ทำงานตอนเริ่ม/จบ session ใช้ฉีด context เพิ่มเติมหรือทำความสะอาด
  • Hook บล็อกหรือแก้ไข action ได้ยังไง

    วิธีที่ hook ใช้สื่อสารกลับไปหา Claude Code มีสองแบบหลักๆ:

    1. Exit code

    #!/bin/bash
    if [[ "$command" == "rm -rf"* ]]; then
      echo "Blocked: dangerous command" >&2
      exit 2   # exit code 2 = บล็อก action นี้
    fi
    exit 0     # อนุญาตให้ทำต่อ
    

    2. JSON output พร้อม permissionDecision (สำหรับ PreToolUse)

    {
      "hookSpecificOutput": {
        "hookEventName": "PreToolUse",
        "permissionDecision": "deny",
        "permissionDecisionReason": "ห้ามเขียนลง database production โดยตรง"
      }
    }
    

    นอกจากบล็อกแล้ว hook บางจุดยังแก้ไข input ก่อนส่งให้ tool ทำงานได้ (เช่นเปลี่ยนคำสั่ง Bash ที่กำลังจะรัน) หรือฉีด context เพิ่มเติมเข้าไปในบทสนทนาได้เช่นกัน

    ตัวอย่างการใช้งานจริง

    ทีมพัฒนาต้องการห้าม Claude แก้ไฟล์ .env หรือไฟล์ config ที่ผลิตจริงโดยเด็ดขาด จึงเขียน PreToolUse hook ที่เช็คว่า tool ที่กำลังจะเรียกคือ Edit หรือ Write และ path ที่จะแก้ตรงกับ pattern .env หรือไม่ ถ้าตรง ให้ exit code 2 เพื่อบล็อกทันที ไม่ว่าโมเดลจะพยายามแก้กี่ครั้งก็ตาม

    ความสัมพันธ์กับ permission rule

    Hook กับ permission rule ทำงานร่วมกันแบบ layer ซ้อนกัน: deny rule ยังคงมีผลเสมอ ต่อให้ PreToolUse hook จะส่งค่า "allow" กลับมาก็ตาม การ deny จาก rule จะชนะเสมอ ส่วน hook ที่ block ด้วย exit code 2 ก็จะชนะ allow rule เช่นกัน กล่าวคือ ทั้งสองระบบทำหน้าที่เป็น safety layer ที่เสริมกัน ไม่ใช่แทนที่กัน

    Hook จึงเหมาะกับงานที่ต้องการความแน่นอน 100% เช่น การป้องกันไฟล์สำคัญ, การบังคับ workflow, หรือการ integrate กับระบบ CI/CD ภายในองค์กร ในขณะที่ skill หรือ CLAUDE.md เหมาะกับการ "แนะแนวทาง" ให้โมเดลทำตามมากกว่า