เปิด AI หลาย session พร้อมกัน แล้วส่งงานข้ามกันด้วย ไฟล์ ไม่ใช่แชท
วันเดียวเปิด Claude Code สามหน้าต่าง ทำเว็บ ออกแบบเกม และทำวิดีโอ AI พร้อมกัน ส่งงานข้าม session ด้วย CLAUDE.md, memory และ git พร้อมกับดักเรื่อง worktree ที่เจอจริง
- หนึ่ง session ต่อหนึ่งโปรเจกต์ แชทเดียวทำทุกเรื่องจะช้าและปนกัน
- ส่งงานข้าม session ด้วยไฟล์ที่ commit แล้ว คือ CLAUDE.md, โน้ต memory และ git log ไม่ใช่ก๊อปข้อความจากแชท
- เขียนบรรทัดสถานะให้เสร็จก่อนเปิด session ใหม่ เพราะมันอ่านไฟล์ตอนเริ่มครั้งเดียว
- session ที่เปิดจาก task อาจทำงานใน git worktree แยก ต้องบอกคนว่าเปิดไฟล์ไหน และรวม branch กลับเอง
พอใช้ AI เขียนโค้ดจริงจัง งานจะไม่ได้มีโปรเจกต์เดียว วันหนึ่งของผมมีเว็บหลายเว็บต้องเขียนบทความ มีเกม Roblox ที่กำลังออกแบบ และมีงานวิดีโอ AI ที่เพิ่งเริ่ม ถ้ายัดทุกอย่างลงแชทเดียว ทั้งคนทั้ง AI จะช้าและสับสน บทความนี้เล่าวิธีที่ใช้อยู่ คือเปิดหลาย session พร้อมกัน หนึ่ง session ต่อหนึ่งโปรเจกต์ แล้ว ส่งงานข้ามกันด้วยไฟล์ ไม่ใช่ก๊อปข้อความจากแชท พร้อมกับดักที่เจอจริงระหว่าง 16-21 ต.ค. 2026 (Claude Code บน Windows 11)
ปัญหา: แชทเดียวทำทุกเรื่อง
AI มีพื้นที่ความจำระหว่างทำงานที่เรียกว่า context ทุกไฟล์ที่อ่าน ทุกคำสั่งที่รัน กินพื้นที่นี้ พอแชทเดียวสลับไปมาระหว่างเว็บ Astro, โค้ด Luau ของเกม และ prompt สร้างภาพ จะเกิดสามอย่าง คือ context เต็มเร็วจน AI ต้องสรุปของเก่าทิ้งและลืมที่เพิ่งคุย กฎของโปรเจกต์หนึ่งรั่วไปอีกโปรเจกต์ เช่น สไตล์เขียนบทความไปโผล่ใน README ของเกม และงานที่ควรเดินขนานกันได้ต้องมาต่อคิวในแชทเดียว
EP3 ของซีรีส์ แก้เรื่องหัวรกด้วย subagent ซึ่งดีสำหรับงานย่อย ภายใน โปรเจกต์เดียว แต่เกมกับวิดีโอไม่ใช่งานย่อยของเว็บ มันคนละเครื่องมือ คนละกฎ และต้องการให้คนเข้าไปตอบคำถามคนละจังหวะ แยก session ไปเลยสะอาดกว่า
กติกา: ส่งงานด้วยไฟล์
session แต่ละอันไม่เห็นแชทและความจำของกัน สิ่งเดียวที่ทุก session เห็นเหมือนกันคือ ไฟล์บนดิสก์ที่ commit แล้ว กติกาจึงมีข้อเดียว
อะไรที่อยากให้อีก session รู้ เขียนลงไฟล์ แล้ว commit ก่อนเปิด session นั้น
ผลพลอยได้คือคนอ่านไฟล์เดียวกันได้ ย้อนดูได้ด้วย git และ session ที่เปิดในอีกสัปดาห์ก็เริ่มจากไฟล์เดิมโดยไม่ต้องเล่าใหม่ เป็นหลักเดียวกับ EP1 เรื่อง CLAUDE.md แค่ขยายจาก “AI ตัวเดียวข้ามวัน” เป็น “AI หลายตัวในวันเดียว”
CLAUDE.md สำหรับส่งงาน ใส่อะไรบ้าง
วันที่ 21 ต.ค. session เว็บเป็นคนเปิดงานให้อีกสอง session โดยเขียน CLAUDE.md ลงโฟลเดอร์ใหม่ที่ยังว่าง commit แล้วสร้าง task ว่า “เริ่ม session ที่โฟลเดอร์นี้” ไฟล์ทั้งสองมีโครงเดียวกัน
| ส่วน | ใส่อะไร | ทำไม |
|---|---|---|
| หัวไฟล์ | ชื่อโปรเจกต์ + ประโยคเดียวว่าคืออะไร + ภาษาที่เจ้าของใช้คุย | AI รู้ทันทีว่าอยู่ที่ไหน ตอบใคร |
| โจทย์ของเจ้าของ | คำพูดจริงที่เจ้าของพิมพ์มา ยกมาทั้งก้อน | ตีความได้ แต่ต้นฉบับต้องอยู่ ไว้เทียบว่าหลุดจากที่ขอหรือยัง |
| เครื่องมือ | ชื่อ เวอร์ชัน และ path เต็ม ของเครื่องมือที่ไม่อยู่ใน PATH | session ใหม่ไม่รู้ว่าเครื่องนี้มีอะไร |
| โปรเจกต์อ้างอิง | path ของงานเก่า + บอกว่าลอกอะไร (layout, test style, น้ำเสียง README) | ได้ของ “เหมือนที่เคยทำ” โดยไม่ต้องอธิบายสไตล์ |
| กฎ | ห้ามอะไร ถามก่อนทำอะไร (เสียเงิน, เผยแพร่) | กฎที่ไม่ได้เขียน = ไม่มี |
| คำถามค้าง + ค่าเริ่มต้นที่แนะนำ | เรื่องที่ยังไม่ตัดสิน พร้อมคำตอบที่ AI เสนอ | เจ้าของตอบแค่ “ตามนั้น” หรือแก้บางข้อ |
| สถานะ | วันที่ + ทำถึงไหน + ขั้นต่อไป | บรรทัดแรกที่ session ใหม่อ่าน |
โฟลเดอร์เกม โจทย์คือเกมแคมปิ้งแบบสังคม ไม่แข่งขัน ขั้นแรกคือทำเอกสารออกแบบให้เจ้าของอนุมัติก่อนเขียนโค้ด ไฟล์บอก path ของ rojo.exe และ lune.exe ให้ลอกโครงจาก repo เกมก่อนหน้า บอกกฎว่า server ตัดสินทุกอย่าง และมีคำถามค้าง 5 ข้อ เช่น ทำเป็นตัวอย่างสาธารณะหรือเกมจริง ผู้เล่นเป็นเพื่อนหรือคนแปลกหน้า อะไรปลดล็อกลานใหม่ ส่วนโฟลเดอร์วิดีโอ โจทย์คือละครสั้นแนวตั้งและคลิปสินค้า ไฟล์ชี้ไปที่เครื่องมือ TTS และสร้างภาพที่มีอยู่แล้วบนเครื่องอื่น กฎข้อแรกคือ “ถามก่อนทุกคำสั่งที่กินเครดิต บอกราคาก่อน”
ทั้งสองไฟล์ไม่มีโค้ดสักบรรทัด ไฟล์ส่งงานบอก บริบทและขอบเขต การลงมือเป็นหน้าที่ของ session ใหม่
memory กับ CLAUDE.md กับ git
พอมีหลายโปรเจกต์ จะมีข้อมูลที่ไม่รู้จะเก็บไว้ไหน เช่น เจ้าของทำงานกี่โมง หรือเว็บไหนดูจาก session ไหน ของพวกนี้เป็นเรื่องของคน ไม่ใช่ของโค้ด และจะไปซ้ำอยู่ทุก repo Claude Code มีโฟลเดอร์ memory แยกต่อโปรเจกต์ไว้นอก repo สำหรับเรื่องแบบนี้ ผมใช้ไฟล์ดัชนีหนึ่งไฟล์ บรรทัดละโน้ต แล้วแยกโน้ตเป็นไฟล์ละเรื่อง แต่ละโน้ตมีสามส่วน คือข้อเท็จจริง ทำไม และเอาไปใช้ยังไง
| อยากให้รู้ว่า | เก็บที่ | เพราะ |
|---|---|---|
| โปรเจกต์นี้ build/deploy ยังไง ห้ามแตะอะไร | CLAUDE.md ใน repo | ผูกกับโค้ด ทุกคนที่ clone ต้องเห็น |
| เครื่องมืออยู่ path ไหน บน เครื่องนี้ | CLAUDE.md ถ้าเครื่องเดียว หรือ memory ถ้าต่างกันต่อเครื่อง | path ของเครื่องหนึ่งไม่มีค่ากับอีกเครื่อง |
| เจ้าของทำงานกี่โมง ขัดจังหวะเรื่องไหนได้ | memory | เรื่องของคน และห้ามขึ้น GitHub |
| เว็บ A กับ B ดูจาก session นี้ เว็บ C มี session ของตัวเอง | memory | เป็นการแบ่งงาน ไม่ใช่ความจริงของโค้ด |
| ทำอะไรไปแล้ว เมื่อไหร่ ทำไม | git log | commit message ที่ดีคือบันทึกส่งงานที่ถูกที่สุด |
| สถานะล่าสุด ขั้นต่อไป | บรรทัด Status ใน CLAUDE.md | session ใหม่อ่านตรงนี้ก่อน |
git สำคัญกว่าที่คิด ปลายสัปดาห์ session เว็บเขียนบทความเรื่องเกมโดยอ่าน git log ของ repo เกม ว่า commit ไหนเพิ่มด่าน commit ไหนเพิ่ม test สอง session ที่ไม่เคยเห็นแชทของกัน คุยกันผ่านประวัติ git ได้ ถ้า commit message เขียนดี
กับดัก: worktree ที่คนไม่รู้
เรื่องนี้เสียเวลาที่สุดในสัปดาห์นั้น session ที่เปิดจาก task ไม่ได้ทำงานในโฟลเดอร์เดิมเสมอ มันอาจเปิดใน git worktree คือสำเนาของ repo บน branch ใหม่ อยู่อีกโฟลเดอร์หนึ่ง ข้อดีคือหลาย session แก้โค้ดพร้อมกันได้โดยไม่ชน ข้อเสียคือคนไม่รู้
session เกม build ไฟล์ place ใหม่แล้วบอกว่าเสร็จ แต่ไฟล์ที่ผมเปิดค้างไว้ใน Roblox Studio ไม่เปลี่ยนเลย เพราะไฟล์ที่ build อยู่ในโฟลเดอร์ worktree ไม่ใช่โฟลเดอร์ที่ Studio เปิด กว่าจะรู้ก็กดเล่นไปหลายรอบ
บทเรียนสองข้อ หนึ่ง การส่งงานต้องบอก path ที่คนต้องเปิด ไม่ใช่ “build เสร็จแล้ว” แต่ “เปิดไฟล์ <path เต็ม> ใน Studio” สอง รวม branch ของ worktree กลับ main ด้วยความตั้งใจ เช็คได้ในโฟลเดอร์ repo (Git Bash บน Windows)
git worktree list # มีสำเนาอยู่ที่ไหนบ้าง branch อะไร
git branch --no-merged # branch ไหนยังไม่รวมเข้ามา
เห็น worktree ที่ไม่รู้จัก ให้ถาม session นั้นว่าทำอะไรไว้ แล้ว merge หรือทิ้งเอง
กับดักที่สอง: โน้ตที่เขียนทีหลัง
session อ่าน CLAUDE.md ตอนเริ่ม ไม่ได้อ่านใหม่ทุกข้อความ ผมแก้บรรทัดสถานะ หลัง เปิด session ใหม่ไปแล้ว มันจึงทำต่อจากสถานะเก่า จนต้องพิมพ์ว่า “อ่าน CLAUDE.md ใหม่” ซึ่งทำได้ แต่ขัดกับเป้าหมาย
เขียนไฟล์ส่งงานให้เสร็จ commit แล้วค่อยเปิด session ไม่ใช่กลับกัน
วันที่มีสาม session
- เช้า session เว็บ (โฟลเดอร์
6amdev-web) รับโจทย์เกมแคมปิ้งเป็นคำพูดสองสามบรรทัด สร้างroblox-campเขียนCLAUDE.mdตามตาราง ใส่คำถามค้าง 5 ข้อ commit แล้วเสนอ task “เริ่ม session ที่นี่” - ต่อมา ทำแบบเดียวกันกับ
ai-studioต่างกันที่ชี้ไปหาเครื่องมือเดิมที่ใช้ซ้ำได้ และกฎเรื่องเครดิต - บ่าย สามหน้าต่างเปิดพร้อมกัน เว็บเขียนบทความ เกมเสนอเอกสารออกแบบและถามคำถามค้าง วิดีโอร่างบทและ character sheet แบบไม่เสียเงินเพราะเครื่องที่มี API key ปิดอยู่ ผมสลับไปตอบแต่ละหน้าต่างตามจังหวะของมัน
- เย็น เจอเรื่อง worktree แก้โดยใส่ path เต็มใน Status แล้ว merge
- วันเดียวกัน session เว็บเขียนโน้ต memory เรื่องชั่วโมงทำงานของผม ให้ session หลังจากนี้รู้ว่าช่วงไหนทำต่อได้เอง ช่วงไหนควรรอ
ไม่มี session ไหนอ่านแชทของอีกอัน ทุกอย่างข้ามกันด้วย CLAUDE.md, memory และ git
ข้อผิดพลาดที่เจอบ่อย
- ก๊อปข้อความจากแชทไปวางอีกแชท ใช้ได้ครั้งเดียว session ที่สามไม่เห็น
- CLAUDE.md ยาวเป็นคู่มือทั้งเล่ม AI อ่านทั้งไฟล์ทุกครั้ง เรื่องสำคัญจมหาย เก็บหน้าเดียวถึงสองหน้า รายละเอียดไปอยู่ใน
docs/ - ลืม path เต็ม “ใช้ rojo” ไม่พอถ้าไม่อยู่ใน PATH session ใหม่จะไปโหลดเวอร์ชันอื่นมา
- เอาข้อมูลส่วนตัวใส่ repo ชั่วโมงทำงาน เบอร์ติดต่อ IP เครื่องในบ้าน ไว้ใน memory
- บอก “เสร็จ” โดยไม่บอกว่าดูที่ไหน โดยเฉพาะเมื่อทำงานใน worktree
ลองใน 10 นาที
- สร้างโฟลเดอร์ของงานที่กำลังจะเริ่ม แล้ว
git init - เขียน
CLAUDE.mdตามตาราง 7 ส่วน ส่วนละไม่กี่บรรทัด ยกคำพูดโจทย์ของตัวเองมาทั้งก้อน - ใส่คำถามค้าง 3 ข้อ พร้อมค่าเริ่มต้นที่คุณยอมรับได้
- ปิดท้ายด้วย
## Statusวันนี้ + “ยังไม่มีโค้ด ขั้นต่อไปคือ …” git add -A && git commit -m "handoff: project brief"ก่อน- เปิด session ในโฟลเดอร์นั้น ข้อความแรก “อ่าน CLAUDE.md แล้วถามคำถามค้างทีเดียว”
- รัน
git worktree listดูว่ามันทำงานอยู่โฟลเดอร์ไหน แล้วจดใน Status
ถ้า session ใหม่เริ่มงานได้โดยคุณไม่ต้องอธิบายเพิ่มเกินสองประโยค ไฟล์ส่งงานนั้นใช้ได้แล้ว
คำถามที่พบบ่อย
ทำไมไม่ใช้ subagent แทนการเปิดหลาย session
subagent เหมาะกับงานย่อยในโปรเจกต์เดียวแล้วส่งผลกลับหัวหลัก แต่เกมกับวิดีโอเป็นคนละโปรเจกต์ มีเครื่องมือและกฎคนละชุด และต้องคุยกับคนคนละจังหวะ แยก session จึงสะอาดกว่า
CLAUDE.md กับโน้ต memory ต่างกันตรงไหน
CLAUDE.md อยู่ใน repo ทุก session ที่เปิดโฟลเดอร์นั้นเห็น ส่วน memory อยู่นอก repo ผูกกับเครื่องและคน เก็บเรื่องของเจ้าของที่ไม่ควรไปอยู่ในโค้ด เช่น ชั่วโมงทำงาน หรือโปรเจกต์ไหนดูจากที่ไหน
ต้องเป็น Claude Code เท่านั้นไหม
ไม่ หลักคือ "ส่งงานด้วยไฟล์ที่อยู่ใน git" เครื่องมือ AI เขียนโค้ดตัวอื่นที่อ่านไฟล์คู่มือโปรเจกต์ได้ ใช้วิธีเดียวกันได้หมด
คำสั่งและค่าตั้งในบทความทดสอบบนระบบตัวอย่าง ลองบนเครื่องทดสอบก่อนใช้กับระบบจริงเสมอ