CCA · Foundations

SKILL.md frontmatter: context fork, allowed-tools, argument-hint

แนวคิด

skill คือไฟล์ SKILL.md ที่มี YAML frontmatter คุมพฤติกรรม บวกเนื้อหา markdown ที่เป็น instruction สาม field ที่ exam guide เน้นคือ context: fork, allowed-tools, และ argument-hint

context: fork สั่งให้ skill รันใน subagent context ที่แยกออกไป เนื้อหา SKILL.md จะกลายเป็น prompt ที่ขับ subagent และมันไม่เห็นประวัติบทสนทนาหลัก ประโยชน์คือกันไม่ให้ output ที่ยาวหรือรกของ skill เช่นการวิเคราะห์ codebase หรือการ brainstorm ทางเลือก มาปนเปื้อน context หลัก เราเลือก subagent type ได้ด้วย field agent เช่น agent: Explore

argument-hint คือข้อความใบ้ตอน autocomplete ว่า skill ต้องการ argument อะไร เช่น [issue-number] หรือ [filename] [format] ช่วยเตือน developer ที่เรียก skill โดยไม่ใส่ค่า

ทำไมสำคัญ

allowed-tools เป็น field ที่ต้องเข้าใจให้แม่น เอกสารจริงระบุชัดว่ามันคือการ "pre-approve" คือให้ Claude ใช้ tool ที่ระบุได้โดยไม่ต้องขออนุญาตขณะ skill ทำงาน มันไม่ได้จำกัดว่ามี tool อะไรให้ใช้ ทุก tool ยังเรียกได้อยู่ และ permission setting ปกติยังคุม tool ที่ไม่อยู่ในรายการ ถ้าเจตนาคือ "ตัด" tool ออกจากมือ Claude ระหว่าง skill ทำงานจริง ๆ field ที่ใช้คือ disallowed-tools ต่างหาก จุดนี้ต่างจากถ้อยคำใน exam guide ที่พูดรวม ๆ ว่า allowed-tools ใช้ restrict tool access ผู้เรียนควรจำแยกว่า allowed-tools คือ "อนุญาตล่วงหน้า" ส่วน disallowed-tools คือ "ห้าม"

เรื่อง scope ก็เหมือน command คือ personal skill อยู่ ~/.claude/skills/ ใช้ได้ทุก project ส่วน project skill อยู่ .claude/skills/ เฉพาะ project นี้ ถ้าอยากปรับ skill ให้ตัวเองโดยไม่กระทบเพื่อนร่วมทีม ให้สร้าง personal variant ใน ~/.claude/skills/ โดยตั้งชื่อต่างออกไป

สุดท้าย ต้องแยกให้ออกว่าเมื่อไรใช้ skill เมื่อไรใช้ CLAUDE.md skill เป็น on-demand คือ description อยู่ใน context เสมอ แต่เนื้อหาเต็มโหลดตอนถูกเรียกเท่านั้น เหมาะกับ workflow เฉพาะงาน ส่วน CLAUDE.md เป็น always-loaded เหมาะกับมาตรฐานสากลที่ต้องมีทุก session

ตัวอย่าง

---
name: analyze-codebase
description: วิเคราะห์โครงสร้าง codebase แบบละเอียด ใช้เมื่อสำรวจ repo ใหม่
context: fork          # รันแยก subagent กัน output รก ไม่ปนเปื้อน context หลัก
agent: Explore         # เลือก subagent type แบบ read-only
argument-hint: [directory]
allowed-tools: Read Grep Glob   # pre-approve ให้ใช้ได้โดยไม่ถามสิทธิ์
---

สำรวจ $ARGUMENTS แล้วสรุปสถาปัตยกรรมพร้อมอ้างอิงไฟล์ที่เกี่ยวข้อง

เช็คความเข้าใจ

allowed-tools ทำหน้าที่จำกัด tool ที่ Claude ใช้ได้หรือไม่

context: fork มีประโยชน์อย่างไร และ skill ต่างจาก CLAUDE.md ในการโหลดอย่างไร

อ่านต่อ