[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80717":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},80717,"kien-thai","chakrit\u002Fkien-thai","chakrit","สอน เไ ให้เขียนภาษาไทย",null,"Python",45,4,44,0,1,3,2.1,"MIT License",false,"main",true,[],"2026-06-12 02:04:05","# เขียนไทย\n\n**skill สอน Claude เขียนภาษาไทยให้คนไทยอ่านสบาย**\n\n> ภาษาไทยที่ AI สร้างมีกลิ่น\n\nคนไทยอ่านแล้วต้องย้อนอ่านใหม่ บางครั้งก็เลิกอ่านไปเลย ปัญหานี้ไม่ได้เกิดจากความรู้\nภาษาของ AI แต่เกิดจาก training data ที่เอนไปทางภาษาราชการและการแปลตรงตัวจากภาษา\nอังกฤษ ผลคือประโยคยาว ๆ ต่อกันด้วย \"ซึ่ง\" กับ \"โดย\" ลงท้ายครับ\u002Fค่ะ ทุกประโยค\nขึ้นต้นด้วย \"ในยุคปัจจุบัน\" ทุกบทความ\n\nrepo นี้รวบรวมกฎการเขียนภาษาไทยที่กลั่นจากนักเขียน blog สาย dev จริง บทความ explainer\nของธนาคารใหญ่ คอลัมนิสต์รุ่นใหม่ และนักแปลหนังสือสำนักพิมพ์รสนิยมดี ขึ้นรูปเป็น skill\nสำหรับ Claude\n\nปลายทาง: ภาษาไทยที่อ่านลื่น มีน้ำเสียง และเลือกระดับได้ถูกบริบท\n\n## เหมาะกับใคร\n\n- developer ที่ใช้ AI เขียน technical doc \u002F README \u002F changelog ภาษาไทย\n- ทีม content marketing ที่ต้องผลิตงานภาษาไทยเร็วและสม่ำเสมอ\n- ใครก็ตามที่เคยเจอ output ภาษาไทยจาก AI แล้วตะหงิดใจ\n\n## เริ่มใช้ยังไง\n\nskill อยู่ที่ `skills\u002Fkien-thai\u002F` ให้ copy ทั้ง folder ไปไว้ใน `.claude\u002Fskills\u002F`\nของ project ที่ต้องการ หรือ import ผ่านระบบ skill management ที่คุณใช้อยู่\n\n(ตัวอย่าง: ใน [ACE](https:\u002F\u002Fgithub.com\u002Face-rs\u002Face) ใช้ `ace import skills\u002Fkien-thai`\nจาก clone ของ repo นี้)\n\n## ใช้แบบ audit loop\n\nวิธีใช้ skill ที่ได้ผลที่สุดคือ audit loop ให้ Claude ตรวจงานเขียนเทียบกฎทีละรอบ\ntrace ก่อนแก้ทุกจุด วนใหม่จนกว่าจะไม่เจออะไรเพิ่ม (รายละเอียดในส่วน\n\"วินัยการเพิ่มกฎ\")\n\nตัวอย่าง prompt ที่ใช้ได้เลย:\n\n```\nแก้ไฟล์นี้โดยอ้างอิงกับสกิล kien-thai แก้ไปเรื่อยๆ แก้เสร็จวนตรวจทานซ้ำใหม่\nวนอ่านตรวจสอบแล้วแก้ไปเรื่อยๆ อย่าหยุดจนกว่าจะไม่เจอจุดผิดพลาดใดๆ ให้แก้อีก\n```\n\nหรือใช้ skill `kode-thai` (โคตรไทย) ที่เก็บคำสั่งนี้ไว้ให้แล้ว เรียกผ่าน\n`\u002Fkode-thai` หรือบอกเป็นภาษาไทยว่า \"ตรวจวนๆ จนกว่าจะหมดที่ผิด\" ก็ได้\n\nระวัง audit loop กิน token หนัก skill มี SKILL.md + 7 reference รวมหลายหมื่น token\nถ้าตรวจงานเขียนยาว ๆ หลายรอบ ค่าใช้จ่ายบวมเร็ว เตรียมงบ context ไว้ให้พอ\n(harness scope register ก่อนยิง เพื่อตัดส่วนที่ไม่ใช้ออก เหลือประมาณครึ่งหนึ่ง)\n\n## หลักคิดของ skill\n\nskill นี้ไม่ได้เป็นแค่ checklist ของคำต้องห้าม แกนกลางคือ **กรอบการเรียบเรียง 7\nข้อ** ที่อธิบายว่าภาษาไทยจัดอนุประโยค จัดประโยค จัดย่อหน้า ต่างจากภาษาอังกฤษยังไง\nพอกรอบถูก กฎปลีกย่อยส่วนใหญ่ก็ตามมาเอง\n\n1. **ยกประเด็นนำหน้า ไม่ใช่ประธานนำหน้า** — ภาษาไทยยกสิ่งที่ประโยคพูดถึงขึ้นก่อน\n   ไม่ลากประธานหนัก ๆ มาวางหน้าเหมือนภาษาอังกฤษ\n2. **เงื่อนไข เวลา กรอบ มาก่อน** — ข้อมูล setup วางหน้าประโยคหลัก ไม่ใช่ห้อย\n   ท้ายด้วย \"เมื่อ...\" แบบภาษาอังกฤษ\n3. **เว้นวรรค + ขึ้นย่อหน้าแทนมหัพภาค** — ภาษาไทยไม่ลงจุดทุกประโยคแบบภาษาอังกฤษ\n   ขอบเขตประโยคใช้ space กับการขึ้นย่อหน้า\n4. **ปิดประโยคด้วยคำลงท้าย** — ด้วย แล้ว เลย ไป ไม่ใช่จุด ไม่ใช่ \"ทั้งนี้\" ลอย ๆ\n5. **เชื่อมประโยคด้วยการละประธาน + คำชี้เฉพาะ** — ละประธานที่รู้แล้ว ไม่ใช่\n   ลาก \"ซึ่ง\" ต่อกันสามชั้น\n6. **ใช้ \"ก็\" คุมจังหวะ** — คำเสริมที่ภาษาอังกฤษไม่มี ใช้คุมจังหวะประโยคและบ่ง\n   ความสัมพันธ์หลวม ๆ ระหว่างอนุประโยค\n7. **เปลี่ยนหัวข้อด้วยคำถามเชิงวาทศิลป์** — ขยับหัวข้อย่อยด้วย \"แล้วถ้า...\"\n   แทนการใช้ \"อย่างไรก็ตาม\" \u002F \"นอกจากนี้\"\n\nแต่ละกรอบใน `SKILL.md` ลิงก์ไปยัง anti-pattern ที่เกี่ยวข้อง\n\n## โครงสร้าง skill\n\n| ไฟล์                            | เนื้อหา                                              |\n| ------------------------------- | --------------------------------------------------- |\n| `SKILL.md`                      | กรอบการเรียบเรียง 7 ข้อ + person deixis + workflow   |\n| `references\u002Fai-tells.md`        | กฎ mechanical: connective spam ถูก- passive padding |\n| `references\u002Fgrammar.md`         | surface grammar: ลักษณนาม modal function-word verb  |\n| `references\u002Fcraft.md`           | taste\u002Fvoice: headline cliché closing intensifier    |\n| `references\u002Fstyle-rules.md`     | กฎเชิงบวก + ทับศัพท์ 4-bucket judgment              |\n| `references\u002Fregister.md`        | 5 register family + person deixis + voice attrs    |\n| `references\u002Fexamples.md`        | ตัวอย่าง before\u002Fafter register-tagged               |\n| `references\u002Fforbidden-phrases.md` | blocklist สำหรับ audit pre-check                 |\n\nskill โหลด `SKILL.md` เป็น context หลัก แล้วอ่าน reference อื่น ๆ เมื่อจำเป็น\nค่อย ๆ เปิดทีละชั้น\n\n## Eval ทำงานยังไง\n\nrepo นี้ไม่ได้มากับกฎอย่างเดียว มี eval harness ด้วย ใช้ pytest ผูก `claude` กับ\n`codex` ใน bare mode คู่กัน เพื่อเทียบผลก่อนกับหลัง inject skill\n\n```bash\nuv sync\nuv run pytest                       # sanity เร็ว ๆ ไม่เรียก API\nuv run pytest -m generate           # ยิงจริง ใช้ token จริง\nuv run pytest -m generate -k claude # เลือก backend เดียว\nuv run pytest -m evaluate           # ตรวจหยาบเชิงปริมาณ (เป็นแค่สัญญาณ)\n```\n\nartifact จะลงที่ `workspace\u002Fiteration-N\u002F\u003Ceval>\u002F\u003Cbackend>\u002F\u003Cconfig>\u002F`\nจากนั้นดูผลกับ Claude ใน chat ได้เลย ไม่มี viewer แยกต่างหาก\n\nสารบบของทุก iteration อยู่ที่ [`workspace\u002FINDEX.md`](workspace\u002FINDEX.md) — สร้าง iteration\nใหม่เมื่อไรให้เพิ่มแถว และอัปเดตช่อง Review เมื่อ review เสร็จ\n\nการตัดสินคุณภาพงานเขียนเป็นงานของมนุษย์ ส่วน `test_quant.py` แค่ flag คำต้องห้าม\nและตำแหน่งที่คำเชื่อมแน่นเกิน ไม่ใช่ด่านตัดสินคุณภาพ\n\n## วินัยการเพิ่มกฎ\n\nทุกกฎใน `references\u002F` มีที่มาจากการค้นคว้างานเขียนจริง ไม่ใช่จากความรู้สึก เวลา\neval ออกมาไม่ดี ขั้นตอนคือ:\n\n1. หา pattern ที่ผิดใน output\n2. map กลับไปยังกฎที่ควรจับได้ ถ้ามีแต่ไม่ทำงาน ก็แก้ถ้อยคำ \u002F ความเด่นของกฎเดิม\n3. ถ้าไม่มีกฎครอบคลุม เช็คงานค้นคว้าก่อน มีหลักฐานไหม ถ้าไม่มี กฎใหม่ก็เป็นแค่\n   ข้อสันนิษฐาน ต้อง flag และถือเป็นกฎชั่วคราว\n4. log ที่มาไว้ใน `iteration-N\u002Ffeedback.md`\n\nอ่านรายละเอียดใน `CLAUDE.md` ส่วน \"Iteration discipline\"\n\n## ที่มาของกฎทุกข้อ\n\nทุกกฎใน skill นี้กลั่นจากตัวอย่างงานเขียนจริง:\n\n- **blog dev ไทย** — Blognone long-form, Somkiat Puisungnoen, Thanaphoom Babparn,\n  Nutta, Rath Panyowat\n- **บทความ explainer สายการเงิน** — Krungsri The COACH, ttb fin tips, SCB Stories & Tips,\n  KBank The Wisdom\n- **newspaper รุ่นใหม่** — The Standard, The MATTER, The 101 World, Workpoint Today\n- **งานแปล non-fiction** — Bookscape, openworlds, Salt Publishing,\n  สฤณี อาชวานันทกุล\n\nในรายการนี้ไม่มีคอลัมนิสต์ดัง ๆ คนไหน ก็เป็นความตั้งใจ กฎควรครอบคลุมงานเขียน\nคุณภาพทั่วไป ไม่ใช่ลอกเสียงใครคนเดียว\n\n## สถานะ\n\niteration ต้น ๆ skill เพิ่งปรับโครงสร้างใหม่ตามกรอบการเรียบเรียง 7 ข้อ แต่ทั้งกรอบ\nและกฎปลีกย่อยยังไม่ผ่าน eval หลายรอบ priority กับ wording ก็เลยต้องปรับตามผลแต่ละ\niteration ไป\n\nใครเจอกฎที่พลาดหรือผิด เปิด issue หรือ PR ได้ ดูขั้นตอน + รูปแบบ slug ใน\n[`CONTRIBUTING.md`](CONTRIBUTING.md)\n\n## License\n\n[MIT](LICENSE) ใช้ได้อิสระทั้งงานส่วนตัวและงานเชิงพาณิชย์ ขอแค่เก็บ copyright\nnotice ไว้\n","该项目旨在改进AI生成的泰语文本，使其更加自然流畅。通过提供一套基于真实开发者博客、大型银行解释性文章及优秀出版社翻译作品提炼出的写作规则，kien-thai技能能够帮助调整Claude等AI模型输出的泰语文本风格，使之更符合泰国读者的习惯，减少冗长和不自然的表达。适用于需要快速且一致地生成高质量泰语文档的技术文档编写者、内容营销团队以及任何希望改善AI生成泰语文本质量的用户。项目采用Python语言开发，并遵循MIT许可协议开放源码。",2,"2026-06-11 04:01:46","CREATED_QUERY"]