skip to content
xiengperm logo xiengperm
Table of Contents

ใครที่ใช้ AI coding agent อย่าง Claude Code, Cursor หรือ Codex อยู่ น่าจะเคยเจออาการนี้ สั่งให้มันทำเรื่องเล็กๆ เช่น “ขอ date picker หน่อย” แล้วมันก็ใส่เกียร์เต็ม ลงไลบรารีเพิ่มหนึ่งตัว เขียน wrapper component สร้างไฟล์ stylesheet ใหม่ แถมยังเปิดประเด็นเรื่อง timezone ให้อีก ทั้งที่จริงๆ แค่ <input type="date"> ก็จบแล้ว

AI มันชอบเขียนเยอะ เพราะมันถูกฝึกมาให้ “ช่วยให้เต็มที่” แต่โค้ดที่เยอะเกินจำเป็นก็คือหนี้ที่เราต้องมานั่งอ่าน นั่งดูแล นั่งแก้บั๊กทีหลังนั่นแหละ

แล้วถ้ามีคนเอา “ลุงซีเนียร์ขี้เกียจ” มาใส่ไว้ใน AI ของเราล่ะ? คนที่เห็นโค้ดห้าสิบบรรทัด แล้วมองเฉยๆ ไม่พูดอะไร ก่อนจะลบทิ้งแล้วเขียนแทนด้วยบรรทัดเดียว นั่นแหละคือไอเดียของ Ponytail โปรเจกต์ open source ที่ช่วงนี้เห็นคนพูดถึงกันเต็มฟีดโซเชียลไปหมด เลยอดไม่ได้ที่จะไปลอง

หน้า GitHub repo ของ Ponytail แสดงยอดดาว 14.3k, สัญญาอนุญาต MIT และคำโปรยว่าทำให้ AI คิดแบบซีเนียร์ที่ขี้เกียจที่สุดในห้อง

สโลแกนของมันบอกหมดในประโยคเดียว “He says nothing. He writes one line. It works.” (เขาไม่พูดอะไร เขาเขียนบรรทัดเดียว แล้วมันก็ทำงานได้)

ส่วนหัว README ของ Ponytail เป็นรูปวาดหน้าคนผมหางม้า พร้อมสโลแกน He says nothing. He writes one line. It works. และป้ายบอกยอดดาว 14k, รุ่น v4.6.0, รองรับ 13 agent, license MIT และตัวเลขโค้ดน้อยลง 80-94%

Ponytail คืออะไร

Ponytail ไม่ใช่ตัวเขียนโค้ดเอง แต่เป็น ปลั๊กอิน/ชุดกฎ (ruleset) ที่ไปครอบพฤติกรรมของ AI agent ที่เราใช้อยู่ ให้มันยึดปรัชญาที่ชื่อว่า “lazy senior developer” ขี้เกียจแบบมือโปร โดยมีความเชื่อหลักว่า

โค้ดที่ดีที่สุด คือโค้ดที่คุณไม่เคยเขียนมันเลย

ฟังดูเหมือนคำคมในโปสเตอร์ออฟฟิศ แต่พอเอามาใช้กับ AI จริงๆ มันเปลี่ยนผลลัพธ์เยอะ เพราะ AI มักจะ over-engineer คือทำเกินโจทย์ Ponytail เลยมาเป็นเบรกให้มันหยุดคิดก่อนว่า “อันนี้จำเป็นต้องเขียนจริงไหม”

ตัวอย่าง before/after ใน README อธิบายชัดมาก ปกติขอ date picker แล้วได้ของพะรุงพะรัง แต่พอมี Ponytail มันจะใส่คอมเมนต์ <!-- ponytail: browser has one --> แล้วตอบกลับแค่ <input type="date"> เพราะเบราว์เซอร์มีให้อยู่แล้ว ไม่ต้องลงอะไรเพิ่ม

หัวใจคือ “ลำดับการตัดสินใจ”

สิ่งที่ทำให้ Ponytail ไม่ใช่แค่คำสั่งลอยๆ ว่า “เขียนให้น้อยๆ นะ” คือมันมี decision hierarchy หรือลำดับขั้นที่ AI ต้องไล่เช็กก่อนจะลงมือเขียนโค้ดทุกครั้ง โดยจะหยุดที่ขั้นแรกที่ใช้ได้เลย

บล็อกโค้ดในส่วน How it works ของ README แสดงลำดับการตัดสินใจ 6 ขั้น และประโยค Lazy not negligent

ไล่จากบนลงล่างแบบนี้

  1. อันนี้จำเป็นต้องมีไหม? → ถ้าไม่ ก็ข้ามไป (หลักการ YAGNI You Aren’t Gonna Need It ที่ Martin Fowler อธิบายไว้ว่าอย่าเพิ่งสร้างฟีเจอร์ที่ยังไม่ได้ใช้)
  2. stdlib ทำได้ไหม? → ใช้ standard library ของภาษานั้น
  3. เป็นฟีเจอร์ของแพลตฟอร์มอยู่แล้วไหม? → ใช้ของที่ platform มีให้ (เหมือนเคส <input type="date">)
  4. มีไลบรารีที่ลงไว้แล้วทำได้ไหม? → ใช้ dependency เดิมที่มีอยู่
  5. เขียนบรรทัดเดียวจบไหม? → ก็เขียนบรรทัดเดียว
  6. ถ้าเลี่ยงไม่ได้จริงๆ → ค่อยเขียน แต่ให้น้อยที่สุดเท่าที่ทำงานได้

จุดที่ผมชอบคือบรรทัดสุดท้ายของส่วนนี้ “Lazy, not negligent” (ขี้เกียจ แต่ไม่ใช่มักง่าย) เขาเขียนไว้ชัดว่าเรื่อง trust-boundary validation, การกันข้อมูลสูญหาย, ความปลอดภัย และ accessibility คือสิ่งที่ ไม่มีวันถูกตัดทิ้ง ความขี้เกียจในที่นี้คือเลี่ยงโค้ดที่ไม่จำเป็น ไม่ใช่ขี้เกียจจนข้ามเรื่องสำคัญ

มีม Roll Safe คนเอานิ้วแตะขมับทำท่าคิดเลข

เขียนโค้ดบั๊กไม่ได้ ถ้าไม่เขียนโค้ดตั้งแต่แรก

ตัวเลขที่เขาเคลม

ส่วนที่จะทำให้หลายคนสนใจคือตัวเลข เพราะโค้ดน้อยลงแปลว่า token น้อยลง ซึ่งแปลตรงๆ ว่าจ่ายค่า API ถูกลง ทาง Ponytail เคลมว่าเทียบกับ agent ที่ไม่มีสกิลนี้

  • โค้ดน้อยลง 80-94%
  • เร็วขึ้น 3-6 เท่า
  • ถูกลง 47-77%

ตัวเลขพวกนี้ไม่ได้ลอยมา เขาวัดจากงานประจำวัน 5 อย่าง email validator, debounce, รวมเลขจาก CSV, countdown timer และ rate limiter ทดสอบบนโมเดลสามตัว (Haiku, Sonnet, Opus) รันอย่างละ 10 ครั้งต่อช่อง แล้วรายงานค่า median วิธีวัดกับตัวเลขดิบเขาเปิดให้ดูได้ในโฟลเดอร์ benchmarks/ ของ repo และบอกวิธีรันซ้ำเองด้วย npx promptfoo eval

ผมยังไม่ได้ลองรัน benchmark เองนะ เลยขอเล่าตามที่เขาเคลมไว้ตรงๆ ใครอยากรู้จริงก็รันซ้ำได้ ซึ่งการที่เขาเปิด method ให้ตรวจสอบได้แบบนี้ก็ถือว่าโปร่งใสกว่าหลายโปรเจกต์ที่โยนแต่ตัวเลขสวยๆ มาให้

ใช้ได้กับ AI ตัวไหนบ้าง

อันนี้คือจุดแข็ง Ponytail ไม่ได้ผูกกับเครื่องมือเดียว มันรองรับ agent ราว 13 ตัวขึ้นไป ทั้งสายปลั๊กอินและสายไฟล์กฎ เช่น

  • Claude Code, Codex, GitHub Copilot CLI, OpenCode, Gemini CLI, Pi ติดตั้งเป็นปลั๊กอินผ่าน marketplace
  • Cursor, Windsurf, Cline, Aider, Kiro ก๊อปไฟล์กฎจาก repo ไปวาง (เช่น .cursor/rules/, .windsurf/rules/)

สำหรับ Claude Code ติดตั้งง่ายมาก พิมพ์สองคำสั่ง

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

ฝั่ง GitHub Copilot CLI ก็คล้ายกัน

copilot plugin marketplace add DietrichGebert/ponytail
copilot plugin install ponytail@ponytail

มีข้อแม้นิดนึงคือปลั๊กอินฝั่ง Claude Code กับ Codex ใช้ Node.js lifecycle hook เล็กๆ สองตัว เลยต้องมี node อยู่ใน PATH ของเครื่องด้วย ถ้าไม่มีสกิลก็ยังทำงานได้ แค่ส่วน always-on จะเงียบไปเฉยๆ ไม่ขึ้น error

โหมดและคำสั่งที่ใช้บ่อย

Ponytail ปรับความเข้มได้ ไม่ใช่เปิดแล้วบีบจนโค้ดอ่านไม่รู้เรื่อง โดยตั้งระดับได้ผ่านคำสั่ง /ponytail ตามด้วยโหมด ระดับที่ตั้งจะ ค้างไว้จนกว่าจะเปลี่ยนเองหรือจบ session

reference card ของ Ponytail ที่เปิดด้วยคำสั่ง /ponytail-help แสดงตารางระดับ lite/full/ultra, รายการสกิล และวิธีตั้งค่า default mode
  • /ponytail lite ทำตามที่สั่ง แล้วบอกทางที่ขี้เกียจกว่าให้ 1 บรรทัด
  • /ponytail full ค่าเริ่มต้น บังคับใช้ “บันได”: YAGNI → stdlib → ฟีเจอร์ native → บรรทัดเดียว → ขั้นต่ำ
  • /ponytail ultra สุดทาง ลบก่อนเพิ่ม แถมตั้งคำถามกับโจทย์ก่อนเลยว่าจำเป็นจริงไหม
  • ปิด: พิมพ์ stop ponytail / normal mode / /ponytail off แล้วเปิดใหม่ด้วย /ponytail

นอกจากโหมด ยังมีสกิลช่วยงานอีกสองตัว

คำสั่งทำอะไร
/ponytailเปิดโหมดขี้เกียจ (ตัวหลัก)
/ponytail-reviewรีวิว diff หาจุด over-engineering สรุปบรรทัดเดียวต่อจุด
/ponytail-helpเปิด reference card ดูคำสั่งทั้งหมด

เวลา AI มันเลือก “ทางลัด” ไว้ มันจะทิ้งคอมเมนต์ ponytail: ระบุในโค้ดว่าทางลัดนี้มีเพดานแค่ไหนและถ้าจะอัปเกรดต้องทำอะไร ทำให้ทางลัดที่ตั้งใจเลือกไม่หล่นหายไปเฉยๆ กลายเป็น tech debt แบบที่มองเห็นและตามเก็บได้ทีหลัง

อยากให้มันขี้เกียจตั้งแต่เปิดเครื่องเลยก็ตั้ง default ได้ ลำดับความสำคัญคือ env PONYTAIL_DEFAULT_MODE=ultra > ไฟล์ ~/.config/ponytail/config.json ({"defaultMode":"lite"}) > ถ้าไม่ตั้งอะไรเลยจะเป็น full ส่วนตอนอัปเดตปลั๊กอินก็สั่ง /plugin marketplace update ponytail แล้ว /reload-plugins จบ

เหมาะกับใคร

ถ้าคุณจ่ายค่า API ของ AI agent เองแล้วบิลเริ่มแสบ Ponytail ช่วยลด token ตรงๆ ถ้าคุณเป็นคนรีวิว PR ที่ AI generate มาแล้วเบื่อกับโค้ดรกๆ มันช่วยให้ diff สั้นลง อ่านง่ายขึ้น หรือถ้าคุณแค่อยากให้ AI ตอบโจทย์แบบตรงประเด็น ไม่ใส่ของแถมที่ไม่ได้ขอ ก็ลองได้ เพราะมันเป็น MIT license ฟรี และปิดด้วย /ponytail off เมื่อไหร่ก็ได้

ตัว repo เองก็เล่นมุกตามคอนเซ็ปต์ตัวเองด้วย สัญญาอนุญาตเขาเลือก MIT พร้อมคำอธิบายว่า “The shortest license that works” (สัญญาอนุญาตที่สั้นที่สุดเท่าที่ใช้งานได้) ขี้เกียจกันตั้งแต่เลือก license เลย

เริ่มต้นยังไง

ทั้งหมดอยู่ที่ github.com/DietrichGebert/ponytail มีคู่มือติดตั้งแยกตาม agent แต่ละตัว ตัวอย่าง before/after ในโฟลเดอร์ examples/ และ benchmark เปิดให้รันซ้ำได้ใน benchmarks/ ถ้าใช้ Claude Code อยู่แล้วก็แค่สองคำสั่งตามด้านบน ลองสั่งงานเดิมที่เคยได้โค้ดยาวๆ ดูว่ามันสั้นลงจริงไหม

ส่วนตัวผมว่าสิ่งที่น่าสนใจที่สุดของ Ponytail ไม่ใช่ตัวเลข 94% หรือปลั๊กอินหรอก แต่เป็นการที่มันหยิบเอานิสัยของ “ซีเนียร์ที่เก่งจริง” มาทำให้จับต้องได้ คนเก่งหลายคนที่ผมเคยเจอ เขาไม่ได้เขียนโค้ดเยอะ เขาเขียนน้อยแต่ตรงจุด และมักจะถามกลับว่า “อันนี้ต้องเขียนด้วยเหรอ” ก่อนเสมอ Ponytail พยายามใส่ instinct ข้อนี้ลงไปใน AI ซึ่งผมว่าเป็นทิศทางที่ถูก เพราะปัญหาของโค้ดทุกวันนี้ไม่ใช่เขียนได้น้อยไป แต่คือเขียนเยอะเกินจนดูแลไม่ไหวต่างหาก ตอนนี้ผมลองเอาไปใช้กับงานจริงแล้ว รู้สึกได้เลยว่ามันทำงานตรงตามที่สั่งขึ้นเยอะ ไม่ยัดของที่ไม่ได้สั่งมาให้ พูดน้อยต่อยหนักกว่าเดิมจริง ใครใช้ AI agent อยู่แล้วเบื่อโค้ดยาวเกินจำเป็น ผมแนะนำให้ลองคับ

// ─────

Share this post:

ก๊อปคำบรรยายแล้ว — วางในช่อง Facebook ได้เลย

Related Posts