[{"data":1,"prerenderedAt":620},["ShallowReactive",2],{"blog-entry-numbers":3,"blogs-2026-11-11-persona-review-subagents":107,"next-blog-2026-11-11-persona-review-subagents":582,"prev-blog-2026-11-11-persona-review-subagents":582,"recommended-blog-2026-11-11-persona-review-subagents":597,"related-blog-2026-11-11-persona-review-subagents":608},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,78,81,84,87,90,93,96,99,101,104],{"path":5,"date":6},"\u002Fblogs\u002F2024-01-14-setup-ubuntu-server","2024-01-14",{"path":8,"date":9},"\u002Fblogs\u002F2024-01-19-setup-uptime-kuma","2024-01-19",{"path":11,"date":12},"\u002Fblogs\u002F2024-06-06-openvpn-exclude-network","2024-06-06",{"path":14,"date":15},"\u002Fblogs\u002F2025-04-14-dotenv-leak-lab","2025-04-14",{"path":17,"date":18},"\u002Fblogs\u002F2025-04-15-ubuntu-pro","2025-04-15",{"path":20,"date":21},"\u002Fblogs\u002F2025-04-24-n8n-part-1","2025-04-24",{"path":23,"date":24},"\u002Fblogs\u002F2025-04-25-setup-nuxt-medium-zoom","2025-04-25",{"path":26,"date":27},"\u002Fblogs\u002F2025-04-28-n8n-part-2","2025-04-28",{"path":29,"date":30},"\u002Fblogs\u002F2025-05-10-n8n-with-telegram-notify","2025-05-10",{"path":32,"date":33},"\u002Fblogs\u002F2025-05-12-next-dns","2025-05-12",{"path":35,"date":36},"\u002Fblogs\u002F2025-05-18-from-old-notebook-to-home-lab-server","2025-05-18",{"path":38,"date":39},"\u002Fblogs\u002F2025-05-23-nuxt-tailwindcss-nuxtui-setup","2025-05-23",{"path":41,"date":42},"\u002Fblogs\u002F2025-08-18-ollama-desktop-ui","2025-08-18",{"path":44,"date":45},"\u002Fblogs\u002F2025-08-26-xponology-on-old-pc","2025-08-26",{"path":47,"date":48},"\u002Fblogs\u002F2025-08-30-pagecms-opensource","2025-08-30",{"path":50,"date":51},"\u002Fblogs\u002F2025-09-19-chuwi-minibook-x","2025-09-19",{"path":53,"date":54},"\u002Fblogs\u002F2025-10-03-typhoon-ai-n8n","2025-10-03",{"path":56,"date":57},"\u002Fblogs\u002F2025-11-03-dirsearch-uv","2025-11-03",{"path":59,"date":60},"\u002Fblogs\u002F2025-11-06-environment-mac-keychains","2025-11-06",{"path":62,"date":63},"\u002Fblogs\u002F2025-12-28-zshrc-config-folder","2025-12-28",{"path":65,"date":66},"\u002Fblogs\u002F2026-01-02-cli-macos-sips","2026-01-02",{"path":68,"date":69},"\u002Fblogs\u002F2026-01-17-zshhistory","2026-01-17",{"path":71,"date":72},"\u002Fblogs\u002F2026-03-30-how-to-use-uv","2026-03-30",{"path":74,"date":75},"\u002Fblogs\u002F2026-08-03-docker-dind-vs-dood","2026-08-03",{"path":77,"date":75},"\u002Fblogs\u002F2026-08-03-grafana-alloy-loki",{"path":79,"date":80},"\u002Fblogs\u002F2026-08-07-node-exporter-mtls-basic-auth","2026-08-07",{"path":82,"date":83},"\u002Fblogs\u002F2026-09-16-headroom","2026-09-16",{"path":85,"date":86},"\u002Fblogs\u002F2026-10-17-humanizer-skills","2026-10-17",{"path":88,"date":89},"\u002Fblogs\u002F2026-10-27-claude-code-server-management","2026-10-27",{"path":91,"date":92},"\u002Fblogs\u002F2026-11-02-agent-skills-security-check","2026-11-02",{"path":94,"date":95},"\u002Fblogs\u002F2026-11-04-ai-native-sdlc","2026-11-04",{"path":97,"date":98},"\u002Fblogs\u002F2026-11-06-seo-aeo-geo-ai-search","2026-11-06",{"path":100,"date":98},"\u002Fblogs\u002F2026-11-06-sshole",{"path":102,"date":103},"\u002Fblogs\u002F2026-11-09-ai-search-visibility","2026-11-09",{"path":105,"date":106},"\u002Fblogs\u002F2026-11-11-persona-review-subagents","2026-11-11",{"id":108,"title":109,"body":110,"date":106,"description":555,"draft":556,"extension":557,"faq":558,"meta":580,"navigation":581,"next":582,"ogTitle":583,"path":105,"pin":556,"prev":582,"recommends":584,"seo":587,"sitemap":588,"stem":593,"tags":594,"updated":582,"__hash__":596},"content\u002Fblogs\u002F2026-11-11-persona-review-subagents.md","Vibe แอปเสร็จแล้ว ผู้ใช้จะติดตรงไหน? ลอง Persona Review ด้วย Claude Code",{"type":111,"value":112,"toc":543},"minimark",[113,117,125,128,133,136,139,142,149,152,158,161,184,194,197,203,210,217,221,224,269,272,275,279,282,301,304,307,310,314,317,379,382,385,389,396,407,410,426,429,432,435,438,441,444,494,497,500,503,506,509,512,515,518,522],[114,115,116],"p",{},"ทำแอปเสร็จ vibe มาหมาด ๆ คำถามต่อมาคือ ถ้ามีคนเอาไปใช้จริง เขาจะมี feedback อะไรบ้าง?",[114,118,119,120,124],{},"ตอนเรียนวิชา UX\u002FUI อาจารย์ให้ทำ ",[121,122,123],"strong",{},"Persona Review"," เป็นขั้นตอนหนึ่งสำหรับเก็บ feedback ผมเลยเอาวิธีนี้มาปรับใช้กับ AI ครับ ให้ subagent สวมบทเป็นผู้ใช้ แล้วเปิด browser เข้าไปทำงานในแอป โดยบอกแค่ว่าอยากทำอะไรให้สำเร็จ จากนั้นดูว่ามันไปต่อได้ไหม ติดตรงไหน และมีอะไรที่เราควรกลับมาตรวจสอบ",[114,126,127],{},"ถ้าเป็นงานจริง ควรเก็บ feedback จากผู้ใช้ตั้งแต่ตอนวาง UX\u002FUI เลยนะครับ แต่รอบนี้ทำแบบรีบ ๆ เลยขอ shortcut หน่อย ทำแอปออกมาก่อน แล้วค่อยทำ persona review ทีหลัง ฮ่า ๆ",[129,130,132],"h2",{"id":131},"persona-review-ทำอย่างไร","Persona Review ทำอย่างไร",[114,134,135],{},"เริ่มจากกำหนดผู้ใช้สมมติให้ subagent แต่ละตัว เช่น คนที่เพิ่งเปิดแอปครั้งแรก หรือคนที่ใช้งานเป็นประจำผ่านมือถือ ระบุว่าเขามาทำอะไร คุ้นเคยกับเครื่องมือแค่ไหน และมีเรื่องอะไรที่กังวล",[114,137,138],{},"จากนั้นให้ agent เปิดแอปผ่าน browser แล้วลองทำงานตามโจทย์ พร้อมบันทึกสิ่งที่เห็นและจุดที่ติดขัด",[114,140,141],{},"ภาพรวมของทั้งรอบเป็นแบบนี้ครับ เราเขียน brief ให้ persona ทีละคน แต่ละคนคุม browser ผ่าน Playwright MCP เข้าไปใช้แอปที่รันอยู่ แล้วส่งรายงานพร้อม screenshot กับคลิปกลับมาให้เราลองทำซ้ำ",[114,143,144],{},[145,146],"img",{"alt":147,"src":148},"Flow ของ Persona Review: เรากับ Claude Code ส่ง brief ให้ persona แต่ละคน persona ใช้ Playwright MCP คุม browser เข้าไปใช้แอป แล้วส่งรายงานกลับมา","\u002Fimages\u002F2026-11-11-persona-review-subagents\u002Fpersona-review-flow.png",[114,150,151],{},"ตัวอย่างโจทย์ง่าย ๆ คือ",[153,154,155],"blockquote",{},[114,156,157],{},"คุณต้องการสร้างกิจกรรมสำหรับสัปดาห์หน้า ตรวจสอบว่าวันเวลาถูกต้อง แล้วเปลี่ยนสถานที่จัดงาน",[114,159,160],{},"โจทย์แบบนี้เปิดให้ agent หาเส้นทางเอง ตั้งแต่จะเริ่มตรงไหน ไปจนถึงจะตรวจสอบอย่างไรว่าบันทึกสำเร็จแล้ว ถ้าเราเขียนขั้นตอนให้ครบว่าเปิดเมนูไหน กดปุ่มอะไร ก็จะไม่ได้เห็นว่าหน้าจอช่วยให้ผู้ใช้หาทางไปต่อได้มากน้อยแค่ไหน",[162,163,164],"note",{},[114,165,166,167,170,171,174,175,179,180,183],{},"ต้องเตรียม 3 อย่าง: ",[121,168,169],{},"Claude Code"," (ใช้ผ่าน terminal), ",[121,172,173],{},"Playwright MCP"," สำหรับให้ agent คุม browser และแอปที่เปิดรันไว้ให้ทดสอบ ติดตั้ง Playwright MCP ด้วยคำสั่ง ",[176,177,178],"code",{},"claude mcp add playwright npx @playwright\u002Fmcp@latest"," ถ้าอยากให้อัดคลิประหว่างทดสอบด้วย ใช้ ",[176,181,182],{},"claude mcp add playwright -- npx @playwright\u002Fmcp@latest --caps=devtools"," แทน",[114,185,186,187],{},"Playwright MCP อ่านข้อมูลหน้าเว็บผ่าน accessibility snapshot (โครงสร้างหน้าเว็บที่เป็นข้อความ ไม่ใช่ภาพ) ได้ด้วย จึงควรให้ agent เปิดดู screenshot ประกอบ โดยเฉพาะเวลารายงานเรื่องตำแหน่งปุ่ม ข้อความถูกตัด หรือสิ่งที่มองไม่เห็นในหน้าจอ ",[188,189,193],"a",{"href":190,"rel":191},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",[192],"nofollow","ดูรายละเอียด Playwright MCP",[114,195,196],{},"ตัวอย่างจากรอบที่ให้ persona อ่านบทความนี้ ฝั่งซ้ายคือ snapshot ที่ agent อ่านได้ ข้อความในกล่อง prompt ครบทุกตัวอักษร ฝั่งขวาคือสิ่งที่คนเห็นบนจอมือถือ บรรทัดยาวล้นขอบขวาจนต้องเลื่อนซ้ายขวา ถ้า agent อ่านแค่ snapshot จะไม่เห็นปัญหานี้เลย",[114,198,199],{},[145,200],{"alt":201,"src":202},"เทียบ accessibility snapshot ที่อ่านข้อความในกล่อง prompt ได้ครบ กับ screenshot มือถือที่บรรทัดล้นขอบขวา","\u002Fimages\u002F2026-11-11-persona-review-subagents\u002Fsnapshot-vs-screenshot.png",[114,204,205,206,209],{},"ภาพด้านล่างตัดมาจากคลิปตอนผมให้ persona นักศึกษาที่อ่านบนมือถือลองอ่านบทความนี้เอง agent ขึ้นป้ายงานข้อ 6 กางสารบัญ \"ในหน้านี้\" แล้วกดข้ามไปหัวข้ออื่น Playwright MCP อัดคลิปแบบนี้ได้ ถ้าเปิด capability ",[176,207,208],{},"devtools"," ไว้",[114,211,212],{},[145,213],{"alt":214,"src":215,"width":216},"Persona บนมือถือ 400x850 กางสารบัญแล้วกดข้ามไปหัวข้อ \"ให้เป้าหมาย พร้อมขอบเขตที่ชัดเจน\"","\u002Fimages\u002F2026-11-11-persona-review-subagents\u002Fpersona-mobile-toc.gif",360,[129,218,220],{"id":219},"เลือก-persona-จากลักษณะการใช้งาน","เลือก persona จากลักษณะการใช้งาน",[114,222,223],{},"ไม่จำเป็นต้องเขียนประวัติยาว ๆ ครับ รายละเอียดที่มีประโยชน์คือสิ่งที่ทำให้แต่ละคนใช้แอปต่างกัน เช่น อุปกรณ์ ความถี่ในการใช้งาน และความคุ้นเคยกับระบบ",[225,226,227,243],"table",{},[228,229,230],"thead",{},[231,232,233,237,240],"tr",{},[234,235,236],"th",{},"Persona",[234,238,239],{},"บริบท",[234,241,242],{},"สิ่งที่อยากสังเกต",[244,245,246,258],"tbody",{},[231,247,248,252,255],{},[249,250,251],"td",{},"ผู้ใช้ใหม่บน desktop",[249,253,254],{},"ยังไม่รู้ว่าแต่ละเมนูทำอะไร อยากตรวจสอบก่อนบันทึก",[249,256,257],{},"หาเมนูเจอไหม เข้าใจข้อความไหม รู้หรือยังว่าทำสำเร็จแล้ว",[231,259,260,263,266],{},[249,261,262],{},"ผู้ใช้ประจำบนมือถือ",[249,264,265],{},"ทำงานเดิมบ่อย ๆ และอยากทำให้เสร็จเร็ว",[249,267,268],{},"ต้องเลื่อนหรือแตะมากแค่ไหน เห็นผลหลังทำรายการหรือไม่",[114,270,271],{},"เริ่มจากสองแบบนี้ก็ได้ แล้วค่อยปรับให้ตรงกับแอปของเรา ความต่างควรอยู่ที่พฤติกรรมและเงื่อนไขการใช้งาน มากกว่าการเปลี่ยนแค่ชื่อหรืออายุ",[114,273,274],{},"ถึงจะกำหนดบทบาทละเอียดแค่ไหน มันก็ยังเป็น AI ที่จำลองพฤติกรรมอยู่ครับ ข้อความอย่าง “ผู้ใช้ใหม่น่าจะไม่เข้าใจ” จึงเป็นข้อสังเกตที่ควรนำไปตรวจต่อ ยังใช้แทนคำตอบจากผู้ใช้จริงไม่ได้",[129,276,278],{"id":277},"ให้เป้าหมาย-พร้อมขอบเขตที่ชัดเจน","ให้เป้าหมาย พร้อมขอบเขตที่ชัดเจน",[114,280,281],{},"ก่อนเริ่ม ควรเตรียม URL บัญชีทดสอบ และข้อมูลตัวอย่างให้พร้อม แล้วกำหนดงานที่ครอบคลุมตั้งแต่เริ่มจนจบ เช่น",[283,284,285,289,292,295,298],"ul",{},[286,287,288],"li",{},"หาฟีเจอร์ที่ต้องการจากหน้าแรก",[286,290,291],{},"สร้างรายการด้วยข้อมูลสมมติ แล้วตรวจสอบว่าบันทึกสำเร็จ",[286,293,294],{},"กลับมาแก้ไขข้อมูลบางส่วน",[286,296,297],{},"ลองกรอกข้อมูลไม่ครบหรือเปลี่ยนใจระหว่างทำงาน",[286,299,300],{},"ลบเฉพาะรายการที่สร้างขึ้นเพื่อทดสอบ",[114,302,303],{},"อย่าบอกล่วงหน้าว่าเราสงสัยปัญหาตรงไหน เช่น “ลองดูว่าปุ่มบันทึกหายากไหม” เพราะคำถามนั้นชี้นำไปแล้ว ให้โจทย์เป็นการทำงานตามปกติ แล้วค่อยดูว่ามันรายงานอะไรกลับมา",[114,305,306],{},"ส่วนขอบเขตต้องบอกให้ชัดว่าเพิ่มหรือแก้ข้อมูลอะไรได้บ้าง มีปุ่มไหนห้ามกด และต้องเก็บกวาดอะไรเมื่อจบ ถ้าแอปส่งอีเมล เผยแพร่ข้อมูล หรือเชื่อมต่อบริการภายนอกได้ ควรเตรียมสภาพแวดล้อมทดสอบที่ไม่ส่งผลไปยังระบบจริงด้วย",[114,308,309],{},"ถ้า persona หลายตัวใช้ browser session และข้อมูลชุดเดียวกัน ให้รันทีละตัวครับ จะได้ไม่แย่งกันเปลี่ยนหน้า หรือแก้รายการเดียวกันระหว่างทดสอบ",[129,311,313],{"id":312},"ควรทดสอบบน-dev-uat-หรือ-prod","ควรทดสอบบน Dev, UAT หรือ Prod?",[114,315,316],{},"เลือกจากสองเรื่องครับ ตอนนี้อยากรู้อะไร และ persona ต้องสร้างหรือแก้ข้อมูลในระบบหรือเปล่า",[225,318,319,335],{},[228,320,321],{},[231,322,323,326,329,332],{},[234,324,325],{},"Environment",[234,327,328],{},"ใช้ตอนไหน",[234,330,331],{},"ข้อดี",[234,333,334],{},"ต้องระวัง",[244,336,337,351,365],{},[231,338,339,342,345,348],{},[249,340,341],{},"Dev (local)",[249,343,344],{},"หลังแก้หน้าจอเสร็จ ก่อนเปิด PR",[249,346,347],{},"รอบสั้น เจอแล้วแก้ได้ทันที",[249,349,350],{},"ข้อมูล seed ไม่เหมือนของจริง dev toolbar หรือ error overlay อาจบังหน้าจอ และบาง service ไม่ได้รัน",[231,352,353,356,359,362],{},[249,354,355],{},"UAT \u002F Staging",[249,357,358],{},"ก่อน release หรือก่อนส่งให้ลูกค้าดู",[249,360,361],{},"build เดียวกับที่จะขึ้นจริง ข้อมูลและ config ใกล้ของจริง",[249,363,364],{},"ต้องใช้บัญชีทดสอบ และต่อบริการภายนอกแบบ sandbox",[231,366,367,370,373,376],{},[249,368,369],{},"Prod",[249,371,372],{},"หลัง deploy เพื่อเช็กว่างานหลักยังใช้ได้",[249,374,375],{},"เห็นแบบเดียวกับที่ผู้ใช้เห็น",[249,377,378],{},"ให้ดูกับอ่านได้อย่างเดียว ห้ามสร้างหรือแก้ข้อมูล และยอดเข้าชมของ persona จะไปปนกับตัวเลข analytics",[114,380,381],{},"Dev เหมาะกับรอบเร็ว ๆ ระหว่างพัฒนา ส่วน UAT ให้ผลใกล้ผู้ใช้จริงที่สุดโดยไม่เสี่ยงกับข้อมูลจริง",[114,383,384],{},"รอบที่ให้ persona อ่านบทความนี้รันบน dev server ของบล็อก persona รายงานว่ามี error ใน console ด้วย แต่พอไล่ดู error พวกนั้นมาจาก view counter กับสคริปต์โฆษณาที่ไม่ได้รันบนเครื่อง dev ผู้อ่านจริงไม่เจอ ถ้ารายงานมีปัญหาที่น่าจะเกิดจาก dev ให้เช็กซ้ำบน build จริงก่อนลงมือแก้",[129,386,388],{"id":387},"ตัวอย่าง-prompt-สำหรับเริ่มลอง","ตัวอย่าง Prompt สำหรับเริ่มลอง",[114,390,391,392,395],{},"ด้านล่างเป็น brief สำหรับส่งให้ subagent ส่วนที่อยู่ใน ",[176,393,394],{},"\u003C...>"," ให้เปลี่ยนเป็นค่าของระบบเราก่อนใช้ครับ",[397,398,405],"pre",{"className":399,"code":401,"filename":402,"language":403,"meta":404},[400],"language-text","ให้คุณทดลองใช้แอปผ่าน Playwright MCP โดยสวมบทเป็นผู้ใช้ตามข้อมูลนี้\n\nบทบาท\n- เป็นผู้ใช้ใหม่ที่ยังไม่เคยเห็นแอปนี้\n- ใช้งานเว็บทั่วไปได้ แต่ไม่รู้ศัพท์เทคนิคหรือโครงสร้างภายในระบบ\n- ใช้ \u003Cdesktop ขนาด 1440x900>\n- ต้องการตรวจสอบข้อมูลให้แน่ใจก่อนบันทึก\n\nสภาพแวดล้อม\n- URL: \u003CURL ของระบบทดสอบ>\n- ใช้บัญชีทดสอบที่ login ไว้แล้ว ถ้าเจอหน้า login ให้หยุดและรายงาน\n- ใช้เฉพาะข้อมูลสมมติ\n\nงานที่ต้องทำ\n1. หาว่าจะสร้างกิจกรรมใหม่ได้จากตรงไหน\n2. สร้างกิจกรรมชื่อ “\u003Cประชุมทีมตัวอย่าง>” สำหรับสัปดาห์หน้า\n3. ตรวจสอบว่าชื่อและวันเวลาที่บันทึกตรงกับที่กรอก\n4. เปลี่ยนสถานที่ แล้วตรวจสอบว่าข้อมูลใหม่ถูกบันทึกแล้ว\n5. ลบกิจกรรมที่ตัวเองสร้างเมื่อทดสอบเสร็จ\n\nกติกา\n- ห้ามอ่าน source code หรือแก้ไฟล์ในโปรเจกต์\n- ห้ามแก้ไขหรือลบข้อมูลที่มีอยู่ก่อนเริ่ม\n- ห้ามส่งคำเชิญ ส่งข้อความ หรือเผยแพร่ข้อมูลออกไปภายนอก\n- เปิดดู screenshot ประกอบการประเมินหน้าจอ\n- อธิบายจุดที่ลังเลหรือไม่เข้าใจ โดยอ้างอิงสิ่งที่เห็น\n- ถ้าทำต่อไม่ได้ ให้รายงานตรง ๆ ไม่ต้องฝืนทำให้สำเร็จ\n\nรายงานกลับ\n- แต่ละงานทำได้ ทำได้แต่ติดขัด หรือทำไม่ได้\n- จุดที่ติดขัด: เห็นอะไร คาดว่าจะเกิดอะไร และอยู่ตรงไหน\n- ถ้าพบ bug ให้ระบุขั้นตอน ข้อมูลที่กรอก และผลลัพธ์ที่เกิดขึ้น\n- แนบชื่อ screenshot ที่เกี่ยวข้อง\n- แยกสิ่งที่สังเกตได้ออกจากข้อสันนิษฐานเกี่ยวกับผู้ใช้\n- ยืนยันว่าลบข้อมูลทดสอบของตัวเองแล้ว และไม่ได้เปลี่ยนข้อมูลเดิม\n","persona-brief.txt","text","",[176,406,401],{"__ignoreMap":404},[114,408,409],{},"จากนั้นอาจลองอีก persona ที่ใช้มือถือและคุ้นเคยกับระบบมากกว่า โดยใช้เป้าหมายคล้ายกันเพื่อดูว่าขนาดหน้าจอและวิธีทำงานทำให้เจอปัญหาต่างกันหรือเปล่า",[114,411,412,413,416,417,420,421],{},"ถ้าใช้บ่อย ค่อยเก็บขั้นตอนเตรียมงานและ brief นี้ไว้เรียกซ้ำเป็น ",[176,414,415],{},"\u002Fpersona-review"," ก็ได้ สำหรับ Claude Code เอกสารปัจจุบันแนะนำให้สร้างงานใหม่เป็น skill ส่วนไฟล์ใน ",[176,418,419],{},"~\u002F.claude\u002Fcommands\u002F"," ยังใช้งานได้ ",[188,422,425],{"href":423,"rel":424},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fskills",[192],"ดูเอกสาร Skills",[129,427,428],{"id":428},"อ่านรายงานแล้วต้องลองทำซ้ำ",[114,430,431],{},"รายงานจาก persona เป็นจุดเริ่มต้นให้เราไปตรวจต่อครับ โดยเฉพาะข้อที่ระบุว่าเป็น bug ควรทำซ้ำด้วยขั้นตอนและค่าที่รายงานมาก่อนแก้โค้ด",[114,433,434],{},"สมมติว่า agent บอกว่า “แก้วันสิ้นสุดแล้ววันเริ่มต้นเปลี่ยนเอง” สิ่งที่ต้องตรวจคือค่าเริ่มต้นเป็นอะไร กรอกช่องไหนก่อน ระหว่างกรอกมีคำเตือนหรือไม่ และหลังบันทึกแล้วข้อมูลเป็นอย่างไร",[114,436,437],{},"รายละเอียดพวกนี้ช่วยแยกได้ว่าปัญหาอยู่ที่ข้อมูลที่บันทึก การแสดงผล หรือวิธีที่ agent ใช้เครื่องมือกรอกข้อมูล ถ้าทำซ้ำไม่ได้ ก็ควรเก็บไว้เป็นประเด็นที่ยังยืนยันไม่ได้",[114,439,440],{},"รายงานที่ดูขัดกันก็มีประโยชน์เหมือนกัน เช่น persona หนึ่งบอกว่าหาปุ่ม Undo ไม่เจอ แต่อีกตัวเห็นและกดได้ อาจเป็นเพราะตำแหน่งปุ่มกับขนาดหน้าจอ ทำให้ตัวหนึ่งเห็นทันที ส่วนอีกตัวต้องเลื่อนลงไปก่อน ข้อนี้ต้องกลับไปดู screenshot และลองตามเส้นทางที่แต่ละตัวใช้",[114,442,443],{},"ตอนรวมผล ผมจะแยกเป็นสามกลุ่มเพื่อให้อ่านง่าย",[225,445,446,459],{},[228,447,448],{},[231,449,450,453,456],{},[234,451,452],{},"กลุ่ม",[234,454,455],{},"ตัวอย่าง",[234,457,458],{},"ขั้นตอนถัดไป",[244,460,461,472,483],{},[231,462,463,466,469],{},[249,464,465],{},"ผลลัพธ์ผิด",[249,467,468],{},"บันทึกแล้วค่าเปลี่ยน หรือข้อมูลไม่ถูกเก็บ",[249,470,471],{},"ทำซ้ำเพื่อยืนยัน แล้วเพิ่ม test ครอบคลุมเคสนั้น",[231,473,474,477,480],{},[249,475,476],{},"ใช้งานติดขัด",[249,478,479],{},"ต้องเลื่อนกลับไปกลับมา หรือกดแล้วมองไม่เห็นผล",[249,481,482],{},"ตรวจหน้าจอและเส้นทางการใช้งาน",[231,484,485,488,491],{},[249,486,487],{},"ข้อความไม่ชัด",[249,489,490],{},"อ่านชื่อปุ่มแล้วไม่รู้ว่าจะเกิดอะไร",[249,492,493],{},"ทบทวนถ้อยคำและตรวจความเข้าใจกับผู้ใช้",[129,495,496],{"id":496},"ข้อจำกัด",[114,498,499],{},"วิธีนี้เหมาะกับการหาประเด็นเบื้องต้น โดยเฉพาะหลังเพิ่มฟีเจอร์หรือเปลี่ยนหน้าจอ ก่อนจะส่งให้คนอื่นลองใช้ แต่มีข้อจำกัดอยู่หลายอย่างครับ",[114,501,502],{},"AI อาจพยายามจนทำงานสำเร็จ ทั้งที่คนจริงเลิกใช้ไปแล้ว หรืออธิบายว่าข้อความหนึ่งเข้าใจยากเพียงเพราะได้รับบทเป็นผู้ใช้ใหม่ เราจึงต้องแยกสิ่งที่เกิดขึ้นบนจอออกจากความเห็นที่มันจำลองขึ้นมา",[114,504,505],{},"อีกอย่างคือ accessibility snapshot ช่วยให้ agent เข้าถึงข้อมูลที่คนทั่วไปต้องกวาดตาหาเอง การบังคับให้ดู screenshot ช่วยเพิ่มหลักฐานด้านภาพได้ แต่ไม่ได้ทำให้การทดสอบเหมือนคนใช้ browser ทุกอย่าง และการย่อ viewport เป็นมือถือก็ยังไม่ใช่การทดสอบบนโทรศัพท์จริง",[114,507,508],{},"เรื่องเวลากับค่าใช้จ่าย ตอนผมให้ persona สองคนลองอ่านบทความนี้ คนละ 7–8 งาน ใช้ Sonnet ไปคนละ 75k–88k tokens และประมาณ 2 นาที ถ้าเป็นแอปที่ต้องกรอกฟอร์มหรือหน้าจอซับซ้อนกว่านี้ ตัวเลขจะสูงขึ้นตามจำนวน persona และจำนวนงาน เริ่มจากงานเล็ก ๆ แล้วดู usage จริงของเราเองก่อนขยาย",[129,510,511],{"id":511},"สรุป",[114,513,514],{},"สำหรับผม จุดที่น่าลองคือการได้ตรวจแอปเพิ่มอีกมุม หลังจากตรวจโค้ดและรัน test ไปแล้ว เราอาจเจอทั้ง bug ที่ยังไม่มี test ครอบคลุม และจุดเล็ก ๆ ที่ทำให้คนใช้ต้องหยุดคิดโดยไม่จำเป็น",[114,516,517],{},"เริ่มจากหน้าจอเดียว งานหลักไม่กี่ข้อ และ persona สองแบบก็พอครับ แล้วเลือกสิ่งที่รายงานกลับมาลองทำซ้ำเอง จะได้รู้ว่าวิธีนี้ช่วยงานของเราได้แค่ไหน",[129,519,521],{"id":520},"references","References",[283,523,524,531,537],{},[286,525,526],{},[188,527,530],{"href":528,"rel":529},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsub-agents",[192],"Claude Code: Subagents",[286,532,533],{},[188,534,536],{"href":423,"rel":535},[192],"Claude Code: Skills",[286,538,539],{},[188,540,542],{"href":190,"rel":541},[192],"Microsoft Playwright MCP",{"title":404,"searchDepth":544,"depth":544,"links":545},2,[546,547,548,549,550,551,552,553,554],{"id":131,"depth":544,"text":132},{"id":219,"depth":544,"text":220},{"id":277,"depth":544,"text":278},{"id":312,"depth":544,"text":313},{"id":387,"depth":544,"text":388},{"id":428,"depth":544,"text":428},{"id":496,"depth":544,"text":496},{"id":511,"depth":544,"text":511},{"id":520,"depth":544,"text":521},"ให้ AI subagent สวมบทผู้ใช้ เปิดแอปจริงผ่าน Playwright MCP แล้วรายงานจุดที่ติดขัดพร้อม screenshot มีตัวอย่างจากการทดสอบบทความนี้เอง brief ที่ copy ไปใช้ได้ ค่าใช้จ่ายต่อรอบ และควรรันบน Dev, UAT หรือ Prod",false,"md",[559,562,565,568,571,574,577],{"question":560,"answer":561},"Persona Review คืออะไร?","คือการให้ AI subagent สวมบทเป็นผู้ใช้สมมติ เช่น ผู้ใช้ใหม่บน desktop หรือผู้ใช้ประจำบนมือถือ แล้วเปิดแอปผ่าน browser ด้วย Playwright MCP ทำงานตามเป้าหมายที่กำหนด จากนั้นรายงานกลับว่าทำได้ ติดขัด หรือทำไม่ได้ตรงไหน พร้อม screenshot เป็นหลักฐาน",{"question":563,"answer":564},"ต้องเตรียมอะไรก่อนลอง?","ต้องมี Claude Code ที่ใช้ผ่าน terminal, Playwright MCP ซึ่งติดตั้งด้วยคำสั่ง claude mcp add playwright npx @playwright\u002Fmcp@latest และแอปที่เปิดรันไว้ให้ทดสอบ พร้อมบัญชีทดสอบกับข้อมูลตัวอย่าง ถ้าแอปส่งอีเมลหรือเชื่อมบริการภายนอก ควรใช้สภาพแวดล้อมทดสอบที่ไม่กระทบระบบจริง",{"question":566,"answer":567},"ใช้แทนการทดสอบกับผู้ใช้จริงได้ไหม?","ไม่ได้ AI อาจพยายามจนทำงานสำเร็จทั้งที่คนจริงเลิกใช้ไปแล้ว และการย่อหน้าจอเป็นขนาดมือถือก็ไม่ใช่การทดสอบบนโทรศัพท์จริง วิธีนี้เหมาะกับการหาประเด็นเบื้องต้นหลังเพิ่มฟีเจอร์หรือเปลี่ยนหน้าจอ ก่อนส่งให้คนจริงลองใช้",{"question":569,"answer":570},"ควรรัน Persona Review บน environment ไหน?","ระหว่างพัฒนาใช้ Dev เพราะรอบสั้นและแก้ได้ทันที ก่อน release ใช้ UAT หรือ Staging เพราะเป็น build เดียวกับที่จะขึ้นจริงและข้อมูลใกล้ของจริง ส่วน Production ใช้ได้แค่เช็กหลัง deploy แบบดูอย่างเดียว ห้ามให้ persona สร้างหรือแก้ข้อมูล และยอดเข้าชมของ persona จะปนกับตัวเลข analytics",{"question":572,"answer":573},"ใช้ tokens และเวลาเท่าไร?","ตอนให้ persona สองคนลองอ่านบทความนี้ คนละ 7–8 งาน ใช้ Sonnet ไปคนละ 75k–88k tokens และประมาณ 2 นาที แอปที่ต้องกรอกฟอร์มหรือหน้าจอซับซ้อนกว่านี้จะใช้มากขึ้นตามจำนวน persona และจำนวนงาน",{"question":575,"answer":576},"ทำไมต้องให้ agent ดู screenshot ด้วย?","เพราะ accessibility snapshot ที่ agent อ่านเป็นข้อความทั้งหมดของหน้า ไม่บอกว่าบนจอมีอะไรล้น ถูกตัด หรือมองไม่เห็น เช่น กล่องโค้ดที่ล้นขอบจอมือถือ snapshot ยังอ่านได้ครบ แต่ screenshot จะเห็นว่าคนต้องเลื่อนซ้ายขวาถึงจะอ่านจบ",{"question":578,"answer":579},"รัน persona หลายตัวพร้อมกันได้ไหม?","ถ้าใช้ browser session และข้อมูลชุดเดียวกัน ให้รันทีละตัว ไม่อย่างนั้น persona จะแย่งกันเปลี่ยนหน้าหรือแก้รายการเดียวกันระหว่างทดสอบ และรายงานที่ได้จะเชื่อถือไม่ได้",{},true,null,"Persona Review: ให้ AI สวมบทผู้ใช้ ก่อนส่งแอปให้คนจริง",[585,586],"2026-11-04-ai-native-sdlc.md","2026-11-02-agent-skills-security-check.md",{"title":109,"description":555},{"loc":105,"images":589,"lastmod":106},[590,591,592],{"loc":148},{"loc":202},{"loc":215},"blogs\u002F2026-11-11-persona-review-subagents",[595],"AI","Uu39GNv8ek0d7tUDGot3EXYRvolgNTOE-y0EgrsL1lk",[598,603],{"id":599,"path":91,"title":600,"date":92,"tags":601},"content\u002Fblogs\u002F2026-11-02-agent-skills-security-check.md","โหลด Agent Skills ฟรีมาใช้ ต้องระวังอะไร และตรวจสอบอย่างไร?",[595,602],"Development",{"id":604,"path":94,"title":605,"date":95,"tags":606},"content\u002Fblogs\u002F2026-11-04-ai-native-sdlc.md","AI-native SDLC คืออะไร? เมื่อใช้ AI เขียน Code แล้ว ต้องปรับ Workflow ตรงไหนบ้าง",[595,607],"Software Development",[609,614,618],{"id":610,"path":102,"title":611,"date":103,"tags":612},"content\u002Fblogs\u002F2026-11-09-ai-search-visibility.md","ทุกวันนี้ทุกคนถาม AI หรือ Search Google มากกว่ากันครับ?",[595,613],"SEO",{"id":615,"path":97,"title":616,"date":98,"tags":617},"content\u002Fblogs\u002F2026-11-06-seo-aeo-geo-ai-search.md","SEO vs AEO vs GEO: ทำเว็บไซต์ยุค AI Search ควรเน้นอะไร?",[595,602],{"id":604,"path":94,"title":605,"date":95,"tags":619},[595,607],1794366405423]