teach-me-ai / Lv6
⟵ กลับหน้า Roadmap
LEVEL 6 · CLAUDE CODE · CLAUDE.md · .claude

ตั้งค่า Claude Code ให้เป็น "เพื่อนร่วมทีม" ของโปรเจกต์

⏱️ ~25 นาที 🎯 เข้าใจ CLAUDE.md และโครงสร้าง .claude แล้วปรับ AI ให้เข้ากับโปรเจกต์ตัวเอง

บทนี้เป็นการ สรุปรวบยอด (teach by example) — เราจะไม่พูดลอยๆ แต่จะเปิดดู "ของจริง" ในโปรเจกต์ที่คุณกำลังเรียนอยู่นี้ เพราะ teach-me-ai เอง ก็ถูกขับด้วย CLAUDE.md และโฟลเดอร์ .claude ที่คุณจะได้เรียนต่อไปนี้

พอจบบท คุณจะ "อ่าน" การตั้งค่าของโปรเจกต์นี้ออก และร่างชุดของตัวเองสำหรับงานจริงได้

Claude Code คืออะไร

Claude Code (ผู้ช่วยเขียนโค้ดของ Claude) คือ AI ที่ทำงานอยู่ใน terminal (หน้าจอคำสั่ง) และเข้าถึงไฟล์ในโปรเจกต์ของคุณได้จริง มันไม่ใช่แค่ช่องแชตถาม-ตอบ แต่ ลงมือทำ ได้:

  • เขียน/แก้โค้ด — อ่านไฟล์จริง แก้หลายไฟล์พร้อมกัน รันเทสต์ แล้วแก้ต่อจนผ่าน
  • วางแผน (plan) — แตกงานใหญ่เป็นขั้นตอนก่อนลงมือ ให้คุณตรวจทิศทางก่อน
  • ออกแบบโครงสร้าง — เสนอ architecture, ตั้งชื่อไฟล์ตาม convention ของทีม
  • ทำงานซ้ำๆ ให้อัตโนมัติ — เขียน migration, refactor, อัปเดตเอกสาร

เทียบกับงาน dev ที่คุณถนัด: ลองนึกว่ามันเป็น junior dev ที่พิมพ์ไว มีความรู้กว้าง แต่ ไม่รู้บริบทของทีมคุณ เว้นแต่คุณจะบอก — และตรงนี้แหละคือหน้าที่ของ CLAUDE.md

CLAUDE.md คืออะไร ทำไมสำคัญ

CLAUDE.md (ไฟล์บริบทของโปรเจกต์) คือไฟล์ Markdown ที่ Claude Code อ่าน อัตโนมัติทุกครั้ง ก่อนเริ่มทำงาน มันคือ "คู่มือต้อนรับพนักงานใหม่" ของโปรเจกต์ — บอกว่าโปรเจกต์นี้คืออะไร ใช้ tech stack อะไร มี convention แบบไหน และอยากให้ AI ประพฤติตัวยังไง

ยิ่ง CLAUDE.md ชัด AI ยิ่งทำงานตรงใจ ไม่ต้องมาสั่งซ้ำทุกครั้ง เช่น "ตอบเป็นภาษาไทยนะ" หรือ "ใช้ NestJS convention แบบทีมเรานะ" — เขียนครั้งเดียว มีผลตลอด

⚠️

CLAUDE.md override (เขียนทับ) พฤติกรรมเริ่มต้นของ AI — สิ่งที่เขียนในนี้ จะมีน้ำหนักสูงมากและถูกทำตามอย่างเคร่งครัด จึงต้องเขียนอย่างตั้งใจ ชัดเจน ไม่กำกวม คำสั่งที่ขัดแย้งกันเองหรือกว้างเกินไปจะทำให้ AI สับสนหรือทำผิดทิศได้

เปิดดูของจริงในโปรเจกต์นี้

teach-me-ai ทำงานได้เพราะไฟล์ CLAUDE.md ที่ root สั่งให้ Claude รับบท "ครูสอน AI" เปิดอ่านได้เลย → ../../CLAUDE.md สังเกตว่ามันกำหนด บทบาท, โปรไฟล์ผู้เรียน, กติกาไฟล์ และ roadmap ไว้ครบ

อยากเริ่มโปรเจกต์ตัวเอง? มีเทมเพลตเปล่าให้ลอก (แบบพกพา ภาษาอังกฤษ) → ../../EN/CLAUDE.template.md และคู่แปลไทยที่โครงสร้างเหมือนกัน → ../../TH/

ส่วนใน CLAUDE.mdตอบคำถามว่าตัวอย่างในโปรเจกต์นี้
บทบาท / น้ำเสียงอยากให้ AI เป็นใคร พูดยังไง"ครูสอน AI สอนภาษาไทย ทีละขั้น"
โปรไฟล์ / บริบทใครใช้ พื้นฐานแค่ไหน"dev ถนัด TS/NestJS/Go อังกฤษอ่อน"
กติกาไฟล์อะไรวางที่ไหน ภาษาอะไรตาราง Learn/, EN/, TH/
คำสั่งที่รองรับผู้ใช้สั่งอะไรได้บ้าง/lesson, /quiz, /progress, /explain

โครงสร้าง .claude: commands / agents / skills / hooks / settings

ถ้า CLAUDE.md คือ "คู่มือ" โฟลเดอร์ .claude ก็คือ "กล่องเครื่องมือ" ที่ขยายความสามารถของ AI ให้เข้ากับงานเฉพาะทาง

📁 .claude/ 📁 commands/ — /lesson /quiz /progress /explain 📁 agents/ — ai-tutor, quiz-master (ผู้ช่วยเฉพาะทาง) 📁 skills/ — ความรู้/ขั้นตอนเชิงลึกที่ AI หยิบมาใช้ตามงาน 🪝 hooks — สคริปต์ที่รันอัตโนมัติ ก่อน/หลัง AI ทำงาน ⚙️ settings.json — สิทธิ์ (permissions), ตัวแปร, การตั้งค่า 📄 CLAUDE.md — อยู่ที่ root คู่กับ .claude (อ่านทุกครั้ง)
.claude แยกความสามารถเป็นส่วนๆ — แต่ละส่วนมีหน้าที่ชัด ทำให้ปรับแต่งได้ทีละจุด
ส่วนคืออะไรใช้เมื่อ
commands/คำสั่งลัด (slash command) ที่คุณนิยามเอง พิมพ์ /ชื่อ แล้วรัน prompt สำเร็จรูปงานที่ทำบ่อย อยากสั่งสั้นๆ
agents/ผู้ช่วยเฉพาะทาง (sub-agent) มีบทบาท/เครื่องมือ/โมเดลของตัวเองอยากแยกงานให้ผู้เชี่ยวชาญเฉพาะด้าน
skills/ความรู้และขั้นตอนเชิงลึก ที่ AI หยิบมาใช้ตามบริบทงานงานมีขั้นตอนตายตัวที่อยากให้ทำเป๊ะ
hooksสคริปต์ที่รันอัตโนมัติก่อน/หลัง AI ใช้เครื่องมือ (เช่น auto-format)อยากบังคับ format/lint ทุกครั้งที่แก้ไฟล์
settings.jsonสิทธิ์การใช้เครื่องมือ (permissions), ตัวแปรแวดล้อม, ค่าตั้งอื่นๆอยากคุมว่า AI รันคำสั่งอะไรได้บ้าง

ไม่จำเป็นต้องมีครบทุกส่วน — ใส่เฉพาะที่โปรเจกต์ต้องใช้ ตัว teach-me-ai นี้ใช้จริงแค่ commands/, agents/, hooks และ settings.json ยังไม่มี skills/ (การลงมือสร้าง skill เองอยู่ใน Fast-Track FT-2)

ยกตัวอย่างของจริงในโปรเจกต์นี้

พอจะเข้าใจภาพรวมแล้ว มาเปิดของจริงกัน — ทั้งหมดอยู่ใน ../../.claude/

1) Command: /lesson

ไฟล์ .claude/commands/lesson.md คือคำสั่งที่ทำให้พิมพ์ /lesson Lv6 แล้ว AI เริ่มสอนบทนั้นได้ทันที ตัวไฟล์เป็น Markdown ที่มี frontmatter (ส่วนหัวคั่นด้วย ---) บอก metadata แล้วตามด้วย prompt ที่จะรัน:

---
description: เริ่มหรือเรียนต่อบทเรียน AI (สอนเป็นภาษาไทย ทีละขั้น)
argument-hint: "[หัวข้อ เช่น Lv0, prompt, RAG หรือเว้นว่างเพื่อเรียนต่อ]"
---

คุณคือ **ครูสอน AI** ของโปรเจกต์นี้ (ดูบทบาทเต็มใน `CLAUDE.md`)

ผู้เรียนขอเริ่ม/เรียนต่อบทเรียน: $ARGUMENTS

ทำตามขั้นตอนนี้:
1. ถ้า `$ARGUMENTS` ว่าง → อ่าน `PROGRESS.md` หาบทที่ค้างอยู่ ...

$ARGUMENTS คือช่องที่ข้อความหลัง /lesson จะถูกแทนเข้าไป — เหมือน parameter ของฟังก์ชันที่คุณคุ้นเคย

2) Agent: ai-tutor

ไฟล์ .claude/agents/ai-tutor.md นิยาม sub-agent ที่รับบทครูสอน AI โดยเฉพาะ จุดต่างจาก command คือ agent มี frontmatter ที่กำหนด เครื่องมือ และ โมเดล ที่มันใช้ได้เองด้วย:

---
name: ai-tutor
description: ครูสอน AI สาย Applied สำหรับ Developer — ใช้เมื่อผู้เรียนต้องการเรียนเนื้อหา
tools: Read, Write, Edit, Bash, Glob, Grep
model: sonnet
---

คุณคือ **ครูสอน AI** ของโปรเจกต์ teach-me-ai ...

สังเกต model: sonnet — เลือกโมเดลกลางให้สมดุล cost/ความเก่ง ตรงกับหลักเลือกโมเดลจาก Lv0 พอดี งานที่ต้อง reasoning ลึกค่อยขยับเป็น opus

เคล็ดลับ: command เหมาะกับ "ทางลัดของ workflow ที่ทำซ้ำ" ส่วน agent เหมาะกับ "การมอบงานให้ผู้เชี่ยวชาญเฉพาะทางที่มีขอบเขต/เครื่องมือของตัวเอง" เริ่มจาก command ง่ายๆ ก่อน แล้วค่อยยกระดับเป็น agent เมื่อบทบาทเริ่มซับซ้อน

3) Hooks: ของจริงที่คอยคุมคุณภาพ

โปรเจกต์นี้ตั้ง hooks ไว้ใน .claude/settings.json โดยชี้ไปที่สคริปต์ในโฟลเดอร์ .claude/hooks/ ทำงานจริง 2 ตัว:

  • guard-file-size.js — hook แบบ PreToolUse (รันก่อน AI เขียนไฟล์): บล็อกไฟล์ที่ยาวเกิน 800 บรรทัด เพื่อบังคับให้แยกเป็นไฟล์ย่อย (exit 2 = บล็อก, 0 = ผ่าน)
  • check-lessons.sh — hook แบบ Stop (รันตอนจบ session): ตรวจว่าหน้าบทเรียนใน Learn/ มีลิงก์เสียไหม และมี .exercise กับ lesson-nav ครบ — เป็นแบบ "แจ้งเตือน" ไม่บล็อก

สังเกตว่าหน้า Lv6 ที่คุณกำลังอ่านอยู่นี้ ก็ต้องผ่าน check-lessons.sh เหมือนกัน — นี่คือ teach-by-example ของจริง: กติกาที่บทเรียนสอน ถูกบังคับด้วย hook จริงในโปรเจกต์เดียวกัน

เชื่อมกับ Fast-Track: เจาะลึกต่อได้เลย

บทนี้ให้ภาพรวมแบบ "เห็นของจริง" ถ้าอยากลงมือทำจริงจังแบบเอาไปใช้กับงาน สาย Fast-Track (ทางลัดสายปฏิบัติ) เจาะลึกเรื่องเดียวกันนี้แบบเน้นลงมือ:

💡

ลำดับที่แนะนำ: อ่าน Lv6 นี้ให้เห็นภาพรวมก่อน → แล้วไป FT-3 เพื่อลงมือร่าง CLAUDE.md ของโปรเจกต์คุณเอง → ต่อด้วย FT-2 เมื่ออยากสร้าง agent/skill

🎯 แบบฝึกหัด
  1. เปิดอ่าน ../../CLAUDE.md ของโปรเจกต์นี้ แล้วชี้ให้ได้ว่าส่วนไหนคือ "บทบาท", "โปรไฟล์ผู้ใช้", และ "กติกาไฟล์"
  2. ร่าง CLAUDE.md ของโปรเจกต์ตัวเอง (เช่น service NestJS หรือ Go ที่คุณดูแลอยู่) โดยลอกโครงจากเทมเพลต ../../EN/CLAUDE.template.md ให้มีอย่างน้อย: บทบาท/น้ำเสียง, tech stack, convention การตั้งชื่อ/โครงไฟล์, และคำสั่งที่อยากให้ AI ทำบ่อยๆ
  3. คิด command 1 อันที่คุณอยากมีในงานจริง (เช่น /new-endpoint สร้าง controller + service + test ตาม convention ทีม) แล้วเขียน frontmatter + prompt คร่าวๆ

ลองร่างในแชท ให้ครูช่วยรีวิว แล้วพิมพ์ /quiz Lv6 เพื่อทดสอบความเข้าใจ