คุณแก้ไฟล์คำสั่งของ AI ไปแล้ว เซฟแล้ว กลับมาสั่งงานใหม่ แล้วมันยังทำแบบเดิมเป๊ะ เหมือนไม่มีอะไรเปลี่ยนเลย
อาการนี้เจอกันบ่อยมาก และเกือบทุกครั้งไม่ได้แปลว่าแก้ผิด แต่แปลว่าของที่แก้ยังไปไม่ถึงตัวที่ทำงานอยู่ เพราะเครื่องไม่ได้อ่านไฟล์ที่เราแก้ตรงๆ มันอ่านสำเนาที่ก๊อปเก็บไว้ตอนติดตั้ง
เทียบให้เห็นภาพ เหมือนเราแก้ไฟล์งานในไดรฟ์ แต่อีกฝ่ายเปิดไฟล์ที่โหลดไปเก็บไว้ในเครื่องตั้งแต่อาทิตย์ก่อน เราแก้จริง เขาก็เห็นของเก่าจริง ไม่มีใครผิด แค่คนละสำเนากัน
คำว่า marketplace ทำให้เข้าใจผิดได้ง่าย มันฟังดูเหมือนร้านค้ากลางที่ใครสักคนเปิดไว้ให้เราไปเดินเลือกของ แต่จริงๆ มันคือแค่โฟลเดอร์ที่มีไฟล์รายการอยู่ข้างใน ใครก็เปิดของตัวเองได้ และมันคือวิธีที่ตรงที่สุดถ้าอยากให้เครื่องหลายเครื่องได้ของชุดเดียวกัน
บทความนี้เล่า 2 ส่วน ส่วนแรกคือโครงไฟล์ที่ต้องมี ซึ่งง่ายกว่าที่คิด ส่วนที่ 2 คือ 6 จุดที่เราเดินชนมาเองครบทุกจุด ทุกข้อมีวันที่กำกับ เพราะเป็นของที่เสียเวลาไปจริง ไม่ใช่ของที่นึกเอาว่าน่าจะพัง
ช่วงที่ 1โครงไฟล์ที่ต้องมี
marketplace ต้องการไฟล์เดียวคือ .claude-plugin/marketplace.json ข้างในบอกชื่อ เจ้าของ และรายการปลั๊กอินว่าแต่ละตัวอยู่โฟลเดอร์ไหน ของเราหน้าตาแบบนี้ ตัดมาให้ดู 2 รายการพอ
{
"name": "hello-oracle",
"owner": { "name": "..." },
"plugins": [
{ "name": "yim-tools", "source": "./plugins/yim-tools" },
{ "name": "arra-oracle", "source": "./plugins/arra-oracle" }
]
}
แล้วปลั๊กอินแต่ละตัวต้องมี .claude-plugin/plugin.json ของตัวเอง ซึ่งบอกชื่อ เลขรุ่น และรายการ skill ที่มันเปิดใช้ จำคำว่าเลขรุ่นไว้ให้ดี เดี๋ยวมันจะกลับมาเล่นงานเราเป็นข้อแรก
เพิ่มเข้าเครื่องด้วยคำสั่งเดียว ชี้ไปที่ URL หรือ path ก็ได้
claude plugin marketplace add https://github.com/<เจ้าของ>/<repo>
claude plugin install yim-tools@hello-oracle
เท่านี้จบ ส่วนที่เหลือของบทความคือเรื่องที่เกิดขึ้นหลังจากนี้ ตอนที่แก้ของแล้วอยากให้ของใหม่ไปถึงเครื่องปลายทาง
ทำไมแก้ไฟล์แล้วไม่มีอะไรเปลี่ยน
เพราะ เซฟไฟล์เสร็จ ไม่ได้แปลว่าตัวที่กำลังทำงานได้ของใหม่ ตอนติดตั้ง Claude Code จะก๊อปปลั๊กอินไปเก็บเป็นสำเนาแยกตามเลขรุ่น แล้วอ่านจากสำเนานั้น ไม่ได้อ่านจากโฟลเดอร์ที่เราแก้ พูดอีกอย่างคือ แก้ไฟล์แล้ว บันทึกเข้าที่เก็บโค้ดแล้ว ส่งขึ้นเซิร์ฟเวอร์แล้ว ของก็ยังไม่ขยับ เพราะไม่มีใครสั่งให้ก๊อปสำเนารอบใหม่
ที่ทำให้มันเจ็บกว่าปกติคือคำตอบตอนสั่งอัปเดต ถ้าเลขรุ่นใน plugin.json เท่าเดิม คำสั่งจะตอบว่า
✔ already at the latest version (1.0.1)
ประโยคนี้อ่านเหมือนสำเร็จ ไม่เหมือนถูกบล็อก เราเลยปิดหน้าต่างแล้วเดินต่อ ทั้งที่ของยังไม่ไปไหน ครั้งที่เจอ (28 ก.ค. 2026) เราแก้ไฟล์ครบ บันทึกครบ สั่งอัปเดตครบทุกอย่าง แล้วสำเนาที่เครื่องอ่านยังเป็นของเก่า
ทางแก้เป็นนิสัยข้อเดียว ขยับเลขรุ่นใน plugin.json ก่อนทุกครั้ง ถ้าไม่ขยับ อย่าคาดหวังว่าจะมีอะไรเปลี่ยน
ช่วงที่ 26 จุดที่เสียเวลาไปจริง
เรียงตามความแพงของเวลาที่เสียไป ข้อ 1 คือข้อข้างบน ยกมาไว้ในลิสต์ให้ครบชุด
- เซฟแล้วไม่เท่ากับของไปถึง ต้องขยับเลขรุ่นก่อน ไม่งั้นคำสั่งอัปเดตจะตอบว่าเป็นรุ่นล่าสุดอยู่แล้ว แล้วไม่ก๊อปอะไรใหม่ให้
- ก๊อปไฟล์เข้าโฟลเดอร์แบน แล้วไม่มีอะไรเกิดขึ้น ตัวที่เครื่องอ่านจริงคือโฟลเดอร์ที่แยกตามเลขรุ่น ถ้าเราก๊อปไฟล์เข้าโฟลเดอร์ชั้นเดียวที่ไม่มีไฟล์
plugin.jsonกำกับอยู่ เครื่องจะไม่ถือว่านั่นคือปลั๊กอิน มันเลยไม่หยิบไปใช้ เสียเวลาไปฟรีทั้งรอบ - ใช้ชื่อย่อแล้วค้าง 2 นาที ถ้าพิมพ์ที่อยู่แบบย่อ (แค่ ชื่อเจ้าของ/ชื่อโปรเจกต์) เครื่องจะเปลี่ยนไปต่อผ่านช่องทางที่ต้องยืนยันตัวตนก่อน แล้วถ้าเครื่องเรายังไม่เคยต่อกับ GitHub ทางนั้นมาก่อน มันจะขึ้นคำถามยืนยันแล้วนั่งรอคำตอบที่ไม่มีวันมา จนหมดเวลาไปเอง เราจึงเห็นแค่ว่ามันค้างโดยไม่มีสาเหตุ ⛔ อย่าแก้ด้วยการพิมพ์ยืนยันตอบมันไป เพราะการติดตั้งปลั๊กอินไม่ต้องใช้ช่องทางนั้นเลย พิมพ์ที่อยู่เว็บแบบเต็ม (ขึ้นต้นด้วย https) ก็จบ
- อาการที่ดูเหมือนของสุ่ม มักคือความต่างของเครื่อง ข้อ 3 ทำให้เราหลงทางอยู่พักหนึ่ง เพราะบนเครื่องหลักมันผ่านเฉยๆ (เครื่องนั้นเคยต่อกับ GitHub ทางนั้นไว้แล้ว) ส่วนเครื่องใหม่ค้างทุกครั้ง อ่านรวมกันแล้วเหมือน "ค้าง 2 ครั้งจาก 5" ซึ่งฟังดูเหมือนของไม่เสถียร พอทำให้มันค้างซ้ำได้ตามสั่ง มันก็เลิกเป็นของสุ่มทันที (30 ก.ค. 2026 · ยิงซ้ำ 20 รอบด้วย URL เต็มและ path = ค้าง 0 ครั้ง)
- ติดตั้งแล้วไม่ได้แปลว่าเปิดใช้ ถ้าผู้ช่วย AI ตัวนั้นถูกเปิดด้วยไฟล์ตั้งค่าของตัวมันเอง ต้องไปเขียนชื่อปลั๊กอินลงในรายการที่อนุญาตของไฟล์นั้นด้วย (ช่อง
enabledPlugins) แค่ติดตั้งไว้ในเครื่องยังไม่พอ ข้อนี้เราไม่ได้เดา เราวัดด้วยแขนควบคุม ตัวที่ระบุไว้เห็น 6 skill ส่วนตัวที่ไม่ได้ระบุเห็น 0 (3 ก.ค. 2026) - ตัวตรวจที่กว้างกว่าตัวก๊อป คือด่านที่ไม่มีวันเขียว ตัวก๊อปไฟล์ของเราสั่งให้ก๊อป "ทุกไฟล์" ด้วยเครื่องหมายดอกจัน ซึ่งไม่รวมไฟล์ที่ขึ้นต้นด้วยจุด (ไฟล์ตั้งค่าที่ปกติซ่อนอยู่) แต่ตัวตรวจที่เขียนทีหลังดันไล่เทียบทุกไฟล์ รวมไฟล์ที่ขึ้นต้นด้วยจุดด้วย มันเลยรายงานว่าของสองฝั่งไม่ตรงกันตลอดเวลา และไม่มีทางแก้ให้ตรงได้เลย เพราะตัวก๊อปไม่เคยถูกสั่งให้ย้ายไฟล์พวกนั้นมาตั้งแต่แรก
ข้อ 6 เป็นข้อที่เราชอบที่สุด เพราะมันไม่ใช่บั๊กของเครื่องมือ แต่เป็นบั๊กของการวางตัวตรวจ ด่านที่ตรวจกว้างกว่าสิ่งที่ระบบสัญญาว่าจะทำ จะส่งเสียงตลอดเวลาจนไม่มีใครฟัง
ช่วงที่ 3ตรวจยังไงว่าของถึงปลายทางแล้วจริง
ทั้ง 6 ข้อมีอาการร่วมกันอย่างหนึ่ง คือทุกคำสั่งขึ้นเขียวแล้วของไม่ถึง วิธีเดียวที่กันได้คืออย่าอ่านข้อความว่าสำเร็จ ให้ไปดูของที่ปลายทาง
เราใช้ 2 อย่างคู่กัน อย่างแรกคือถามเครื่องว่าตอนนี้เห็นรุ่นอะไร อย่างที่สองคือเปิดหาไฟล์ในแคชตรงๆ
claude plugin list
test -f <แคช>/<ปลั๊กอิน>/<เลขรุ่นใหม่>/skills/<skill>/SKILL.md
บรรทัดที่สองคือหัวใจ เพราะมันถามคำถามที่ตรง คือ ไฟล์ที่เราเพิ่งแก้ ตอนนี้อยู่ในที่ที่เครื่องอ่านจริงหรือยัง ต่างจากการอ่านข้อความตอบกลับ ซึ่งตอบแค่ว่าคำสั่งจบโดยไม่มี error
และถ้าจะให้แน่กว่านั้นอีกชั้น ลองสั่งให้มันล้มดูสักครั้ง ชี้ไปที่เลขรุ่นที่ไม่มีอยู่จริงแล้วดูว่าคำสั่งแดงไหม ถ้าชี้ผิดแล้วยังเขียว แปลว่าตัวตรวจนั้นไม่ได้ตรวจอะไรเลย
ช่วงที่ 4กฎข้อเดียวที่ต้องจำ
ถ้าจำได้อย่างเดียวจากบทความนี้ ขอให้เป็นข้อนี้ ในระบบที่มีการคัดลอก ข้อความว่าสำเร็จบอกได้แค่ว่าต้นทางไม่มีปัญหา ไม่ได้บอกว่าปลายทางได้ของ
marketplace เป็นตัวอย่างที่ชัดเพราะมันมีชั้นคัดลอกซ้อนกัน 3 ชั้น จากไฟล์ที่เราแก้ ไปที่เก็บโค้ดส่วนกลาง ไปที่สำเนาในเครื่อง แล้วค่อยถึงตัวที่ทำงานอยู่จริง ทุกชั้นตอบว่าเรียบร้อยได้โดยที่ชั้นถัดไปยังไม่ขยับ
เรื่องนี้ไม่ได้จบที่ปลั๊กอิน ที่ไหนก็ตามที่มีการก๊อปสำเนา มีการซิงก์ หรือมีการส่งของขึ้นเซิร์ฟเวอร์ ล้วนมีรูปแบบเดียวกัน นิสัยที่คุ้มที่สุดคือ ทุกครั้งที่จะบอกว่าเสร็จ ให้เปิดของที่ปลายทางดูหนึ่งครั้ง
- ประเมินปลั๊กอิน Claude Code ก่อนลง ตัวไหนคุ้มลง ตัวไหนแค่ดูดี
- รีวิว mattpocock/skills ตัวอย่างชุด skill จริงของวิศวกร และเรื่องที่ 35 ไฟล์บนดิสก์เหลือ 11 ตัวที่โมเดลหยิบเองได้
- Claude skill คืออะไร พื้นฐานก่อนเริ่มทำของตัวเอง
- แจก skill คนละชุดให้ agent แต่ละตัว ต่อยอดจากข้อ 5
- โครงไฟล์และรายการปลั๊กอิน อ่านจาก marketplace ของเราเองที่รันอยู่จริง 9 ปลั๊กอิน
- ทุกข้อมาจากบันทึกงานของเราเอง มีวันที่กำกับในเนื้อหา ไม่ได้อ้างจากความจำ (28 ก.ค. · 30 ก.ค. · 3 ก.ค. 2026)
- ตัวเลข "ยิงซ้ำ 20 รอบ ค้าง 0 ครั้ง" มาจากการทดสอบซ้ำด้วย URL เต็มและ path อย่างละ 5 รอบ ทั้งคำสั่ง add และ install
- ชื่อคำสั่งและพฤติกรรมของ Claude Code อ่านจากเอกสารทางการที่ code.claude.com/docs/en/plugins
บทความนี้เป็นหนึ่งชั้นใน สถาปัตยกรรม AI agent ระดับ production ทั้ง 7 ชั้น