Skip to content
Jetsukda's Blog
← Back to TIL

Tips ในการเขียน Claude Code Skills

อ่านบทความ Lessons from Building Claude Code: How We Use Skills ของ @Thariq ซึ่งเป็นคนที่ทำ Claude Code เลยอยากสรุป tips ที่ได้จากบทความนี้ไว้ในนี้ครับ เผื่อใครอยากเขียน skills จะได้มีแนวทางในการเขียนมากขึ้น

Tips ในการสร้าง Skills

1. Don’t State the Obvious

อย่าเขียนอะไรที่มันชัดเจนอยู่แล้วใน codebase ควรเขียน skill ให้ CC หาข้อมูลเพิ่มในการทำงานมากกว่า เพื่อให้ CC คิดนอกกรอบจากวิธีคิดแบบปกติของ CC

2. Build a Gotchas Section

Build a Gotchas Section

เป็น section ที่ไว้เขียนของที่เป็น common failure points ของ CC เวลาที่ใช้งาน skill

  • ควร update ตลอดเวลาที่เจอจุดที่ CC ผิดพลาดบ่อย
  • อันนี้เป็นอะไรที่เพิ่งรู้ คิดว่าจะเอาไปใช้กับ skill ที่เขียนไว้

3. Use the File System & Progressive Disclosure

Use the File System & Progressive Disclosure

“A skill is a folder, not just a markdown file”

เวลาที่เขียน skill ให้มองภาพเป็น file system ที่เก็บ context เพื่อช่วยให้ skill ทำงานได้ดี

  • สร้าง markdown file ย่อย เพื่อให้ SKILL.md เรียกใช้อีกที
  • ใช้ตอนที่ต้องการ context มากขึ้น โดยไม่ต้องยัดทุกอย่างไว้ใน file เดียว

4. Avoid Railroading Claude

อันนี้เป็นอะไรที่ตอนแรกคิดว่าควรทำ แต่ @Thariq แนะนำว่าอย่าทำ 5555

  • การเขียน instructions ที่ stick เกินไป จะทำให้ skill ไม่สามารถ adapt เข้ากับสถานการณ์อื่นที่นอกจากที่เขียนไว้ได้

5. Think Through the Setup

Think Through the Setup

Skill บางอย่างต้องการ context จาก user ด้วย

  • ตัวอย่าง: skill ที่ใช้เขียน standup text ควรจะใช้ config หรือ tool เพื่อให้ CC ถาม context จาก user
  • tool ที่ผมใช้จะเป็น AskUserQuestion เวลาเขียน skill

6. The Description Field Is For the Model

The Description Field Is For the Model

เขียนอธิบายเพิ่มด้วยว่าให้ skill นี้ trigger ตอนไหนบ้าง

  • เช่น user พิมพ์ว่า “review my data modeling” เพื่อให้ trigger ใช้ skill /review

7. Memory & Storing Data

Memory & Storing Data

Skill สามารถมี memory ได้โดยการเก็บข้อมูลลง file (text log, JSON, หรือแม้แต่ SQLite)

  • data ที่เก็บไว้ใน skill directory จะหายเวลา upgrade skill
  • แนวทางที่แนะนำคือใช้ ${CLAUDE_PLUGIN_DATA} ซึ่งเป็น stable folder ต่อ plugin ที่ข้อมูลจะไม่หายเวลา upgrade skill

8. Store Scripts & Generate Code

Store Scripts & Generate Code

เป็นส่วนที่ผมใช้เยอะมากในการเขียน skill เพราะช่วยให้ CC ทำงานได้ถูกต้องมากขึ้น เพราะ logic บางอย่างมันสามารถเขียนเป็น code ได้ชัดเจนกว่าให้ CC คิดเอง

  • การ bundle scripts/libraries ไว้ใน skill ทำให้ CC ใช้เวลากับ composition (ตัดสินใจว่าจะทำอะไรต่อ) แทนที่จะเสียเวลาเขียน boilerplate ใหม่ทุกครั้ง
  • ตัวอย่าง: data science skill ที่มี helper functions สำหรับดึงข้อมูลจาก event source แล้ว CC จะ generate script ต่อยอดจาก helpers เหล่านั้นได้เลย

9. On Demand Hooks

Skill สามารถมี hooks ที่ activate เฉพาะตอนที่เรียก skill และอยู่แค่ตลอด session นั้น เหมาะกับ hooks ที่ opinionated เกินไปสำหรับใช้ตลอดเวลา