[ { "id": "C-001", "at": "2026-10-29T12:20:31+07:00", "agent": "Claude Code (Opus 5.5)", "title": "สร้างฐานความรู้โครงการจาก Proposal", "summary": "ศึกษา Business Proposal ทั้งฉบับ รวมภาพ workflow และภาพตัวอย่างหน้าจอ แล้วเขียนเป็นฐานความรู้ให้ Agent ใช้ ต่อด้วยถอดภาพโครงสร้าง module ของ BA และตั้ง git repo", "changes": [ "สร้าง docs/agent/ 01–11: ภาพรวม ศัพท์ module บทบาท workflow UX/UI architecture NFR แผนงาน KPI และคำถามค้าง", "ถอดภาพ module ของ BA เป็น UNI-01…08 และโรงเรียนกีฬา 15 module พร้อมตารางเทียบกับระบบใน Proposal", "เพิ่ม AGENTS.md และ CLAUDE.md ชี้ไปที่ docs/agent", "ตั้ง git repo และ commit แรก" ], "tasks": [ "T-101", "T-102", "T-103" ], "refs": [ "docs/agent/README.md", "docs/agent/03-modules.md", "AGENTS.md" ], "commit": "ec2a33b" }, { "id": "C-002", "at": "2026-10-30T12:13:24+07:00", "agent": "Claude Code (Opus 5.5)", "title": "ระบุว่า Proposal §5 และ §7 ไม่เกี่ยวกับ TNSU", "summary": "พบว่า §5 และ §7 ของ Proposal เป็นเนื้อหาของโครงการอื่น จึงระบุในเอกสารทุกจุดว่าห้ามใช้เป็น requirement ระหว่างรอทีมยืนยัน", "changes": [ "README, AGENTS.md และไฟล์ 07, 08, 09, 11 ระบุว่า §5.1–5.3 และ §7 เป็นเนื้อหาชั่วคราว", "ระบุเลขหน้าโดยประมาณของส่วนที่ปนมา" ], "tasks": [ "T-104" ], "refs": [ "docs/agent/11-open-questions-and-known-issues.md" ], "commit": "51550d2" }, { "id": "C-003", "at": "2026-10-30T12:23:03+07:00", "agent": "Claude Code (Opus 5.5)", "title": "สร้าง catalog use case และเอาเนื้อหาโครงการอื่นออก", "summary": "ถอดข้อมูล 162 use case จาก Use case Explorer ที่ทีม export มา เขียนสคริปต์สร้าง catalog ทีละ module และเอารายละเอียดของโครงการอื่นออกจากฐานความรู้ตามที่ทีมยืนยัน", "changes": [ "เพิ่ม tools/gen_use_cases.py และ docs/agent/use-cases/ (35 module, 162 use case)", "เขียน 12-use-cases.md: ตารางเทียบกับ BA และ Proposal แนวคิดหลัก ระบบภายนอก และ 18 จุดที่ต้องตรวจสอบ", "เปลี่ยนรหัสโรงเรียนกีฬาของ BA จาก SCH เป็น SS เพราะ use case ใช้ SCH เป็นทุนและ กยศ.", "เขียน 07 และ 08 ใหม่จากเนื้อหา TNSU เท่านั้น" ], "tasks": [ "T-104", "T-105" ], "refs": [ "docs/agent/12-use-cases.md", "docs/agent/tools/gen_use_cases.py" ], "commit": "babd21d" }, { "id": "C-004", "at": "2026-10-30T12:49:14+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Role Matrix, Security Matrix และ ADR tech stack", "summary": "ทำ Role Matrix และ Security Matrix ฉบับร่างจาก use case และบันทึกการตัดสินใจของ project owner (tech stack, ไม่มีระบบเดิม, ค่ากฎตั้งโดยมหาวิทยาลัย)", "changes": [ "13-role-matrix.md: 59 รหัสบทบาท โมเดลขอบเขตสิทธิ์ และตารางอำนาจอนุมัติประมาณ 40 เรื่อง", "14-security-matrix.md: ระดับข้อมูล L1–L4 สิทธิ์ตามโดเมนข้อมูล การยืนยันตัวตน SoD และ audit", "docs/adr/0001-tech-stack.md พร้อมข้อเปรียบเทียบ SQL Server กับ PostgreSQL", "ตัดเรื่องระบบ E-Education เดิมออกทุกไฟล์" ], "tasks": [ "T-201", "T-202", "T-301", "T-302" ], "refs": [ "docs/agent/13-role-matrix.md", "docs/agent/14-security-matrix.md", "docs/adr/0001-tech-stack.md" ], "commit": "5d2b2ec" }, { "id": "C-005", "at": "2026-10-30T12:57:38+07:00", "agent": "Claude Code (Opus 5.5)", "title": "README ของ repo และ push ขึ้น GitLab", "summary": "ตั้ง remote GitLab แล้ว push และเขียน README ภาษาไทยสำหรับคนในทีม", "changes": [ "README.md: สถานะงาน tech stack โครงสร้าง repo และวิธีอัปเดตข้อมูล", "push branch main ขึ้น GitLab" ], "tasks": [ "T-103", "T-106" ], "refs": [ "README.md" ], "commit": "abedeb3" }, { "id": "C-006", "at": "2026-10-30T13:41:32+07:00", "agent": "Claude Code (Opus 5.5)", "title": "สร้างเว็บติดตามความคืบหน้างาน", "summary": "สร้าง tracker เป็น Go server ที่ render ฝั่ง server และอัปเดตสดด้วย Server-Sent Events มี 6 เมนูตามที่ขอ พร้อมข้อมูลตั้งต้นจากงานจริงของทีม", "changes": [ "หน้าภาพรวม: จำนวน Task / Review / Checkpoint, milestone แบบหลอด segment และ Current Task", "go test 12 รายการ และ e2e ตรวจการอัปเดตสดในเบราว์เซอร์จริง", "กติกาใน AGENTS.md ให้ Agent อัปเดตข้อมูล tracker" ], "tasks": [ "T-401" ], "refs": [ "tracker/" ], "commit": "8878325" }, { "id": "C-007", "at": "2026-10-30T13:54:20+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Dark mode และแก้ watcher อ่านไฟล์ระหว่างบันทึก", "summary": "เพิ่ม dark mode แบบตามระบบ/สว่าง/มืด และแก้ปัญหา watcher อ่านไฟล์ที่ยังเขียนไม่เสร็จ ซึ่งทำให้ test ผ่านบ้างไม่ผ่านบ้าง", "changes": [ "เปลี่ยนสีทั้งหมดเป็น token และเพิ่มปุ่มเลือกธีม", "watcher รอให้ไฟล์คงที่ก่อนโหลดใหม่ (P-007)", "go test ซ้ำ 30 รอบผ่านครบ" ], "tasks": [ "T-401" ], "refs": [ "tracker/static/style.css", "tracker/live.go" ], "commit": "d2349fd" }, { "id": "C-008", "at": "2026-10-30T14:01:41+07:00", "agent": "Claude Code (Opus 5.5)", "title": "จัดงานเป็น Milestone → Epic → Task", "summary": "ย้ายงานเดิมทั้งหมดไปเป็น Milestone 0 (เตรียมความพร้อม) แตกเป็น 7 epic และเพิ่ม epic สำหรับจัดหมวดหมู่ milestone ของงานจริง", "changes": [ "โครงสร้างข้อมูลใหม่ milestone → epic → task และรหัส epic อัตโนมัติ (E0.1…)", "หน้าภาพรวมแสดงหลอดแบ่งกลุ่มตาม epic และแถวของแต่ละ epic" ], "tasks": [ "T-401", "T-701" ], "refs": [ "tracker/data/milestones.json" ], "commit": "8dcc598" }, { "id": "C-009", "at": "2026-10-30T15:15:07+07:00", "agent": "Claude Code (Opus 5.5)", "title": "ถอดไฟล์ draw.io ต้นฉบับของ BA", "summary": "อ่านไฟล์ TNSU_EDU 191069.drawio ทั้ง 7 หน้า ยืนยันว่า module ตรงกับที่ถอดจากภาพ และได้ข้อมูลใหม่: โครงสร้างหน่วยงาน หลักสูตรจริง 9 หลักสูตร และ flow ของ BA 2 เรื่อง", "changes": [ "เพิ่ม tools/gen_ba_drawio.py และ docs/agent/ba-drawio.md", "03-modules: โครงสร้างหน่วยงานและรายการหลักสูตร", "05-workflows: flow สร้างหลักสูตรและเปิดสอน (รวมวิชาเรียนรวม)", "ปิดปัญหา P-003 ภาพความละเอียดต่ำ" ], "tasks": [ "T-107" ], "refs": [ "docs/agent/ba-drawio.md", "docs/agent/03-modules.md", "docs/agent/05-workflows.md" ], "commit": "cccee73" }, { "id": "C-010", "at": "2026-10-30T15:19:54+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Dark mode แบบ GitHub", "summary": "เปลี่ยนชุดสีโหมดมืดเป็นแบบ GitHub dark และแก้ตัวอักษรบนพื้นสีทองที่อ่านยาก", "changes": [ "ชุดสีโหมดมืดใหม่", "token ตัวอักษรบนพื้นสีทองและเมนูด้านข้าง" ], "tasks": [ "T-401" ], "refs": [ "tracker/static/style.css" ], "commit": "1b2d42e" }, { "id": "C-011", "at": "2026-10-30T15:22:46+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Dark mode เข้มขึ้นและจัดเนื้อหากึ่งกลาง", "summary": "ทำโหมดมืดเข้มขึ้นอีกระดับ ไล่ระดับชั้นสีไม่ให้กลืนกัน ตรวจ contrast ตาม WCAG ทุกคู่สี และจัดเนื้อหาให้อยู่กึ่งกลางบนจอกว้าง", "changes": [ "ชั้นสี page < เมนู < การ์ด < ส่วนที่ยกขึ้น", "กรอบ Todo ปรับให้ผ่าน 3:1", "จัดเนื้อหากึ่งกลาง" ], "tasks": [ "T-401" ], "refs": [ "tracker/static/style.css" ], "commit": "ef793d7" }, { "id": "C-012", "at": "2026-10-30T15:33:44+07:00", "agent": "Claude Code (Opus 5.5)", "title": "เปิด tracker ให้เข้าจาก Tailscale", "summary": "ตั้ง tailscale serve แบบ TCP บน Windows ส่งต่อพอร์ต 8099 เข้า WSL ทดสอบทุกหน้าและการอัปเดตสดผ่าน IP Tailscale แล้วผ่าน", "changes": [ "scripts/tailscale.sh on | off | status", "เปลี่ยนพอร์ตเริ่มต้นเป็น 8099", "บันทึกปัญหา P-008 (HTTP serve ได้ 404/500)" ], "tasks": [ "T-402" ], "refs": [ "tracker/scripts/tailscale.sh", "tracker/README.md" ], "commit": "a34ed5c" }, { "id": "C-013", "at": "2026-10-30T15:52:25+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Tracker รอบ 2: หน้าย่อย, Checkpoint จาก Agent, Test แบบจัดกลุ่ม, Review tabs และ animation", "summary": "ปรับ tracker ตามคำขอของ project owner 5 เรื่อง: แยกหน้าตามลำดับชั้นเพื่อรองรับ milestone ของงานจริง, เปลี่ยน Checkpoint จาก git log เป็นบันทึกสรุปที่ Agent เขียน, จัดผลทดสอบเป็นหัวข้อให้ BA และ Technical อ่านเข้าใจ, แยกการรีวิวตามสถานะพร้อม checklist และให้งานที่กำลังทำหรือรอรีวิวมี animation", "changes": [ "หน้าย่อย /milestones/{milestone}, /milestones/{milestone}/{epic} และ /tasks/{task} พร้อม breadcrumb และรายชื่อ milestone ในเมนูด้านข้าง", "Checkpoint อ่านจาก data/checkpoints.json แทน git log เอา git.go และ flag -repo ออก และเขียนสรุปย้อนหลัง 12 รายการ", "ผลตรวจ Test: จัดกลุ่มตามหัวข้อ ป้าย BA / Technical ตัวกรองมุมมอง และย้ายรายละเอียดเทคนิคไปส่วนพับ", "Wait for review: tab Todo / Rejected / Hold / Done, checklist เป็นขั้นตอน และข้อความแบบ markdown (render ฝั่ง server แบบปลอดภัย)", "Animation: แสงวิ่งบน In Progress และลายเลื่อนบน Wait for review หยุดเมื่อระบบตั้งลดการเคลื่อนไหว", "เขียน checklist ให้งานที่รอรีวิวทั้ง 4 งาน และบันทึกผลทดสอบรอบนี้แบบจัดกลุ่ม (33 ข้อ ผ่านทั้งหมด)", "อัปเดต tracker/README.md, README.md และ AGENTS.md (กติกาเขียน checkpoint และผลทดสอบ)" ], "tasks": [ "T-403", "T-201", "T-202", "T-302", "T-401" ], "refs": [ "tracker/", "tracker/README.md", "AGENTS.md" ] }, { "id": "C-014", "at": "2026-10-30T16:02:17+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Review form: กรอกผลรีวิวและ Save จากหน้าเว็บ", "summary": "เพิ่มฟอร์มรีวิวตามคำขอของ project owner ให้ผู้รีวิวติ๊ก Checklist เลือก Approve / Reject / Hold เขียนผล แล้วกด Save ผลบันทึกลง milestones.json ให้ Agent อ่านได้ และปรับหน้าผลตรวจ Test ให้ใช้คำภาษาอังกฤษตามที่ทีมใช้", "changes": [ "POST /reviews/{task}: validate, กัน CSRF (Origin/Referer), จำกัดขนาด 64 KB", "แก้ไฟล์ JSON แบบคงลำดับ key และ field อื่น เขียนแบบ atomic และเก็บ Review history ทุกครั้ง", "Approve → task Done, Reject → task In Progress, Hold → ค้างที่ Wait for review", "Live update ไม่ทับฟอร์มที่กำลังกรอก, browser จำชื่อผู้รีวิว", "ผลตรวจ Test ใช้คำภาษาอังกฤษ (Validation, Live update (SSE), Routing, Markdown sanitize ฯลฯ)", "AGENTS.md: Agent ต้องอ่านผลรีวิว Rejected / Hold ก่อนเริ่มงานทุกครั้ง" ], "tasks": [ "T-404" ], "refs": [ "tracker/review_submit.go", "tracker/ojson.go", "tracker/README.md", "AGENTS.md" ] }, { "id": "C-015", "at": "2026-10-30T16:16:16+07:00", "agent": "Claude Code (Opus 5.5)", "title": "ไฟล์แนบเปิดเป็น HTML, สถานะ Reviewed และนำผลรีวิว T-302 (SQL Server) ไปใช้", "summary": "ทำตามคำขอ 3 เรื่อง: ไฟล์แนบอย่าง Role Matrix และ Security Matrix กดเปิดเป็นหน้า HTML อ่านง่ายในแท็บใหม่, เพิ่มสถานะ Reviewed แยกจาก Done และให้ Done เป็นสีเขียว ระหว่างทำพบว่าผู้รีวิว (ทิว) Approve ไป 4 งานผ่าน Review form จึงอ่านผลแล้วนำไปใช้: บันทึกการเลือก SQL Server ลง ADR-0001", "changes": [ "File viewer /files/: markdown render พร้อมตาราง, TOC, row filter, heading anchor และ mermaid; ป้องกัน path traversal, .git และ symlink", "Refs และ path ใน code span ในข้อความรีวิวเปิดในแท็บใหม่", "สถานะ reviewed: Approve แล้วเป็น Reviewed, % นับ Done + Reviewed, ย้าย T-302, T-401, T-403, T-404 เป็น Reviewed", "Done สีเขียว / Reviewed สีน้ำเงินพร้อม ✓", "ADR-0001: ฐานข้อมูลเป็น SQL Server ตามผลรีวิว T-302 พร้อมผลกระทบ (RabbitMQ สำหรับ queue, Thai collation, JSON, temporal และ ledger tables)", "อัปเดต README, AGENTS.md, 07, 11, docs/agent/README และ tracker/README" ], "tasks": [ "T-405", "T-305", "T-302" ], "refs": [ "tracker/files.go", "tracker/md.go", "docs/adr/0001-tech-stack.md", "AGENTS.md" ] }, { "id": "C-016", "at": "2026-10-30T16:24:53+07:00", "agent": "Claude Code (Opus 5.5)", "title": "เมนู Timeline (Gantt chart)", "summary": "เพิ่มหน้า Timeline ตามคำขอ: Milestone › Epic › Task ฝั่งซ้าย แถบเวลาฝั่งขวาคล้าย Jira Timeline ปรับดูรายชั่วโมง วัน และสัปดาห์ได้ คำนวณตำแหน่งทั้งหมดฝั่ง server และอัปเดตสดเหมือนหน้าอื่น", "changes": [ "timeline.go: ช่วงเวลาทำจริงและแผน, แถบ Epic / Milestone, target marker, scale และหัวตาราง", "หน้า /timeline พร้อมเส้นตอนนี้, วันหยุดแรเงา, ย่อ/ขยาย และปุ่มไปที่ตอนนี้", "Task รองรับ start / due (แผน) และวันเวลาแบบ RFC 3339", "Live update คงตำแหน่ง scroll ของ chart", "AGENTS.md: บันทึก started / finished พร้อมเวลา" ], "tasks": [ "T-406" ], "refs": [ "tracker/timeline.go", "tracker/templates/timeline.html", "tracker/static/timeline.js" ] }, { "id": "C-017", "at": "2026-10-30T16:35:00+07:00", "agent": "Claude Code (Opus 5.5)", "title": "Timeline เต็มจอ ปรับความกว้างช่องรายละเอียดได้", "summary": "ตามคำขอ: หน้า Timeline ต้องใช้พื้นที่กว้าง จึงให้ใช้ความกว้างถึงขอบ browser และ chart ยืดเต็มพื้นที่ เพิ่มเส้นแบ่งที่ลากซ้ายขวาเพื่ออ่านชื่องานได้ยาวขึ้น และแก้สีพื้นหลังช่องรายละเอียดที่ซ้อนกับแถบตอนชี้เมาส์ใน theme มืด", "changes": [ "หน้า Timeline ไม่จำกัด max-width (หน้าอื่นคงเดิม)", "ตำแหน่งแถบ หัวตาราง และเส้นตอนนี้ คำนวณเป็น % ของ chart; ความกว้างจาก scale กลายเป็นความกว้างขั้นต่ำก่อนเลื่อนแนวนอน", "เส้นแบ่งลากได้ที่หัวตารางและขอบทุกแถว, คีย์บอร์ด (ลูกศร, Shift+ลูกศร, Home) และจำค่าใน browser", "Hover สีบนช่องรายละเอียดวางบนพื้นทึบ ใน theme มืดจึงไม่เห็นแถบ chart ทะลุ", "E2E ใหม่ e2e/timeline-check.mjs" ], "tasks": [ "T-407" ], "refs": [ "tracker/timeline.go", "tracker/templates/timeline.html", "tracker/static/timeline.js", "tracker/static/style.css", "tracker/e2e/timeline-check.mjs" ] }, { "id": "C-018", "at": "2026-10-30T16:48:00+07:00", "agent": "Claude Code (Opus 5.5)", "title": "แก้ย่อ/ขยายใน Timeline", "summary": "ผู้ใช้แจ้งว่าย่อ/ขยายใช้งานไม่ได้ ตรวจใน browser พบว่า JS ซ่อนแถวถูกต้องแล้ว แต่ CSS ของแถวทำให้แถวที่ซ่อนยังแสดงอยู่ แก้ CSS และเพิ่มการตรวจย่อ/ขยายใน E2E", "changes": [ "style.css: .tl-row[hidden] { display: none }", "e2e/timeline-check.mjs: ย่อ Epic แล้ว task ข้างในหาย ขยายแล้วกลับมา" ], "tasks": [ "T-407" ], "refs": [ "tracker/static/style.css", "tracker/e2e/timeline-check.mjs" ] }, { "id": "C-019", "at": "2026-10-30T17:05:00+07:00", "agent": "Claude Code (Opus 5.5)", "title": "แก้ tracker ช้าเมื่อเปิดหลาย tab และอ่านผลรีวิว", "summary": "ผู้ใช้ถามว่าเว็บช้าเพราะอะไร วัดแล้ว server ตอบใน 1–25 ms และไม่ใช้ CPU ปัญหาอยู่ที่ browser: ทุก tab ถือการเชื่อมต่อ live update ค้างไว้ ซึ่ง browser ให้ได้ประมาณ 6 ช่องต่อเว็บ เมื่อเปิดหลาย tab หน้าใหม่ต้องรอคิว จึงให้ tab ที่ไม่ได้ดูปิดการเชื่อมต่อ และ cache CSS/JS ไว้ใน browser อ่านผลรีวิวแล้ว: ทิว approve T-302, T-401, T-403–T-407 ทั้งหมดอยู่ในสถานะ Reviewed ไม่มีงานที่ Reject หรือ Hold และ T-201, T-202 ยังรอรีวิว", "changes": [ "live.js: ปิด EventSource เมื่อ tab ถูกซ่อน และต่อใหม่ + ดึงข้อมูลล่าสุดเมื่อกลับมา", "main.go: staticVersion (hash ของไฟล์ static), template func asset, Cache-Control แบบ immutable เมื่อ ?v ตรง", "Test ใหม่ TestStaticCaching", "บันทึกผลรีวิวของทิวลงใน repo" ], "tasks": [ "T-408", "T-302", "T-401", "T-403", "T-404", "T-405", "T-406", "T-407" ], "refs": [ "tracker/static/live.js", "tracker/main.go", "tracker/templates/layout.html" ] }, { "id": "C-020", "at": "2026-10-30T20:00:07+07:00", "agent": "Codex", "title": "Use cases แบบตาราง พร้อม diagram editor บันทึกส่วนกลาง", "summary": "เพิ่มเมนู Use cases ตามคำขอ ใช้แหล่งข้อมูลเดิมและแยก diagram ฉบับร่างออกจากข้อกำหนด ผู้ใช้เลือกบันทึกส่วนกลางและขอ Table view ต่อมาขอจัดกึ่งกลางพร้อมซูมให้เห็นทั้งหมดเริ่มต้น จึงเพิ่ม Fit และการเลื่อนมุมมอง อ่าน review แล้วไม่มี Reject / Hold ที่ต้องแก้ก่อน เรียกใช้งานเวอร์ชันใหม่ที่ 8099 ตามที่ผู้ใช้อนุญาต", "changes": [ "ตารางค้นหา / กรอง 162 Use cases ใน 35 modules และหน้า actors / จุดเริ่มต้น / ผลลัพธ์ / ขั้นตอน / ความสัมพันธ์", "SVG editor: shape 4 แบบ, title/description/type, ลากตำแหน่งและเส้นเชื่อม, ข้อความบนเส้นและหัวลูกศรต้น–ปลาย, ลบ, undo/redo, zoom, Fit ทั้งหมดเริ่มต้น, pan และ export JSON", "บันทึก JSON ส่วนกลางแบบ atomic พร้อม validation และ revision conflict; live refresh และการบันทึกล้มเหลวไม่ล้างงานใน editor", "ทดสอบ Go พร้อม race detector และ vet; Browser ผ่าน 23 ข้อ รวม SSE จริง สองผู้ใช้ และ Fit/กึ่งกลาง", "อัปเดตคู่มือและแหล่งความรู้ งาน T-409 รอผู้ใช้ตรวจ ไม่มีการสร้าง worktree หรือ workspace ใหม่" ], "tasks": [ "T-409" ], "refs": [ "tracker/usecases.go", "tracker/diagram.go", "tracker/static/usecases.js", "tracker/templates/usecases.html", "tracker/e2e/usecases-check.mjs", "tracker/README.md", "docs/agent/12-use-cases.md" ] }, { "id": "C-021", "at": "2026-10-30T20:04:29+07:00", "agent": "Codex", "title": "Diagram ขยับตามกริดและใช้เส้นเชื่อมหักมุม", "summary": "ปรับตามคำขอระหว่างทดลองใช้: จัดตำแหน่ง shape ให้ตรงกริด และเปลี่ยนเส้นเชื่อมจากแนวอิสระเป็นแนวนอน/แนวตั้งหักมุม 90° โดยยังคง Fit ทั้งหมดและจัดกึ่งกลางเป็นค่าเริ่มต้น", "changes": [ "การลาก เพิ่ม shape และขยับด้วยแป้นพิมพ์ snap พิกัดทีละ 20 หน่วย", "กริดวาดใน SVG จึงซูมและเลื่อนไปพร้อมกับ diagram", "เส้นเชื่อมใช้ orthogonal routing เลือกขอบ shape และปรับเส้นตามตำแหน่ง รวมเส้นย้อนกลับและ self-loop; เส้นขณะกำลังลากก็หักมุม", "Browser ผ่าน 24 ข้อ รวมยืนยันว่าทุกช่วงเส้นเป็นแนวนอน/แนวตั้งและพิกัดที่บันทึกตรงกริด", "รีสตาร์ตเวอร์ชันล่าสุดบนพอร์ตหลัก 8099 ตามสิทธิ์ที่ผู้ใช้ให้ไว้" ], "tasks": [ "T-409" ], "refs": [ "tracker/static/usecases.js", "tracker/static/usecases.css", "tracker/templates/usecases.html", "tracker/e2e/usecases-check.mjs" ] }, { "id": "C-022", "at": "2026-10-30T20:14:46+07:00", "agent": "Codex", "title": "จัดกลุ่ม Use cases อ่าน description ครบ ซูมด้วยเมาส์ และย้าย Current Task", "summary": "ทำคำขอต่อเนื่องครบ: Ctrl + scroll ซูมตามจุดเมาส์, description แสดงครบหลายบรรทัดพร้อมขยาย shape, แท็บกลุ่มงานพร้อมตารางไม่จำกัดความสูง และ Current Task อยู่ก่อน Milestone ในหน้าภาพรวม รีสตาร์ตใช้งานจริงที่ 8099 แล้ว", "changes": [ "Ctrl + scroll ขึ้น/ลงซูม 1–300% โดยรักษาจุดใต้เมาส์; dropdown แสดงสเกลจริงและไม่ทำให้ diagram มีสถานะยังไม่บันทึก", "ตัดบรรทัด Title/Description ตามคำและกลุ่มตัวอักษรไทย ไม่ตัดทิ้ง ขยาย shape ทั้งสี่แบบ และเว้นช่องร่างใหม่ตามความสูงจริง", "แท็บ Frontend / Backoffice / Integration ใช้ร่วมกับ filters ได้ แสดง counts และเหตุผลใน tooltip กลุ่มซ้อนกันได้ เป็นการอนุมานเบื้องต้นไม่ใช่ข้อสรุปหน้าจอ/API", "ตารางแสดงยาวตามเนื้อหาโดยไม่ล็อคความสูง; ย้าย Current Task ไปก่อน Milestone ทั้งหมด", "Go race tests และ vet ผ่าน Browser regression ผ่าน 41 ข้อ และตรวจพอร์ตหลักแบบอ่านอย่างเดียวผ่าน รวมลำดับ Current Task" ], "tasks": [ "T-409", "T-410" ], "refs": [ "tracker/static/usecases.js", "tracker/templates/usecases.html", "tracker/usecase_channels.go", "tracker/usecases.go", "tracker/templates/overview.html", "tracker/e2e/usecases-check.mjs", "tracker/README.md" ] }, { "id": "C-023", "at": "2026-10-30T20:44:48+07:00", "agent": "Codex", "title": "Workflow ซ้ายไปขวา Revision history Approve และตารางหุบตาม Module", "summary": "ทำคำขอชุดต่อเนื่องครบ: layout แนวนอน, ประวัติการบันทึกพร้อม rollback, อนุมัติราย Use case ให้ Agent ใช้พัฒนา, toolbar อังกฤษ และตารางจัดกลุ่ม Module ชื่อเต็ม งานเหล่านี้รอผู้ใช้ตรวจ ไม่ได้ approve Use case จริงแทนผู้ใช้", "changes": [ "ร่างเริ่มต้นแนวนอนตามขนาดข้อความและปุ่ม Arrange horizontally ที่ไม่ล้าง shape/เส้นพร้อม Undo", "Snapshot ทุก Save ในไฟล์เดียวกับ current graph เขียน atomic; Restore สร้าง revision ใหม่และรักษาประวัติ รองรับไฟล์ที่บันทึกก่อนเปิดใช้ history", "Approve บันทึก reviewer/time/note ผูก source hash และ diagram revision/hash พร้อม audit trail; source/save/restore ทำให้ต้องยืนยันใหม่", "เพิ่ม API history/restore/approval พร้อม CSRF validation และ revision conflict รวมกติกาให้ Agent ตรวจ approval ล่าสุดก่อนพัฒนา TNSU product", "Toolbar แยก Shapes/Edit/View + More ด้วยปุ่มอังกฤษ; ตารางหุบ/ขยายตาม Module แสดงชื่อเต็มและจำสถานะผ่าน live refresh", "Go race suite และ vet ผ่าน Browser ผ่าน 59 ข้อด้วยข้อมูล /tmp รวมการบันทึก-approve-เปลี่ยน-rollback และกรณี approve ร่างครั้งแรก" ], "tasks": [ "T-411", "T-412", "T-413", "T-414" ], "refs": [ "tracker/diagram_history.go", "tracker/usecase_approval.go", "tracker/static/usecases.js", "tracker/static/usecase-groups.js", "tracker/templates/usecases.html", "tracker/e2e/usecases-check.mjs", "tracker/README.md", "AGENTS.md" ] }, { "id": "C-024", "at": "2026-10-30T21:08:18+07:00", "agent": "Codex", "title": "เก็บ UI Approval/History และ Export PNG แบบพื้นหลังขาว/โปร่งใส", "summary": "จัด review panels ให้เป็นสัดส่วน และเพิ่ม Export PNG ที่เก็บภาพครบทั้ง diagram พร้อมเลือกพื้นหลัง อ่านผลรีวิวล่าสุดพบ T-408–T-414 ได้รับอนุมัติแล้วและคงสถานะ Reviewed ตามฟอร์มเดิม ขณะนี้รับงานถัดไปเพื่อเติม task brief ที่ยังมีแต่หัวข้อ", "changes": [ "การ์ด Approval แสดงสถานะ ผู้ตรวจ เวลา หมายเหตุ และ audit timeline; เมื่ออนุมัติแล้วซ่อนฟอร์มว่าง", "Revision history แยกวันที่/เวลา รายละเอียด Current และ actions พร้อม empty/error/loading; Refresh ล้มเหลวไม่ล้างรายการเดิม", "More → Export PNG เปิด dialog เลือก White / Transparent; ส่งออกเต็ม diagram ไม่รวมกริด/จุดลาก ปรับขนาดตามขีดจำกัด canvas", "Browser ผ่าน 70 ข้อ รวมตรวจ alpha channel และขนาด PNG จริง รวม screenshot ธีมสว่าง/มืด/มือถือ" ], "tasks": [ "T-415", "T-416" ], "refs": [ "tracker/static/usecase-review.css", "tracker/static/usecase-export.js", "tracker/static/usecases.js", "tracker/templates/usecases.html", "tracker/e2e/usecases-check.mjs" ] }, { "id": "C-025", "at": "2026-10-30T21:19:31+07:00", "agent": "Codex", "title": "เติม task briefs และคำถามเพื่อเริ่มงานได้จริง", "summary": "ผู้ใช้พบว่า T-303 และหลายงานมีเพียงหัวข้อ จึง audit backlog เทียบฐานความรู้และเติมรายละเอียด 19 รายการ โดย 13 งานที่ยังไม่เริ่มมี 39 คำถามระบุผู้ที่ควรตอบ/เหตุผลอย่างชัดเจน ส่วนงานเก่าเพิ่มบริบทตามหลักฐานและคงสถานะ/ผลรีวิวเดิม", "changes": [ "เพิ่ม description, deliverables, dependencies, suggested_owner และ questions ในข้อมูล Task และหน้ารายละเอียด", "T-303 มีขั้นตอนเก็บ mandate/inventory/capacity/RTO-RPO/งบและเจ้าของ operation ก่อนเปรียบเทียบ hosting และให้ผู้มีอำนาจยืนยัน ADR", "เติม brief ให้ T-203/T-304/T-501–T-506/T-601–T-602/T-701–T-702 พร้อมคำถามด้านขอบเขต/ผู้ตัดสินใจ/ข้อมูลต้นทาง ไม่รอค่าคงที่ที่ต้องเป็น configuration", "เพิ่มบริบทให้ T-102/T-103/T-105/T-106/T-301 และแก้ summary T-302 เป็นผลเลือก SQL Server ที่อนุมัติแล้ว", "คำถามมี ID คงที่ ผู้ที่ควรตอบ เหตุผล และช่องบันทึกคำตอบ/ผู้ยืนยัน/เวลา/source; ยังไม่มีการเลือก hosting หรือแต่งคำตอบให้", "Go race suite และ vet ผ่าน Browser task brief 9 ข้อผ่าน พร้อมตรวจ refs ทุกไฟล์มีอยู่จริง และ screenshot T-303 บน desktop/mobile" ], "tasks": [ "T-417", "T-203", "T-303", "T-304", "T-501", "T-502", "T-503", "T-504", "T-505", "T-506", "T-601", "T-602", "T-701", "T-702" ], "refs": [ "tracker/data/milestones.json", "tracker/templates/task.html", "tracker/data.go", "tracker/task_brief_test.go", "tracker/e2e/task-brief-check.mjs", "docs/agent/15-preparation-task-briefs.md", "AGENTS.md" ] }, { "id": "C-026", "at": "2026-10-31T02:12:41+07:00", "agent": "Codex", "title": "เก็บงานที่ผ่านรีวิวและตรวจชุดส่งมอบก่อน commit", "summary": "อ่านผลรีวิวล่าสุดแล้ว T-408–T-417 อยู่ใน Reviewed ครบ ไม่มี Reject/Hold ค้าง จึงรวบรวม code เอกสาร task briefs และผลอนุมัติให้เป็นชุดส่งมอบเดียว โดยคงงานและประวัติรีวิวไว้ครบ ตรวจใหม่บนข้อมูลชั่วคราวก่อนบันทึก Git", "changes": [ "เก็บฟีเจอร์ Use cases/diagram editor, revision history, approval gate, PNG export, module groups และ UI ตามงานที่ผู้ใช้อนุมัติแล้ว", "เก็บ task briefs 19 รายการ คำถาม 39 ข้อ และเอกสารกติกา Agent ที่ผ่านรีวิว โดยไม่เปลี่ยนคำถามที่ยังเปิดหรือผลตัดสินใจ hosting", "อ่านผลอนุมัติล่าสุดของ T-415/T-416/T-417 จาก review form และรักษาผล/เวลาเดิม ไม่เติมชื่อผู้รีวิวแทนข้อมูลที่ว่าง", "Go test -race -count=1 ./... และ go vet ./... ผ่าน พร้อม syntax/JSON/diff checks", "Browser regression ผ่าน 70 ข้อ และ task briefs ผ่าน 9 ข้อบนข้อมูล /tmp รวม 79 assertions โดยไม่แก้ Use case จริง" ], "tasks": [ "T-408", "T-409", "T-410", "T-411", "T-412", "T-413", "T-414", "T-415", "T-416", "T-417" ], "refs": [ "tracker/data/milestones.json", "tracker/data/tests.json", "tracker/README.md", "docs/agent/15-preparation-task-briefs.md", "AGENTS.md" ] }, { "id": "C-027", "at": "2026-10-31T02:15:17+07:00", "agent": "Codex", "title": "เปลี่ยนงานจัดทำ matrix ฉบับร่างที่เสร็จแล้วเป็น Done", "summary": "ตามคำขอให้ปิดงานที่เรียบร้อยแล้ว เปลี่ยน T-201/T-202 จาก Review เป็น Done ในขอบเขตการจัดทำฉบับร่าง v0.1 เอกสารมีอยู่ครบตาม checkpoint C-004 ส่วนคำถามและการยืนยันบทบาท/อำนาจ/สิทธิ์จาก BA/Security ยังเปิด review.todo ไว้ตามจริง", "changes": [ "T-201 Role Matrix draft และ T-202 Security Matrix draft เป็น Done พร้อม finished อ้างอิงเวลาบันทึกงานเสร็จใน C-004", "คง review state/checklist/history เดิมทุกช่อง และไม่ตั้ง Reviewed/Approve แทนผู้ตรวจ", "คงสถานะและข้อมูล task อื่นทุกงาน รวมงานที่ Reviewed แล้วและงาน Todo ที่ยังรอข้อมูล" ], "tasks": [ "T-201", "T-202" ], "refs": [ "tracker/data/milestones.json", "docs/agent/13-role-matrix.md", "docs/agent/14-security-matrix.md" ] }, { "id": "C-028", "at": "2026-10-31T02:59:35+07:00", "agent": "Codex", "title": "ทบทวน Use cases ครบทุกกรณีและแก้ทางแยกที่กระทบสิทธิ์ผู้เรียน", "summary": "ตรวจครบ 162 กรณี เทียบแหล่งทางการไทยและแยก UNI/SS ไม่ทำผู้ปกครองเป็น gate มหาวิทยาลัยทุกคน แก้ข้อเสนอ workflow 60 รายการ เพิ่ม decision 47 จุด พร้อมเปิดคำถามนโยบาย ไม่ approve แทนผู้ใช้", "changes": [ "เพิ่มรายงานผลครบ 162 รายการและคำถาม UR-Q01…10 พร้อมผู้ตอบที่เสนอ/หลักฐานไทย", "แก้เส้นเอกสารเพิ่มให้วนกลับตรวจ แยกไม่เปิดรุ่น รอเงิน ต่อ/ย้ายหอ ฉุกเฉินและ EC ไม่ไหลไปผลสำเร็จผิด", "ใช้ canonical wf metadata ร่วมกันใน draft/reset/generated docs พร้อม source hash และคง diagram ที่บันทึกเดิม", "ตรวจโครงสร้างและ terminal paths ทุก use case; Go/race/vet ผ่าน; browser 70+25 ผ่าน; รันเวอร์ชันใหม่บน 8099" ], "tasks": [ "T-108" ], "refs": [ "docs/agent/16-use-case-review-2026-10-31.md", "docs/agent/reviews/2026-10-31-use-case-audit.json", "use_cases/UC1-Explorer.dc.html", "tracker/workflow.go", "tracker/workflow_test.go", "tracker/static/usecases.js", "tracker/e2e/workflow-review-check.mjs", "tracker/data/tests.json" ] }, { "id": "C-029", "at": "2026-10-31T11:21:44+07:00", "agent": "Codex", "title": "Mockup workspace ใช้ screen artifacts ร่วมกันใน Sitemap และ Page flow", "summary": "เพิ่มเมนู Mockup ครบ 3 หน้าย่อย พร้อม 170 screen records และ Page flow ตาม canonical 162 Use cases แยกภาพ/state/component/source และ revision ที่แก้ร่วมกันอย่างเป็นระบบ", "changes": [ "นำเข้ารหัสหน้าจอ 164 รหัสเป็น wireframe ร่าง 6 states และอ้างภาพ proposal เดิม 6 ภาพ พร้อม provenance ที่ไม่อ้างว่า final", "สร้าง Sitemap ภาพหน้าจอบนลงล่างและตัวกรอง Module/Channel; Page flow ซ้ายไปขวารักษา source decisions/labels/loops พร้อม mapping ที่แก้ได้", "เพิ่ม Screen Listing/detail และ links กลับ Use case / artifact / component contracts", "เพิ่ม grid/zoom/pan/fit/arrange, repeat screen instances, labelled connections/arrowheads, Undo/Redo และ revision/conflict/restore แบบ atomic", "ตรวจ artifacts/ทุก flow, Go/race/vet และ browser 147 ข้อ ผ่านบนข้อมูลชั่วคราว; เปลี่ยนตัวรัน 8099 และตรวจ GET โดยไม่บันทึกข้อมูลทดสอบจริง" ], "tasks": [ "T-418" ], "refs": [ "mockups/README.md", "docs/agent/17-mockup-workspace.md", "tracker/mockup_catalog.go", "tracker/mockup_store.go", "tracker/mockups.go", "tracker/static/mockups.js", "tracker/e2e/mockups-check.mjs", "tracker/data/tests.json" ] } ]