บทที่ 3: สร้างคำสั่ง Skill ที่มีประสิทธิภาพ
ตอนนี้คุณมีแนวคิดเกี่ยวกับ Use Case และเกณฑ์ความสำเร็จแล้ว ถึงเวลามาดูโครงสร้างและวิธีเขียนคำสั่งกันครับ การเขียน Skill ที่ดีจะทำให้ Claude เข้าใจสิ่งที่คุณต้องการอย่างชัดเจน
บทนี้จะสอนคุณเกี่ยวกับข้อกำหนดทางเทคนิคที่จำเป็น รวมถึงวิธีเขียนส่วนต่างๆ ของ Skill อย่าง SKILL.md และ YAML frontmatter เพื่อให้ Skill ของคุณทำงานได้ราบรื่น เมื่อจบบทนี้ คุณจะสามารถเขียน Skill.md ที่พร้อมใช้งานได้เลย
ส่วนที่ 1 · โครงสร้างไฟล์ที่จำเป็น
Skill ของ Claude มีโครงสร้างไฟล์ที่เป็นระเบียบ ซึ่งจะช่วยให้ Claude เข้าใจและโหลดคำสั่งได้อย่างถูกต้อง:
your-skill-name/
├── SKILL.md # จำเป็น · ไฟล์หลักของ Skill
├── scripts/ # ไม่จำเป็น · โค้ดที่รันได้ (Python, Bash)
│ ├── process_data.py # ตัวอย่าง
│ └── validate.sh # ตัวอย่าง
├── references/ # ไม่จำเป็น · เอกสารอ้างอิง
│ ├── api-guide.md # ตัวอย่าง
│ └── examples/ # ตัวอย่าง
└── assets/ # ไม่จำเป็น · เทมเพลต, ฟอนต์, ไอคอน
└── report-template.md # ตัวอย่าง
กฎที่สำคัญมาก:
- ชื่อ SKILL.md: ต้องเป็น
SKILL.mdเป๊ะๆ (ตัวพิมพ์ใหญ่-เล็กมีผล) - ชื่อโฟลเดอร์ Skill: ใช้
kebab-caseเท่านั้น เช่นnotion-project-setup✅ ห้ามมีเว้นวรรคหรือขีดล่าง - ห้ามมี README.md: อย่าใส่
README.mdในโฟลเดอร์ Skill ของคุณ ให้ใช้SKILL.mdหรือreferences/แทน
💡 Key insight: โครงสร้างไฟล์และชื่อไฟล์ที่ถูกต้องคือพื้นฐานสำคัญที่ทำให้ Skill ของคุณทำงานได้
ส่วนที่ 2 · YAML Frontmatter: หัวใจของ Skill
YAML Frontmatter คือส่วนแรกสุดของไฟล์ SKILL.md มันคือส่วนที่ Claude ใช้ตัดสินใจว่าจะโหลด Skill ของคุณเมื่อไหร่ ส่วนนี้สำคัญมากๆ ครับ
รูปแบบที่จำเป็นขั้นต่ำ:
---
name: your-skill-name
description: Skill นี้ทำอะไร ใช้เมื่อผู้ใช้ต้องการ [คำพูดเฉพาะเจาะจง]
---
name(จำเป็น):- ใช้
kebab-caseเท่านั้น - ห้ามมีเว้นวรรคหรือตัวพิมพ์ใหญ่
- ควรตรงกับชื่อโฟลเดอร์ Skill
- ใช้
description(จำเป็น):- ต้องมีทั้ง
Skill ทำอะไรและใช้เมื่อไหร่(เงื่อนไขการทำงาน) - มีความยาวไม่เกิน 1024 ตัวอักษร
- ห้ามมีแท็ก XML (
<หรือ>) - ใส่คำพูดเฉพาะที่ผู้ใช้อาจใช้ และระบุประเภทไฟล์ถ้าเกี่ยวข้อง
- ต้องมีทั้ง
ตัวอย่าง Description ที่ดี:
description: วิเคราะห์ไฟล์ดีไซน์ Figma และสร้างเอกสารส่งมอบให้นักพัฒนา ใช้เมื่อผู้ใช้อัปโหลดไฟล์ .fig หรือขอ "สเปกดีไซน์", "เอกสารคอมโพเนนต์" หรือ "ส่งมอบดีไซน์ให้โค้ด"
ตัวอย่างจริง
สมมติคุณกำลังสร้าง Skill สำหรับจัดการงานในระบบ "ProjectHub":
---
name: projecthub-workflow
description: จัดการกระบวนการทำงานโปรเจกต์ใน ProjectHub เช่น วางแผนสปรินต์, สร้างงาน, และติดตามสถานะ ใช้เมื่อผู้ใช้พูดถึง "สปรินต์", "งาน ProjectHub", "วางแผนโปรเจกต์" หรือขอให้ "สร้างตั๋วงาน"
---
# ProjectHub Workflow Skill
## Instructions
### Step 1: Initialize Project
เรียกใช้เครื่องมือ MCP: `projecthub_api.create_project`
พารามิเตอร์: `project_name`, `team_lead`
เอาต์พุตที่คาดหวัง: โปรเจกต์ใหม่ถูกสร้างพร้อม URL
สรุป
- โครงสร้างไฟล์ Skill ต้องมี
SKILL.mdเป็นไฟล์หลัก และมีโฟลเดอร์ย่อยได้ - ชื่อ
SKILL.mdและชื่อโฟลเดอร์ Skill ต้องใช้kebab-caseอย่างเคร่งครัด - YAML Frontmatter โดยเฉพาะ
nameและdescriptionสำคัญต่อการทำงานของ Skill
ลองทำเลย: ลองสร้างโฟลเดอร์ชื่อ my-first-skill/ แล้วสร้างไฟล์ SKILL.md ข้างใน พร้อมเขียน YAML Frontmatter ที่มี name และ description ของ Skill คุณ