ข้ามไปเนื้อหาหลัก

บทที่ 3: สร้างคำสั่ง Skill ที่มีประสิทธิภาพ

อ่าน 7 นาที

บทที่ 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 คุณ