⚡ ระดับสูง · บทที่ 22 · อ่าน 10 นาที
Skills, Slash Commands และ Hooks
Slash Commands: คำสั่งลัดในตัว
พิมพ์ / ใน Claude Code จะเห็นเมนูคำสั่งทั้งหมด ตัวที่ใช้บ่อย:
| คำสั่ง | ทำอะไร |
|---|---|
/init | ให้ Claude สำรวจโปรเจกต์แล้วร่าง CLAUDE.md ให้ (บทที่ 21) |
/clear | ล้างบทสนทนา เริ่มบริบทใหม่ |
/compact | บีบอัดบทสนทนายาวให้เหลือแต่สาระ — ประหยัดบริบทโดยไม่ต้องเริ่มใหม่หมด |
/memory | ดู/แก้ไฟล์ความจำทั้งหมดที่โหลดอยู่ |
/model | สลับโมเดล (หลักการเลือกเหมือนบทที่ 5) |
/hooks | เปิดหน้าจัดการ Hooks |
/mcp | ดูสถานะการเชื่อมต่อเครื่องมือภายนอก (บทที่ 23) |
/help | ดูคำสั่งทั้งหมด |
Skills: สร้างคำสั่งลัดของตัวเอง
Skill คือ “สูตรงาน” ที่เราเขียนเก็บไว้ครั้งเดียว แล้วเรียกใช้ได้ตลอดด้วย /ชื่อskill
— เหมาะกับงานที่เราพิมพ์สั่งซ้ำ ๆ ท่าเดิมทุกครั้ง
จุดต่างจาก CLAUDE.md: กฎใน CLAUDE.md ถูกอ่านทุก session (เปลืองบริบทตลอดเวลา) แต่ Skill ถูกโหลดเฉพาะตอนใช้งาน — ขั้นตอนยาว ๆ จึงควรเป็น Skill ไม่ใช่กฎใน CLAUDE.md
สร้าง Skill แรก: ตัวสรุปงานประจำวัน
ขั้นที่ 1 — สร้างโฟลเดอร์ (ในโปรเจกต์ ใช้ .claude/skills/ — ถ้าอยากใช้ได้ทุกโปรเจกต์
ใช้ ~/.claude/skills/):
mkdir -p .claude/skills/daily-summary
ขั้นที่ 2 — สร้างไฟล์ SKILL.md ในโฟลเดอร์นั้น:
---
description: สรุปงานที่ทำวันนี้จากประวัติ git ใช้เมื่อผู้ใช้ขอสรุปงานประจำวัน
---
## สิ่งที่ต้องทำ
1. ดู git log ของวันนี้ทั้งหมด
2. สรุปเป็นภาษาไทย 3-5 ข้อ ว่าวันนี้ทำอะไรไปบ้าง
3. เขียนแบบที่เอาไปส่งหัวหน้าได้เลย: ขึ้นต้นแต่ละข้อด้วยกริยา ไม่มีศัพท์เทคนิคลอย ๆ
4. ปิดท้ายด้วย "งานค้าง" ถ้าเห็นว่ามีอะไรทำครึ่ง ๆ กลาง ๆ อยู่
ขั้นที่ 3 — ใช้งาน: พิมพ์ /daily-summary ได้เลย (ชื่อคำสั่งมาจากชื่อโฟลเดอร์)
หรือแค่พิมพ์ “สรุปงานวันนี้ให้หน่อย” Claude ก็จะหยิบ skill นี้มาใช้เองเพราะอ่านจาก
description ว่าเกี่ยวข้อง
ไอเดีย Skill ที่คุ้มค่าสร้าง
/review-th— รีวิวโค้ดตาม checklist ของทีม แล้วสรุปเป็นภาษาไทย/new-post— สร้างไฟล์บทความใหม่พร้อมโครงตามมาตรฐานเว็บเรา/pre-release— ไล่เช็คลิสต์ก่อนปล่อยงาน: เทสต์ผ่าน, build ผ่าน, ไม่มีไฟล์หลงเหลือ
ช่วยสร้าง skill ใหม่ชื่อ [ชื่อ-skill] ไว้ที่ .claude/skills/ — หน้าที่ของมันคือ [อธิบายงานที่ทำซ้ำบ่อย] เขียน description ให้ดีพอที่คุณจะหยิบไปใช้เองถูกจังหวะ แล้วทดสอบเรียกใช้ให้ดูด้วย Hooks: งานอัตโนมัติที่รันเองเสมอ
Skill ต้องมีคน (หรือ Claude) เรียก แต่ Hook รันเองอัตโนมัติเมื่อถึงเหตุการณ์ที่กำหนด — และนี่คือจุดสำคัญ: กฎใน CLAUDE.md Claude “พยายามทำตาม” แต่ Hook ถูกบังคับรันเสมอ 100% เพราะเป็นกลไกของโปรแกรม ไม่ใช่คำขอร้องต่อ AI
เหตุการณ์หลักที่ดักได้:
- PreToolUse — ก่อน Claude ใช้เครื่องมือ (ดัก “ก่อนแก้ไฟล์/รันคำสั่ง” — ใช้บล็อกสิ่งต้องห้ามได้)
- PostToolUse — หลังใช้เครื่องมือเสร็จ (เช่น จัด format โค้ดทุกครั้งหลังแก้ไฟล์)
- Notification — เมื่อ Claude รอเราตอบ (เช่น เด้งแจ้งเตือนบนหน้าจอ)
- Stop — เมื่อ Claude ทำงานเสร็จ
ตัวอย่างจริง: จัดระเบียบโค้ดอัตโนมัติทุกครั้งที่ Claude แก้ไฟล์
เพิ่มลงไฟล์ตั้งค่า .claude/settings.json ของโปรเจกต์ (หรือพิมพ์ /hooks แล้วตั้งผ่านเมนู):
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}
]
}
]
}
}
แปลเป็นภาษาคน: “ทุกครั้งที่ Claude แก้หรือสร้างไฟล์ (Edit|Write) ให้รัน prettier
(เครื่องมือจัดระเบียบโค้ดยอดนิยม) กับไฟล์นั้นทันที” — ต่อให้ Claude ลืม โค้ดก็เรียบร้อยเสมอ
เลือกใช้อะไรดี: สรุปใน 3 บรรทัด
- อยากให้ Claude รู้ อะไรตลอดเวลา → CLAUDE.md (บทที่ 21)
- อยากมี สูตรงาน เรียกใช้เมื่อต้องการ → Skill
- อยากให้บางอย่าง เกิดขึ้นเสมอโดยไม่ต้องขอ → Hook
ข้อควรระวังเรื่อง Hook
Hook คือคำสั่งจริงที่รันในเครื่องเรา — ก่อน copy hook ของคนอื่นจากอินเทอร์เน็ตมาใช้ ต้องอ่านให้เข้าใจว่ามันรันอะไร (หลักเดียวกับที่ไม่รันสคริปต์แปลก ๆ ที่คนแปลกหน้าส่งมา) ถ้าอ่านไม่ออก วางให้ Claude อธิบายก่อน: “hook นี้ทำอะไร มีความเสี่ยงอะไรไหม”