ตั้งค่า Claude Code ให้เป็น "เพื่อนร่วมทีม" ของโปรเจกต์
บทนี้เป็นการ สรุปรวบยอด (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 ให้เข้ากับงานเฉพาะทาง
| ส่วน | คืออะไร | ใช้เมื่อ |
|---|---|---|
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 (ทางลัดสายปฏิบัติ) เจาะลึกเรื่องเดียวกันนี้แบบเน้นลงมือ:
- FT-1 · AI ช่วยงาน Dev — ใช้ Claude Code เขียน/วางแผน/refactor ในงานจริง
- FT-2 · สร้าง Agent & Skill — ลงมือสร้าง sub-agent และ skill ของตัวเอง
- FT-3 · CLAUDE.md & .claude — เขียน CLAUDE.md และตั้งค่า .claude ให้โปรเจกต์จริง
ลำดับที่แนะนำ: อ่าน Lv6 นี้ให้เห็นภาพรวมก่อน → แล้วไป FT-3 เพื่อลงมือร่าง
CLAUDE.md ของโปรเจกต์คุณเอง → ต่อด้วย FT-2 เมื่ออยากสร้าง agent/skill
-
เปิดอ่าน
../../CLAUDE.mdของโปรเจกต์นี้ แล้วชี้ให้ได้ว่าส่วนไหนคือ "บทบาท", "โปรไฟล์ผู้ใช้", และ "กติกาไฟล์" -
ร่าง CLAUDE.md ของโปรเจกต์ตัวเอง (เช่น service NestJS หรือ Go ที่คุณดูแลอยู่)
โดยลอกโครงจากเทมเพลต
../../EN/CLAUDE.template.mdให้มีอย่างน้อย: บทบาท/น้ำเสียง, tech stack, convention การตั้งชื่อ/โครงไฟล์, และคำสั่งที่อยากให้ AI ทำบ่อยๆ -
คิด
command1 อันที่คุณอยากมีในงานจริง (เช่น/new-endpointสร้าง controller + service + test ตาม convention ทีม) แล้วเขียน frontmatter + prompt คร่าวๆ
ลองร่างในแชท ให้ครูช่วยรีวิว แล้วพิมพ์ /quiz Lv6 เพื่อทดสอบความเข้าใจ