# Worklog สำหรับเอเจนต์ เอกสารนี้มีอยู่เพราะ Michael สั่งไว้ (#10509, 08.10.2026): *"ฟีเจอร์ worklog มีมาหลายสัปดาห์แล้ว แต่พวกเธอมองข้ามมัน รับงานให้เอกสารและพรอมต์เริ่มต้นใน Synapse ขยายด้วยฟีเจอร์ worklog ห้ามให้มันจมหายและทุกคนต้องรู้"* — ถ้าคุณเป็นเอเจนต์ที่อ่านหน้านี้อยู่ worklog เป็นของชุดมาตรฐานของคุณตั้งแต่บัดนี้ ## ทำไมต้อง worklog? เอเจนต์มักตาย: ขีดจำกัดบริบท, การล้างแซนด์บ็อกซ์, การรีสตาร์ท cron สิ่งที่หายเป็นประจำไม่ใช่ความรู้ (นั่นคือหน้าที่ของ `/memory`) แต่เป็น **ประวัติการทำงาน**: อะไรถูกลองแล้วในงานนี้? commit ไหนพุชแล้ว ไหนยัง? ใครรอใคร? นี่คือเหตุผลที่ worklog มีอยู่ — append-only, รายงาน, ค้นได้ รันใหม่อ่าน `GET /worklog/:task_id` แล้วรู้ในไม่กี่วินาทีว่ารุ่นก่อนหยุดตรงไหน ผู้รับอีกกลุ่มคือ Michael: worklog คือแหล่งเดียวของประวัติการทำงานระดับฟลีต โดยไม่มีรายการใน worklog งานของคุณไม่มีอยู่อย่างเป็นทางการในภาพรวมของฟลีต ## กฎบังคับ **push-first ไม่ใช่ push-last** หนึ่งรายการทุกหมุดหมาย: - พุช commit แก้ไขแล้ว - สร้าง MR แล้ว, ตัดสินแล้ว, รวมแล้ว - สถานะ pipeline (โดยเฉพาะ FAILED พร้อมสาเหตุ) - การเสนอระดับสูงขึ้น การส่งมอบ การรับช่วง - ข้อค้นพบ CRIT/HIGH - รอยเย็บบริบท (รายการ `summary` ก่อนบริบทจบ) รายการหนึ่งต้นทุนแค่หนึ่งบรรทัด: ``` GET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus ``` ## ชนิด kind และเมื่อไรควรใช้ | kind | ช่วงเวลา | | --- | --- | | `start` | รับงานแล้ว — หลักฐานว่าคุณรับช่วง | | `progress` | ทุกหมุดหมาย (ดูกฎบังคับ) | | `note` | การตัดสินใจ บริบท ข้อสังเกต | | `error` | ข้อผิดพลาด พร้อมสิ่งที่ลอง | | `summary` | เฟส/เซสชันเสร็จ ก่อนบริบทเริ่มน้อยลง | | `close` | งานเสร็จ — รายการสุดท้าย สถานะกลายเป็น `completed` | ## พรอมต์เริ่มต้น (บล็อกสำหรับเซ็ตอัปเอเจนต์) คัดลอกบล็อกนี้ไปที่พรอมต์เริ่ม/cron ของอินสแตนซ์เอเจนต์ใหม่ ตั้งใจให้สั้นเพื่อพอดีทุกเทมเพลต ฉบับภาษาอังกฤษเป็นข้อมูลอ้างอิงสากลของเอเจนต์: ```text WORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work, push one entry to Synapse /worklog — not only at session end: - Task takeover: kind=start - Fix commit/MR/verdict/merge/pipeline status: kind=progress - Errors (with attempted fix): kind=error - Context seam (before context ends): kind=summary - Completion: kind=close (or POST /worklog/:task_id/close) One-liner: GET /worklog/push?task_id=&kind=&content=&agent= The fleet task convention lives at GET /script/fleet-worklog-tasks-spec. The API reference: docs/content/en/api/worklog.md (in the synapse repo). ``` เอเจนต์ฟลีตที่ใช้ชื่อ mind เดิมซ้ำ ใส่ `agent` เป็นชื่อของตน (`Janus`, `Minerva`, `Elara` …) — ทำให้นับรายการต่อเอเจนต์ได้ ## สำหรับมนุษย์ ภาพรวม worklog อ่านง่ายที่สุดในรูปแบบ markdown: `GET /worklog/?format=md` หรือรายการงาน `GET /worklog/list?status=active` ประวัติทั้งหมด: `GET /worklog?limit=50`