สารบัญบทเรียนตัวอักษรเล็กลง 100% ตัวอักษรใหญ่ขึ้น โทนกระดาษ ข้างในโฟลเดอร์ .claude/ มีอะไรบ้าง ใช้เวลาประมาณ 18 นาที
.env และการเก็บ API key อย่างปลอดภัย
15 นาที
Hook คืออะไร ใช้ทำอะไรได้บ้าง
16 นาที
Subagent คือ "ผู้ช่วยเฉพาะทาง" ที่ทำงานในบริบท (context window) ของตัวเอง แยกจาก conversation หลัก เหมาะกับงานที่ต้องค้นหา/อ่านไฟล์เยอะๆ แล้วสรุปกลับมาสั้นๆ เพื่อไม่ให้ context หลักเปลืองโดยไม่จำเป็น
ไฟล์ subagent เป็น Markdown ที่มี YAML frontmatter ด้านบน วางไว้ที่ .claude/agents/ (ระดับโปรเจกต์) หรือ ~/.claude/agents/ (ระดับผู้ใช้ ใช้ได้ทุกโปรเจกต์)
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.
field ที่รองรับใน frontmatter (มีแค่ name กับ description ที่บังคับ): name, description, tools (จำกัดเครื่องมือที่ subagent ใช้ได้), disallowedTools, model (sonnet, opus, haiku, หรือ inherit), permissionMode, maxTurns
skills/ — workflow ที่ใช้ซ้ำได้ Skill คือชุดคำสั่ง/ความรู้เฉพาะทางที่ Claude จะ "โหลดมาใช้เมื่อจำเป็น" เท่านั้น (ต่างจาก CLAUDE.md ที่โหลดทุก session) เหมาะกับ workflow ที่ทำเป็นครั้งคราว เช่น ขั้นตอน deploy, การสร้างรายงานเฉพาะแบบ, การจัดการไฟล์ PDF
แต่ละ skill อยู่ในโฟลเดอร์ของตัวเองใต้ .claude/skills/ (โปรเจกต์) หรือ ~/.claude/skills/ (ผู้ใช้) ไฟล์ที่ต้องมีคือ SKILL.md เท่านั้น ไฟล์อื่นเป็นตัวเลือกเสริม:
.claude/skills/
└── deploy-checklist/
├── SKILL.md # บังคับต้องมี
├── scripts/ # สคริปต์เสริม (ถ้ามี)
└── references/ # เอกสารอ้างอิงเสริม (ถ้ามี)
---
name: deploy-checklist
description: ขั้นตอนตรวจสอบก่อน deploy ขึ้น production ใช้เมื่อผู้ใช้ขอ deploy
---
# ขั้นตอน deploy
1. รัน `npm run build` แล้วเช็คว่าไม่มี error
2. รัน `npm test`
3. ตรวจสอบ env variable บน production
...
commands/ — custom slash command ถ้าคุณมี prompt ที่ใช้ซ้ำบ่อยๆ (เช่น พิมพ์คำสั่งยาวๆ ทุกครั้งที่ขอให้ Claude เขียน commit message ตาม format เฉพาะของทีม) สามารถเก็บเป็น custom slash command ไว้ในโฟลเดอร์ .claude/commands/ เพื่อเรียกใช้สั้นๆ ผ่าน /ชื่อคำสั่ง ได้ในภายหลัง โดยไม่ต้องพิมพ์ prompt เต็มซ้ำทุกครั้ง
rules/ — กฎแยกไฟล์ตามหัวข้อ สำหรับโปรเจกต์ใหญ่ที่ CLAUDE.md เดียวเริ่มยาวเกินไป สามารถแยกกฎเป็นไฟล์ย่อยในโฟลเดอร์ .claude/rules/ แต่ละไฟล์คุมหัวข้อเดียว (เช่น testing.md, security.md) และยังกำหนดให้กฎนั้น "โหลดเฉพาะเมื่อ Claude ทำงานกับไฟล์ที่ตรง pattern" ได้ ผ่าน YAML frontmatter paths:
---
paths:
- "src/api/**/*.ts"
---
# API Development Rules
- ทุก endpoint ต้อง validate input
- ใช้ error response format มาตรฐาน
วิธีนี้ช่วยประหยัด context เพราะกฎเฉพาะทางจะไม่ถูกโหลดเข้าไปทุก session ถ้าไม่ได้เกี่ยวข้องกับไฟล์ที่กำลังทำอยู่
สรุปความแตกต่างในโฟลเดอร์เดียว จำง่ายๆ ตามคำถาม "โหลดตอนไหน":
CLAUDE.md / rules ที่ไม่มี paths → โหลดทุก session
rules ที่มี paths → โหลดเมื่อแตะไฟล์ที่ตรง pattern เท่านั้น
skills/ → โหลดเมื่อ Claude ตัดสินใจว่าเกี่ยวข้องกับ prompt หรือถูกเรียกใช้ตรงๆ
agents/ → ทำงานแยก context ต่างหาก ไม่ได้โหลดเข้า context หลัก
commands/ → ทำงานเมื่อผู้ใช้พิมพ์ /ชื่อคำสั่ง เท่านั้น
การแยกให้ถูกประเภทช่วยให้ context window ของ Claude ไม่เต็มไปด้วยข้อมูลที่ไม่จำเป็น และทำให้ทีมขยาย config ได้อย่างเป็นระบบเมื่อโปรเจกต์โตขึ้น