AI และเอเจนต์17 นาทีในการอ่าน

ปลั๊กอิน Claude Code: แคตตาล็อกทางการรับโค้ดเฉพาะจาก Verified

ตั้งแต่พฤศจิกายน แคตตาล็อกปลั๊กอินทางการของ Claude Code รับสคริปต์และฮุกเฉพาะจาก Verified กฎนี้มีอะไรที่รู้แล้วบ้าง และติดตั้งปลั๊กอินจาก GitHub อย่างไร

ปลั๊กอิน Claude Code: แคตตาล็อกทางการรับโค้ดเฉพาะจาก Verified
สารบัญ

วันที่ 7 พฤศจิกายน 2569 ราวตีหนึ่งตามเวลากรุงเทพฯ แคตตาล็อกปลั๊กอินทางการของ Claude และ Claude Code ปฏิเสธเวอร์ชันใหม่ของ IT Reelsmaker ปลั๊กอินตัดต่อวิดีโอแนวตั้งของผม เหตุผลที่แจ้งมาไม่ใช่บั๊กในโค้ด แต่เป็นเพราะในปลั๊กอินมีโค้ดอยู่ ตอนนี้ไฟล์ที่ไม่ใช่ Markdown ไฟล์ข้อความ JSON YAML และรูปภาพ แคตตาล็อกรับเฉพาะจากองค์กรที่ได้สถานะ Verified สคริปต์ก็เช่นกัน ใครจะได้สถานะนี้ Anthropic ตัดสินเอง และตามที่พอร์ทัลนักพัฒนาเขียนไว้ ตอนนี้ยังขอสถานะไม่ได้: “there’s no way to ask to become one yet”

สำหรับปลั๊กอินที่ตัดวิดีโอ ใส่ซับไตเติล และเรนเดอร์กราฟิกบนเครื่องของผู้ใช้ เรื่องนี้แปลว่าอย่างเดียว: ตราบใดที่กฎนี้ยังมีผล เราออกเวอร์ชันใหม่ผ่านแคตตาล็อกไม่ได้ ด้านล่างคือเรื่องที่ว่าเรามาถึงจุดนี้ได้อย่างไร ตอนนี้รู้อะไรเกี่ยวกับกฎนี้บ้าง และถ้าปลั๊กอินของคุณมีโค้ดเหมือนกันควรทำอย่างไร ผมแยกข้อเท็จจริงกับข้อสรุปของเราออกจากกันชัดเจน เพราะ Anthropic ไม่ได้ประกาศทั้งเหตุผลของกฎและกรอบเวลา

แคตตาล็อกห้ามอะไรกันแน่

คำปฏิเสธมาพร้อมโค้ด LOCAL_CODE_FILE_TYPE พอร์ทัลขอให้เอาไฟล์ทุกไฟล์ที่ไม่ใช่ Markdown ไม่ใช่ไฟล์ข้อความ ไม่ใช่ JSON ไม่ใช่ YAML และไม่ใช่รูปภาพ PNG, JPEG, GIF, WebP หรือ ICO ออก นอกจากนี้ไฟล์ที่ขึ้นต้นด้วย #! จะถูกปฏิเสธแยกอีกข้อ บรรทัดนี้คือสิ่งที่สคริปต์ใช้บอกระบบว่าต้องรันด้วยอะไร นามสกุลไฟล์จึงช่วยอะไรไม่ได้ ไลเซนส์ README .gitignore และไอคอนเก็บไว้ได้

IT Reelsmaker มี 109 ไฟล์ และ 71 ไฟล์ในนั้นเป็นโค้ด: สคริปต์ Python 39 ไฟล์ (ถอดเสียง ตัดช่วงหยุดและเทคซ้ำ งานเสียง) และไฟล์ TypeScript 32 ไฟล์ในชุดสำหรับ Remotion ที่ใช้วาดกราฟิก ถ้าไม่มีไฟล์เหล่านี้ ปลั๊กอินก็เหลือแค่คู่มือที่ไม่มีเครื่องมือ คำปฏิเสธไม่เกี่ยวกับคอมมิตล่าสุด ในเวอร์ชัน 1.22.3 เราแค่แยกไฟล์ใหญ่ไฟล์เดียวออกเป็นโมดูล กฎนี้ไม่ดูว่าโค้ดทำอะไร ถ้าผู้เขียนไม่มี Verified แคตตาล็อกก็ไม่รับไฟล์โค้ดใด ๆ ทั้งนั้น

Verified คืออะไร พอร์ทัลอธิบายไว้ประโยคเดียว: Anthropic รู้ว่าองค์กรของคุณเป็นบริษัทที่มีตัวตนจริง แล้วก็บอกต่อทันทีว่านี่เป็นเรื่องว่าคุณเป็นใคร ไม่ใช่การตรวจปลั๊กอินของคุณ

หนึ่งเดือนเพื่อผลตรวจสีเขียว

จะเข้าใจว่าคำปฏิเสธนี้ทำให้เราเสียอะไรไปบ้าง ต้องดูไทม์ไลน์ก่อน IT Reelsmaker เริ่มต้นเมื่อ 18 กันยายน เป็นสกิลส่วนตัวในโฟลเดอร์งานของผม 2 ตุลาคม เราเปิดรีโพเป็นสาธารณะและส่งปลั๊กอินเข้าแคตตาล็อก 6 ตุลาคม รีวิวเวอร์ของ Anthropic เผยแพร่เวอร์ชัน 1.6.1 รายละเอียดของตัวปลั๊กอินเราเขียนไว้ในอีกบทความหนึ่ง 7 ตุลาคม เราขอเผยแพร่ 1.7.1 และคำขอนี้ค้างอยู่ที่รีวิวเวอร์มาจนถึงทุกวันนี้ ระหว่างที่มันค้าง พอร์ทัลไม่ยอมให้ขอเผยแพร่เวอร์ชันอื่น ปุ่ม “Publish update” กดไม่ได้ และไม่มีทางยกเลิกคำขอ แคตตาล็อกไม่มีการเผยแพร่อัตโนมัติ ไม่มีเวอร์ชันไหนออกได้ถ้าไม่ผ่านรีวิวเวอร์ของ Anthropic

หลัง 1.6.1 มี 19 เวอร์ชันที่ผ่านการตรวจอัตโนมัติ ไล่ไปจนถึง 1.22.2 แต่ไม่มีสักเวอร์ชันที่ไปถึงผู้ใช้แคตตาล็อก เวลาส่วนใหญ่ช่วงนั้นเราหมดไปกับการเก็บกวาดปลั๊กอินให้ผ่านสแกนเนอร์ มันส่งปลั๊กอินไปตรวจแบบแมนนวลพร้อมหมายเหตุ “Uses a credential from the user’s machine” ทุกครั้งที่เจอทั้งการอ่านการตั้งค่าและการส่งข้อมูลในปลั๊กอิน ดูเหมือนมันจะเห็นว่านี่คือการส่งคีย์ออกไป มันเรียกร้องให้อธิบายรูปภาพที่ไฟล์ข้อความแค่เอ่ยชื่อถึง มันสะดุ้งกับคำเดี่ยว ๆ อย่าง export, set, env, ws, host และเราต้องเปลี่ยนชื่อพวกนี้กันเป็นสิบ ๆ จุด: export กลายเป็น stage, set กลายเป็น change

เราไม่หลบเลี่ยงสแกนเนอร์ เป็นเรื่องหลักการ ไม่มีการต่อสตริงแบบ "ex" + "port" มีแต่การแก้แบบตรงไปตรงมา ที่หลังแก้แล้วโค้ดยังทำงานเหมือนเดิม แต่สแกนเนอร์ไม่เจออะไรให้จับผิดอีก พอถึงเวอร์ชัน 1.22.0–1.22.2 ผลตรวจขึ้น “Validation passed” และคำเตือนเป็นศูนย์ และค่ำวันที่ 6 พฤศจิกายน 1.22.2 ก็ได้ป้าย “Meets directory policy” ถึงตอนนั้นเรามีคอมมิตไปแล้ว 144 คอมมิต รีลีส 37 ครั้ง และเทสต์อัตโนมัติ 577 ตัวบน Windows, macOS และ Linux

ตอนนั้นกฎใหม่เริ่มโผล่ให้เห็นแล้ว 7 พฤศจิกายน ราว 00:50 ตอนที่เรากดตรวจ branch เอง ผลตรวจแสดงกฎนี้เป็นหมายเหตุ “This isn’t refused yet” คือยังไม่ใช่คำปฏิเสธ ราวตีหนึ่ง การตรวจตามรอบหลัง merge ก็ปฏิเสธ 1.22.3

ผู้ใช้แคตตาล็อกเหลืออะไรอยู่ในมือ

ตัวเลขจากพอร์ทัล ณ 5 พฤศจิกายน: ติดตั้ง 12,793 ครั้ง บัญชีที่ใช้งานใน 28 วัน 4,301 บัญชี ใช้งาน 8,736 ครั้งใน 30 วัน อันดับที่ 89 ในแคตตาล็อก บัญชีใหม่ 52.6% กลับมาใช้ปลั๊กอินภายในสี่สัปดาห์ ข้อผิดพลาดในการโหลด 0% จากการโหลด 1.9 ล้านครั้ง เกือบสองในสามของการติดตั้งมาจาก Claude.ai (65.8%) ที่เหลือแบ่งกันพอ ๆ กันระหว่าง Claude Code (17.2%) กับ Cowork (17%)

แคตตาล็อกแจกเวอร์ชัน 1.6.1 จากวันที่ 6 ตุลาคมให้คนทั้งหมดนี้ ตั้งแต่ 4 พฤศจิกายน พอร์ทัลติดป้ายเวอร์ชันนี้ว่า “no longer meets directory policy” ตามกฎเรื่อง credential ข้อเดียวกับที่เราแก้ไปแล้วใน 1.22.0 แล้วก็เขียนต่อทันทีว่ายังแจกเวอร์ชันนี้ต่อไป ในเวอร์ชันนี้ยังมีบั๊กน่ารำคาญหลงอยู่: บน Windows การเรนเดอร์แต่ละครั้งทิ้งสำเนาโปรเจกต์ Remotion ไว้ในโฟลเดอร์ชั่วคราวและไม่ลบ ตัดต่อหนัก ๆ หนึ่งเดือน สำเนาพวกนี้อาจกินพื้นที่หลายสิบกิกะไบต์ เราแก้ไปแล้วใน 1.16.0 แต่การแก้นี้ไปไม่ถึงผู้ใช้แคตตาล็อก

ภาพที่ได้ออกมาจึงแปลก ๆ เวอร์ชันเก่ายังอยู่ในแคตตาล็อกพร้อมป้ายว่าไม่ตรงนโยบาย เวอร์ชัน 1.22.2 ผ่านการตรวจทุกด่านเมื่อค่ำวันที่ 6 พฤศจิกายน แต่ก็ยังไม่ถูกเผยแพร่ ส่วนเวอร์ชันถัดไปแคตตาล็อกก็ปฏิเสธไปแล้ว

ปลั๊กอินของเราอีกสองตัวก็โดนกฎเดียวกัน

ปลายเดือนตุลาคม เราส่งปลั๊กอินเข้าแคตตาล็อกอีกสองตัว: holographic-memory หน่วยความจำบนเครื่องที่ Claude Code กับ Codex ใช้ร่วมกัน และ agent-dreaming ที่ตรวจทานหน่วยความจำนั้นทุกคืน รายละเอียดอยู่ในอีกบทความหนึ่ง ทั้งสองตัวยังไม่เคยขึ้นแคตตาล็อกเลย

agent-dreaming เป็นกรณีที่เห็นภาพชัดที่สุด เพราะในนั้นไม่มีโค้ดเลย เวอร์ชันที่ส่งไปมีแค่สี่ไฟล์: manifest ไอคอน สกิลที่เขียนด้วย Markdown และ hooks.json ที่มีฮุกสองตัวทำงานตอนเริ่มเซสชัน ตัวแรกเตือนเอเจนต์ว่ามีคำถามเรื่องหน่วยความจำรอให้ตรวจกี่ข้อ ตัวที่สองรันรอบตรวจกลางคืนของโปรแกรม dreamem อยู่เบื้องหลัง ซึ่งต้องติดตั้งแยก เวอร์ชันจนถึง 0.7.0 ได้โค้ด REACH_UNKNOWN: คำอธิบายสกิลเป็น YAML ที่ไม่ valid เพราะมีโคลอนอยู่กลางสตริง Claude Code ยอมให้ผ่าน แต่แคตตาล็อกไม่ยอม 5 พฤศจิกายน 0.7.1 ที่แก้แล้ว ตามด้วย 0.7.2 ผ่านการตรวจอัตโนมัติโดยไม่มีคำเตือนและเข้าคิวรอรีวิวเวอร์ วันเดียวกันนั้น 0.7.2 ได้หมายเหตุว่า ต่อไปฮุกแบบคำสั่ง (command) จะรับเฉพาะจากองค์กร Verified และเวอร์ชันที่ถึงตอนนั้นยังไม่ออกจะถูกประเมินใหม่ ราว 6 พฤศจิกายน มันถูกปฏิเสธตามกฎใหม่ โดยไม่มีการสแกนใหม่ เวอร์ชันที่ผ่านการตรวจตามกฎเดิมกลายเป็นเวอร์ชันที่ไม่ผ่าน ระหว่างที่รอรีวิวเวอร์อยู่

ทางเลือกมีสองทาง: ย้ายฮุกไปไว้ในตัวโปรแกรม ให้มันเขียนฮุกลงในการตั้งค่าของ Claude Code ตอนติดตั้ง หรือเอาฮุกออกไปเลย ทางแรกถูกมองว่าเป็นการหลบกฎได้ง่าย 7 พฤศจิกายน เราจึงเลือกทางที่สอง ตอนนี้ปลั๊กอินเหลือสามไฟล์: manifest ไอคอน และสกิล ไม่มีโค้ด ไม่มีฮุก รอบตรวจกลางคืนรันด้วยงานประจำวันของระบบปฏิบัติการ ซึ่งติดตั้งด้วยคำสั่ง dreamem install claude-code บน Windows คือ Task Scheduler ที่ตามรันรอบที่พลาดไปหลังเครื่องตื่นจากโหมดสลีป บน macOS และ Linux คำสั่งจะให้ไฟล์สำเร็จรูปสำหรับ launchd หรือ systemd การเตือนเรื่องคำถามตอนเริ่มเซสชันไม่มีแล้ว สกิล /agent-dreaming:dream ทำงานเหมือนเดิม และถ้ารอบตรวจกลางคืนไม่ได้รันมานาน มันจะเสนอให้ติดตั้งงานนี้ แต่ต้องรอให้คนตอบ “ใช่” ก่อน ส่วน Codex และ Antigravity ยังมีฮุกอยู่: โปรแกรมเขียนฮุกลงในการตั้งค่าของเอเจนต์เหล่านี้ และกฎของแคตตาล็อก Claude ไม่ครอบคลุมถึง

เวอร์ชัน 0.8.0 ที่ไม่มีฮุกผ่านทั้งการตรวจอัตโนมัติและการตรวจนโยบายโดยไม่มีคำเตือน แล้วคำขอก็ไปอยู่ที่รีวิวเวอร์อีกครั้ง ตอนนี้ยังไม่มีเวอร์ชันไหนเผยแพร่อยู่ในแคตตาล็อก ระหว่างทางสแกนเนอร์ยังสะดุดอีกรอบ: ในสกิลเวอร์ชันแรก ข้อความกำกับ pass starts from: ข้างลิงก์ไปเอกสาร ถูกมองว่าเป็นการอ่านรหัสผ่าน พอเปลี่ยนเป็น nightly run: การตรวจก็ผ่านแบบสะอาด

ส่วน holographic-memory ทุกเวอร์ชันตั้งแต่ 0.9.0 ถึง 0.11.0 ถูกส่งไปตรวจแบบแมนนวล ถ้าไม่มีโค้ด ปลั๊กอินนี้ทำให้หน่วยความจำทำงานเองไม่ได้ ข้อเท็จจริงเก็บอยู่ในฐานข้อมูล SQLite บนเครื่อง ฮุกตัวหนึ่งใส่ข้อเท็จจริงที่เกี่ยวข้องเข้าไปในบทสนทนาก่อนทุกข้อความ ตัวที่สองทำแบบเดียวกันตอนเริ่มเซสชัน ส่วนเซิร์ฟเวอร์ MCP บนเครื่อง ซึ่งเป็นโปรแกรมที่เอเจนต์ใช้เข้าถึงหน่วยความจำ ให้เครื่องมือแก่เอเจนต์ 23 ตัว เอนจินคือไฟล์ Python 37 ไฟล์ ข้าง ๆ มีไฟล์เทสต์ 89 ไฟล์และพจนานุกรมสำหรับ 18 ภาษา

5 พฤศจิกายน ช่วงบ่าย พอร์ทัลแสดงหมายเหตุ “This isn’t refused yet” สองข้อที่ 0.11.0 คือเรื่องฮุกแบบคำสั่งและเซิร์ฟเวอร์ MCP บนเครื่อง แล้ว 6 พฤศจิกายน ทั้งสองข้อก็กลายเป็นคำปฏิเสธ พอร์ทัลบอกเพิ่มว่าเปลี่ยนประเภทฮุกก็ไม่ช่วย ส่วนเซิร์ฟเวอร์ MCP จะเก็บไว้ได้ก็ต่อเมื่อ Claude Code เชื่อมต่อผ่านที่อยู่สาธารณะเท่านั้น ซึ่งไม่เหมาะกับหน่วยความจำที่ออกแบบมาให้อยู่บนเครื่องของผู้ใช้ กฎเรื่องไฟล์โค้ดยังไม่ทันมาถึง 0.11.0 เพราะมันถูกสแกนเมื่อ 5 พฤศจิกายน เวอร์ชันถัดไปน่าจะโดนปฏิเสธเพราะ Python ด้วย แต่นี่คือข้อสรุปของเรา ไม่ใช่คำตอบจากพอร์ทัล

สิ่งที่สแกนเนอร์เจอใน holographic-memory แสดงให้เห็นชัดว่ามันอ่านอย่างไร ในนั้นมีไฟล์เทสต์ของตัวกรองความลับ และสัญญาณหลอกอีกตัว “Uses a credential from the user’s machine” ก็เกิดจากคำภาษาเยอรมัน “Pass” ในพจนานุกรมบวกกับที่อยู่ในโฟลเดอร์ปลั๊กอิน ในการทดลองของเรา แค่ 127.0.0.1 บนเครื่องก็พอแล้ว เราจะไม่พรางพจนานุกรมและเทสต์ให้หลบสแกนเนอร์ เรื่องนี้ตัดสินใจแล้ว สิ่งที่ยังคุยกันอยู่คืออีกทางหนึ่ง: เก็บปลั๊กอินตัวเต็มไว้ใน marketplace ของเราบน GitHub แล้วส่งฉบับอ้างอิงที่ไม่มีโค้ดและไม่ติดตั้งอะไรเองเข้าแคตตาล็อก เรื่องนี้ก็ยังไม่ได้ตัดสินใจ และก่อนจะส่งฉบับแบบนี้ เราอยากถาม Anthropic ก่อนว่าทำแบบนี้ได้ไหม

เราไม่ได้เจออยู่คนเดียว

ผมไม่เจอการพูดถึงเรื่องนี้บน Reddit และ Hacker News แต่บน GitHub ภาพรวมต่อกันได้เร็ว 6 พฤศจิกายน ในรีโพปลั๊กอินทางการของ Anthropic คือ claude-plugins-official มี issue #7024 โผล่ขึ้นมา ผู้เขียนปลั๊กอิน ThreadPage เล่าว่าตั้งแต่ราว 5 พฤศจิกายน แคตตาล็อกปฏิเสธฮุกแบบคำสั่งและเซิร์ฟเวอร์ MCP บนเครื่องจากองค์กรที่ไม่มี Verified เอกสารไม่ได้พูดถึงกฎนี้ และไม่มีที่ให้ยื่นขอสถานะ เขาบอกว่าภายในสัปดาห์เดียว โปรเจกต์อื่นก็ชนกฎเดียวกัน และเอาฮุกที่เป็นหัวใจของปลั๊กอินออกไปแล้ว

วันเดียวกันมีอีกสามคนมาคอมเมนต์ใต้ issue นี้ Desktop Steward โดนปฏิเสธเซิร์ฟเวอร์ MCP บนเครื่อง ทั้งที่คอนเนกเตอร์แบบรีโมตของผู้เขียนคนเดียวกันได้รับอนุมัติและอยู่ในแคตตาล็อกแล้ว ผู้เขียน Mycelium บอกว่าปลั๊กอินของเขาประกอบด้วยฮุกแบบคำสั่งเป็นหลัก เอาออกไม่ได้ และเขาก็หาไม่เจอว่าโปรเจกต์ที่ทำคนเดียวจะเป็น Verified ได้อย่างไร แฟนม็อด Cozy Clawd ถูกปฏิเสธด้วยข้อความ “Mods accepted only from Verified organizations” ผู้เขียนบอกว่าสำหรับพวกเขาเรื่องนี้ไม่รีบ เพราะติดตั้งม็อดจาก marketplace ของตัวเองได้ ณ 7 พฤศจิกายน ยังไม่มีคำตอบจาก Anthropic ใน issue

7 พฤศจิกายน ผู้เขียน AgenticSeal โดนปฏิเสธ ทีเดียวสามกฎจากตระกูลเดียวกัน: LOCAL_CODE_BIN คือไฟล์ในโฟลเดอร์ bin/, LOCAL_CODE_FILE_TYPE คือโค้ดเดียวกับที่เราโดน และ LOCAL_CODE_FRONTMATTER_KEY คือคีย์ใน frontmatter ของสกิลและเอเจนต์ที่อยู่นอกรายการที่อนุญาต ซึ่งพอร์ทัลไม่แสดงให้ดู ในที่เดียวกันเขายังไล่รายชื่อผู้เขียนอีกสามคนที่ได้สามโค้ดนี้เมื่อวันก่อน ตอนนี้แต่ละคนกำลังออกปลั๊กอินฉบับที่สองสำหรับแคตตาล็อก ที่มีแต่ Markdown

บางคนก็ปรับโครงสร้างไว้ล่วงหน้า ใน ai-software-factory เปลี่ยนคำสั่งในฮุกเป็นการตรวจด้วยพรอมต์ ส่วนใน pyvar เหลือไว้ใน frontmatter ของสกิลแค่ name กับ description

ถ้าเอาข้อความของผู้เขียนแต่ละคนมารวมกัน ข้อจำกัดครอบคลุมฮุกแบบคำสั่ง เซิร์ฟเวอร์ MCP บนเครื่อง ม็อด โฟลเดอร์ bin/ คีย์ใน frontmatter และสุดท้ายคือไฟล์โค้ดทุกชนิด ตอนแรกพอร์ทัลแสดงเป็นคำเตือน “ยังไม่ใช่คำปฏิเสธ” แล้วตั้งแต่ราว 5–7 พฤศจิกายน ผู้เขียนก็เริ่มได้รับคำปฏิเสธจริง

ทางการพูดว่าอะไร

แทบไม่มีอะไรเลย ในหน้าการเผยแพร่ในแคตตาล็อก และเช็กลิสต์ก่อนส่ง รวมถึงในนโยบายแคตตาล็อก ไม่มีกฎ “โค้ดเฉพาะจาก Verified” ตรงกันข้าม เช็กลิสต์ยังตั้งต้นจากว่าปลั๊กอินมีโค้ดได้: ขอให้ใส่ซอร์สที่คนอ่านออก ไม่ใช่โค้ดที่ถูกย่อ (minified) และส่งสิ่งที่สแกนเนอร์อ่านไม่ได้ไปให้รีวิวเวอร์ แม้แต่รายการประเภทไฟล์ก็ไม่ตรงกัน: ตามเช็กลิสต์ ไฟล์ .ico ต้องไปตรวจแบบแมนนวล แต่ในคำปฏิเสธแบบใหม่ ICO อยู่ในรายการที่อนุญาต

เรื่องตัวสถานะ เอกสารบอกว่าไม่มีการยื่นขอ Verified แยกต่างหาก Anthropic เป็นคนตัดสินระหว่างรีวิว สถานะนี้มีคำอธิบายไว้เฉพาะสำหรับคอนเนกเตอร์ MCP และตรงนั้นก็เขียนชัดว่า Verified ไม่ใช่การตรวจสอบความปลอดภัย (security audit) ในหน้าเหล่านี้เราไม่เจอประกาศกฎใหม่ วันที่เปลี่ยนนโยบาย หรือกำหนดว่าจะเปิดให้ยื่นขอเมื่อไร ที่อยู่ติดต่อทีมแคตตาล็อกที่มีอยู่ที่เดียวในเอกสารคือ directory@anthropic.com

ข้อสรุปของเรา ไม่ใช่ข้อเท็จจริง

ต่อจากนี้คือสิ่งที่เราคิด ไม่ใช่สิ่งที่ Anthropic ประกาศ

ตรรกะของกฎนี้พอเข้าใจได้ ปลั๊กอินที่มีโค้ดจะรันโค้ดนั้นบนเครื่องของผู้ใช้ ภายในเซสชัน Claude ของเขา สแกนเนอร์อ่านโค้ดแบบนี้ก็จริง แต่ตลอดหนึ่งเดือนเราเห็นชัดว่ามันอ่านหยาบแค่ไหน: มันจับคำ ไม่ใช่เจตนา ตรวจผู้เขียนง่ายกว่าตรวจทุกบรรทัด ถ้าเบื้องหลังปลั๊กอินเป็นบริษัทที่มีชื่อเสียง บริษัทนั้นก็มีอะไรต้องเสีย Anthropic อาจคิดแบบเดียวกัน แต่เหตุผลอย่างเป็นทางการยังไม่มีใครบอก

ที่น่าเจ็บใจคืออีกเรื่อง กฎนี้โผล่มาโดยไม่มีประกาศในเอกสาร และไม่มีช่องทางไปสู่สถานะ Verified: ยื่นขอไม่ได้ รู้เกณฑ์ไม่ได้ แม้แต่ยกเลิกคำขอเผยแพร่ที่ค้างอยู่ก็ทำไม่ได้ สำหรับบริษัทที่มีทีมกฎหมาย นี่คือความไม่สะดวก สำหรับนักพัฒนาที่ทำคนเดียว นี่คือประตูที่ปิดตาย ถ้ากฎนี้ยังอยู่ ผู้เขียนที่ไม่มี Verified ก็คงต้องเก็บแค่เวอร์ชันแบบเบาไว้ในแคตตาล็อก คือคำแนะนำและสกิลที่ไม่มีสคริปต์ ฮุก และเซิร์ฟเวอร์บนเครื่อง ส่วนทุกอย่างที่ทำงานบนเครื่องของผู้ใช้ก็ต้องแจกนอกแคตตาล็อก

Verified จะเปิดให้เมื่อไร หรือจะเปิดหรือเปล่า ยังไม่มีใครรู้

สิ่งที่เราทำ

7 พฤศจิกายน ผมเขียนไปที่ directory@anthropic.com เราขอสองอย่าง: อธิบายว่าจะเป็น Verified ได้อย่างไร และเข้าคิวรอล่วงหน้าได้ไหม และอย่างน้อยให้เผยแพร่ 1.22.2 แทนคำขอ 1.7.1 ที่ค้างมาเป็นเดือน แบบนั้นทุกคนที่ใช้ปลั๊กอินอยู่แล้วจะได้เวอร์ชันที่เก็บกวาดไฟล์ชั่วคราวของตัวเอง และผ่านนโยบายแคตตาล็อกมาตั้งแต่ก่อนมีกฎใหม่ ตอนนี้ยังไม่มีคำตอบ

เรื่องแคตตาล็อกเราไม่ได้เริ่มจากศูนย์: ในแคตตาล็อกของ Hermes Agent มีปลั๊กอินของเราสี่ตัว ได้แก่ hermes-cron, hermes-dreaming, hermes-field-notes และ holographic ที่นั่นการเผยแพร่ทำผ่าน pull request แบบเปิดในรีโพของ Hermes: เห็นได้ว่าใครรับและรับเมื่อไร

วิธีติดตั้งปลั๊กอิน Claude Code จาก GitHub

ปลั๊กอินที่ไม่มีในแคตตาล็อก หรือค้างอยู่ที่การรีวิว ติดตั้งจาก marketplace ของผู้เขียนบน GitHub ได้ มันคือรีโพธรรมดาที่ Claude Code เชื่อมต่อได้ด้วยคำสั่งเดียว: เพิ่ม marketplace ก่อน แล้วค่อยติดตั้งปลั๊กอินจากในนั้นตามชื่อ IT Reelsmaker เวอร์ชันล่าสุดก็ติดตั้งแบบนี้ ใน marketplace ของเรามันจะขึ้นในวันที่ออกรีลีส:

claude plugin marketplace add https://github.com/itpartypattaya/reels-montage.git
claude plugin install it-reelsmaker@itparty

ถ้าคุณติดตั้งปลั๊กอินจากแคตตาล็อก Claude และตัดต่อบน Windows เวอร์ชันจาก marketplace ยิ่งสำคัญ: ในนั้นแก้เรื่องโฟลเดอร์ชั่วคราวที่ไม่อย่างนั้นจะบวมขึ้นทุกครั้งที่เรนเดอร์ และอย่าลืมว่าการติดตั้งจาก marketplace ของคนอื่นก็คือการรันโค้ดของคนอื่น เพียงแต่ไม่มีการตรวจของแคตตาล็อก: ติดตั้งปลั๊กอินจากผู้เขียนที่คุณไว้ใจ และเข้าไปดูรีโพก่อนเชื่อมต่อ

ผู้เขียนปลั๊กอินที่มีโค้ดควรทำอย่างไร

เปิดแท็บ Versions ในพอร์ทัลนักพัฒนา ถ้าการตรวจล่าสุดมีหมายเหตุ “This isn’t refused yet” เวอร์ชันถัดไปน่าจะโดนปฏิเสธ

ต่อจากนั้นมีแต่ทางประนีประนอม แยกปลั๊กอินเป็นสองฉบับได้: ฉบับสำหรับแคตตาล็อกเป็นสกิลที่เขียนด้วย Markdown ส่วนฉบับเต็มอยู่ใน marketplace ของตัวเอง ผู้เขียนในกระทู้ของ AgenticSeal ทำแบบนี้กันแล้ว จะเก็บเวอร์ชันเก่าไว้ในแคตตาล็อก แล้วแจกอัปเดตผ่าน marketplace ของตัวเองก็ได้ อย่างที่เราทำอยู่ตอนนี้ จะเขียนส่วนที่ทำได้ใหม่ให้เป็นพรอมต์ก็ได้ แบบที่ ai-software-factory เปลี่ยนฮุกเป็นการตรวจด้วยพรอมต์ และควรเขียนไปที่ directory@anthropic.com ด้วย เพราะในเอกสารไม่มีช่องทางอื่นที่ติดต่อทีมแคตตาล็อกได้

ทำอย่างไรให้ปลั๊กอินผ่านการตรวจเป็นสีเขียว

หนึ่งเดือนกับสแกนเนอร์ทิ้งวิธีทำงานที่ใช้ได้จริงไว้ให้เรา ระหว่างที่กฎยังมีผล มันจะมีประโยชน์กับองค์กร Verified ที่ยังเก็บโค้ดไว้ในปลั๊กอิน และกับคนที่เตรียมฉบับไม่มีโค้ดสำหรับแคตตาล็อก เพราะสแกนเนอร์อ่าน Markdown ด้วย มีสองเรื่องที่ต้องรู้ไว้ วิธีเหล่านี้แก้คำปฏิเสธตามกฎ Verified ไม่ได้ และผลตรวจสีเขียวก็ยังไม่ใช่การเผยแพร่ คนที่ปล่อยเวอร์ชันยังคงเป็นรีวิวเวอร์

ตรวจ branch โดยไม่ต้องส่งอะไร ในพอร์ทัลนักพัฒนามีฟอร์ม “Submit new” ส่วน “Plugin bundle” ซึ่งมีช่องรีโพ พาธไปปลั๊กอิน และ branch พร้อมปุ่ม “Validate” มันรันการตรวจเจ็ดรายการชุดเดียวกับการส่งจริง แต่ไม่ส่งอะไรออกไป วงจรทำงานง่าย ๆ: แก้ไข push ขึ้น branch ชั่วคราว กด “Validate” แล้วเทียบกับรายงานครั้งก่อน ระบุ branch ชั่วคราวในฟอร์มนี้เท่านั้น เพราะช่อง “Tracked branch or tag” ในการตั้งค่าของปลั๊กอินที่เผยแพร่แล้วเป็นตัวกำหนดว่าแคตตาล็อกจะดึงเวอร์ชันใหม่จากไหน ถ้าชื่อ branch มี / กรอกสามช่องแยกกันจะชัวร์กว่าวางลิงก์ และเช็กด้วยว่ารายงานเป็นของคอมมิตที่ต้องการ: ในรายงานจะมีบรรทัดแบบ branch @ sha

สแกนเนอร์จับคำ ไม่ใช่พฤติกรรม การตรวจแบบแมนนวลที่ดื้อที่สุดคือ “Uses a credential from the user’s machine” โค้ด MCP_FORWARDS_CREDENTIAL_ENV มันจะขึ้นเมื่อในปลั๊กอินมีทั้งสิ่งที่สแกนเนอร์คิดว่าเป็นการอ่านความลับ และสิ่งที่มันคิดว่าเป็นการส่งข้อมูลออก แม้จะอยู่คนละไฟล์และไม่เกี่ยวข้องกันเลยก็ตาม ในการตรวจของเรา แค่กำจัดสิ่งที่เจออย่างใดอย่างหนึ่งก็พอ หา “การอ่าน” ปลอมง่ายกว่า เพราะลิงก์ในเอกสารและเมธอดเครือข่ายเอาออกจากโปรเจกต์ไม่ได้ เราไม่เจอกรณีที่รีวิวเวอร์ปลดการตรวจนี้เอง ทั้งของเราและของผู้เขียนคนอื่น

สิ่งที่สแกนเนอร์มองว่าเป็นการอ่านความลับ ได้แก่ การเรียกตัวแปรสภาพแวดล้อม (os.environ, getenv, process.env) คำอย่าง credential, secret, password, access token, private key และ .env แม้จะอยู่ในคอมเมนต์หรือ CHANGELOG และวลีใน Markdown ที่คำทริกเกอร์อยู่ติดหน้าโค้ดพอดี: “pass text” เราเขียนใหม่เป็น “give text” ทริกเกอร์ในโค้ดที่เรายืนยันได้แน่นอนด้วยวิธีแบ่งครึ่งมีตัวเดียว คือสตริง "export" ที่เป็นชื่อคำสั่ง ส่วนที่สแกนเนอร์มองว่าเป็นการส่งข้อมูล ได้แก่ ลิงก์ คำว่า host และตัวย่อ ws: ที่คล้ายที่อยู่ websocket สิ่งที่เจออื่น ๆ เราอนุมานจากการที่รายงานเลื่อนไปชี้ไฟล์ถัดไป เป็นสัญญาณที่หนักแน่น แต่ก็ยังเป็นหลักฐานทางอ้อม

พอร์ทัลบอกแค่ไฟล์แรกที่เข้าเงื่อนไข ของเราเรียงตามพาธ: CHANGELOG.md, PRIVACY.md, README.md แล้วค่อย skills/… ข้างในเรียงตามตัวอักษร แก้ไปหนึ่งไฟล์ ไฟล์ถัดไปก็โผล่ นี่ไม่ใช่ปัญหาใหม่ แต่เป็นคิว ถ้าไฟล์ที่มาก่อนไม่ถูกเอ่ยถึง แปลว่าในรอบนี้สแกนเนอร์ไม่เจอทริกเกอร์ของการตรวจนี้ในไฟล์นั้น ถ้าแก้ทีละจุดแล้วไม่ช่วย วิธีแบ่งครึ่งจะช่วยได้: ใน branch ทดลอง เอาไฟล์ที่น่าสงสัยออกทั้งไฟล์ หรือเปลี่ยนบรรทัดเดียว แล้วกด “Validate” อีกครั้ง ต้องแบ่งเป็นก้อนเต็ม ๆ: ไฟล์ที่โค้ด Python ถูกตัดขาดกลางทาง สแกนเนอร์ดูเหมือนจะไม่แยกวิเคราะห์ และให้ผล “สะอาด” ปลอม ๆ

เช็กว่าข้อความพูดถึงรูปภาพตรงไหน รูปภาพและฟอนต์สแกนเนอร์จะข้ามไป ไม่อ่านเป็นโค้ด แต่ของเราเคยขึ้นการตรวจแบบแมนนวล “Image or font file that the plugin’s code could run” (UNREAD_ASSET_REFERENCED) สองครั้ง: สิ่งที่ “เอ่ยชื่อ” ไอคอนคือมาสก์ "@remotion/*" ในสตริงของสคริปต์วินิจฉัย และพาธไปไอคอนใน CHANGELOG ย้ายไอคอนไปโฟลเดอร์อื่นก็ไม่ช่วย เพราะมาสก์ก็ยังตรงกับมันอยู่ จะไม่ใส่รูปภาพในโฟลเดอร์ปลั๊กอินเลยก็ได้ แล้วจะเหลือแค่คำเตือน “No icon”

ข้อมูลหน้าแคตตาล็อกถูกล็อกตอนส่ง ลิงก์ไปเอกสาร ฝ่ายซัพพอร์ต นโยบายความเป็นส่วนตัว และข้อกำหนดการใช้งาน แคตตาล็อกดึงไปตอนส่งครั้งแรก และเวอร์ชันใหม่ไม่ได้อัปเดตสิ่งเหล่านี้ ที่ซิงก์มีแค่ชื่อกับคำอธิบายสั้น เพราะฉะนั้นคำเตือน “Unrecognized field” ของช่องเหล่านี้ใน plugin.json แก้ได้ด้วยการลบช่องทิ้ง หน้าแคตตาล็อกที่ใช้งานอยู่จะยังเก็บลิงก์ไว้ ถ้าส่งใหม่จะต้องกรอกอีกครั้ง ไอคอนจากไฟล์ แคตตาล็อกก็ดึงแค่ตอนบันทึกหรือส่งครั้งแรก ปลั๊กอินที่เผยแพร่แล้วเปลี่ยนไอคอนได้ที่แท็บ Listing ด้วยปุ่ม “Replace”

ก่อนออกรีลีส เรามีลำดับขั้นตอนที่ใช้เป็นประจำ linter ของรีลีสและ claude plugin validate --strict ไม่มี error เทสต์และ CI เขียวทุกระบบ branch ของรีลีสถูกตรวจในฟอร์ม “Submit new” ก่อน merge ใน plugin.json เพิ่ม version ขึ้น ไม่อย่างนั้นจะไม่มีใครเห็นอัปเดต และ CHANGELOG เขียนโดยไม่มีคำทริกเกอร์และพาธไปรูปภาพของตัวเอง จากนั้น merge เข้า branch ที่ถูกติดตาม กดปุ่ม “Check for new commits” แล้วรอสแกนในแท็บ “Versions” ซึ่งใช้เวลาเป็นนาที ไม่ใช่วินาที เพื่อไม่ให้ทริกเกอร์กลับมาอีก ทุกแพตเทิร์นที่เจอ เราตั้งเป็นกฎใน linter ของรีลีสของเราเอง และอย่าลืมว่าสแกนเนอร์เปลี่ยนไปเรื่อย ๆ: ทั้งหมดนี้อธิบายพฤติกรรมของมันตอนต้นเดือนพฤศจิกายน 2569

เราเคยอธิบายแยกไว้ว่าจะส่งปลั๊กอินอย่างไร และพอร์ทัลตรวจอะไรบ้าง

แหล่งข้อมูล

  1. anthropics/claude-plugins-official #7024: องค์กรจะเป็น Verified ได้อย่างไร
  2. MichaelYcJo/AgenticSeal #1420: แคตตาล็อกปฏิเสธด้วยกฎ LOCAL_CODE สามข้อ
  3. Anthropic: การเผยแพร่ในแคตตาล็อก
  4. Anthropic: เช็กลิสต์ก่อนส่งปลั๊กอิน
  5. Anthropic: นโยบายแคตตาล็อก
  6. Anthropic: Verified ของคอนเนกเตอร์หมายถึงอะไร
  7. seifsg/ai-software-factory #295: เปลี่ยนฮุกเป็นการตรวจด้วยพรอมต์
  8. fibtecltd/pyvar #415: ในสกิลเหลือแค่ name และ description
  9. IT Reelsmaker: รีโพและ marketplace บน GitHub
คนกันเองอยู่ใกล้ ๆถามคนกันเอง แชทตอบเร็วกว่าค้นหาเองแชทหลักของไอที ปาร์ตี้ พัทยา: คนสาย IT สายดิจิทัล และผู้ประกอบการ ที่เคยผ่านเรื่องเดียวกันมาแล้ว เริ่มตั้งแต่กรกฎาคม 2566 แชทใช้ภาษารัสเซีย ชาวต่างชาติและคนไทยเข้ามาได้เสมอเข้าแชท (ภาษารัสเซีย)

อ่านเรื่องที่เกี่ยวข้อง

  • HackerTube: Claude สร้างแคตตาล็อกวิดีโอแทนฟีด YouTube ได้ยังไง

    AI และเอเจนต์7 นาทีในการอ่าน

    HackerTube: Claude สร้างแคตตาล็อกวิดีโอแทนฟีด YouTube ได้ยังไง

    HackerTube เปลี่ยนวิธีหาวิดีโอบน YouTube: คัดจากคำแนะนำใน Hacker News โดยมี Claude ช่วย พร้อมข้อมูลเปิด ควรลองอะไร และมีข้อจำกัดอะไรบ้าง

  • หน่วยความจำสำหรับ Claude Code และ Codex: holographic-memory และ agent-dreaming

    AI และเอเจนต์11 นาทีในการอ่าน

    หน่วยความจำสำหรับ Claude Code และ Codex: holographic-memory และ agent-dreaming

    holographic และ dreaming ไม่ได้มีแค่ใน Hermes แล้ว: หน่วยความจำในเครื่องที่ Claude Code กับ Codex ใช้ร่วมกัน ตรวจข้อเท็จจริงทุกคืน วิธีติดตั้ง และย้ายสิ่งที่เอเจนต์จำไว้แล้วมาด้วย

  • GPT ใน Claude Code: เปลี่ยนโมเดลผ่านพร็อกซี CCR

    AI และเอเจนต์16 นาทีในการอ่าน

    GPT ใน Claude Code: เปลี่ยนโมเดลผ่านพร็อกซี CCR

    วิธีเชื่อม GPT เข้ากับ Claude Code ผ่าน CCR บน Windows และ macOS ตั้งค่าเทอร์มินัลและ Claude Desktop แพ็กเกจ ChatGPT การเรียก Codex CLI การตรวจสอบ และการย้อนกลับ