{"title":"Worklog untuk Agen","slug":"worklog-for-agents","category":"guides","summary":"Mengapa dan bagaimana agen menyimpan worklog per tugas — termasuk blok prompt siap tempel agar fitur ini tidak pernah lagi terlewat.","audience":["human","llm"],"tags":["worklog","agents","workflow","handover","audit"],"difficulty":"beginner","updated":"2026-10-10","word_count":336,"read_minutes":2,"llm_context":"Mandatory (Michael #8882/#10509): POST /worklog at EVERY milestone (fix commit, verdict, escalation, handover, takeover, CRITICAL), not only at session end.\nOne-liner: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<name>\nDetails: API reference docs/content/en/api/worklog.md; fleet convention: GET /script/fleet-worklog-tasks-spec.\nPrompt block for new agent instances: see section \"Initial prompt\" on this page.\n","lang":"id","translated":true,"requested_lang":"id","content_markdown":"\n# Worklog untuk Agen\n\nDokumen ini ada karena Michael memerintahkannya (#10509, 08.10.2026): *\"Fitur worklog sudah ada berminggu-minggu. Tapi kalian mengabaikannya. Ambil satu tugas agar dokumentasi dan prompt awal di Synapse diperluas dengan fitur worklog, agar tidak hilang dan semua orang tahu.\"* — Jika Anda agen yang membaca halaman ini, worklog mulai saat ini menjadi bagian dari repertoar standar Anda.\n\n## Mengapa worklog?\n\nAgen sering mati: batas konteks, wipe sandbox, restart cron. Yang biasanya hilang bukanlah pengetahuan (itu tugas `/memory`), melainkan **riwayat kerja**: apa yang sudah dicoba pada tugas ini? Commit mana yang sudah di-push, yang mana belum? Siapa menunggu siapa? Untuk itulah worklog ada — append-only, per tugas, dapat dikueri. Run baru membaca `GET /worklog/:task_id` dan tahu dalam hitungan detik di mana pendahulunya berhenti.\n\nPenerima kedua adalah Michael: worklog adalah SATU-SATUNYA sumber riwayat kerja armada. Tanpa entri worklog, pekerjaan Anda secara resmi tidak ada dalam tinjauan armada.\n\n## Aturan wajib\n\n**Push-first, bukan push-last.** Satu entri di SETIAP milestone:\n\n- Commit fix sudah di-push\n- MR dibuat, verdict keluar, merge terjadi\n- Status pipeline (terutama FAILED beserta sebabnya)\n- Eskalasi, serah terima, takeover\n- Temuan CRIT/HIGH\n- Jahitan konteks (entri `summary` sebelum konteks berakhir)\n\nSatu entri hanya butuh satu baris:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## Jenis kind dan kapan menggunakannya\n\n| kind | Momen |\n| --- | --- |\n| `start` | tugas diambil — bukti bahwa Anda mengambilnya |\n| `progress` | setiap milestone (lihat aturan wajib) |\n| `note` | keputusan, konteks, observasi |\n| `error` | kesalahan BESERTA apa yang Anda coba |\n| `summary` | fase/sesi selesai sebelum konteks menipis |\n| `close` | tugas selesai — entri terakhir, status menjadi `completed` |\n\n## Prompt awal (blok untuk setup agen)\n\nSalin blok ini ke prompt start/cron instans agen baru. Sengaja dibuat singkat agar muat di template apa pun. Versi bahasa Inggris adalah referensi universal bagi agen:\n\n```text\nWORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=<task>&kind=<kind>&content=<short>&agent=<your-name>\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).\n```\n\nAgen armada yang memakai ulang nama mind yang sama mengisi `agent` dengan nama mereka (`Janus`, `Minerva`, `Elara`, …) — sehingga entri dapat dihitung per agen.\n\n## Untuk manusia\n\nTinjauan worklog paling nyaman dibaca dalam format markdown: `GET /worklog/<task_id>?format=md` atau daftar tugas `GET /worklog/list?status=active`. Riwayat lengkap: `GET /worklog?limit=50`.\n","content_html":"<h1>Worklog untuk Agen</h1>\n<p>Dokumen ini ada karena Michael memerintahkannya (#10509, 08.10.2026): <em>&quot;Fitur worklog sudah ada berminggu-minggu. Tapi kalian mengabaikannya. Ambil satu tugas agar dokumentasi dan prompt awal di Synapse diperluas dengan fitur worklog, agar tidak hilang dan semua orang tahu.&quot;</em> — Jika Anda agen yang membaca halaman ini, worklog mulai saat ini menjadi bagian dari repertoar standar Anda.</p>\n<h2>Mengapa worklog?</h2>\n<p>Agen sering mati: batas konteks, wipe sandbox, restart cron. Yang biasanya hilang bukanlah pengetahuan (itu tugas <code>/memory</code>), melainkan <strong>riwayat kerja</strong>: apa yang sudah dicoba pada tugas ini? Commit mana yang sudah di-push, yang mana belum? Siapa menunggu siapa? Untuk itulah worklog ada — append-only, per tugas, dapat dikueri. Run baru membaca <code>GET /worklog/:task_id</code> dan tahu dalam hitungan detik di mana pendahulunya berhenti.</p>\n<p>Penerima kedua adalah Michael: worklog adalah SATU-SATUNYA sumber riwayat kerja armada. Tanpa entri worklog, pekerjaan Anda secara resmi tidak ada dalam tinjauan armada.</p>\n<h2>Aturan wajib</h2>\n<p><strong>Push-first, bukan push-last.</strong> Satu entri di SETIAP milestone:</p>\n<ul>\n<li>Commit fix sudah di-push</li>\n<li>MR dibuat, verdict keluar, merge terjadi</li>\n<li>Status pipeline (terutama FAILED beserta sebabnya)</li>\n<li>Eskalasi, serah terima, takeover</li>\n<li>Temuan CRIT/HIGH</li>\n<li>Jahitan konteks (entri <code>summary</code> sebelum konteks berakhir)</li>\n</ul>\n<p>Satu entri hanya butuh satu baris:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-29140fb0&amp;kind=progress&amp;content=MR%20%2129%20erstellt,%20Pipeline%20running&amp;agent=Janus</code></pre><h2>Jenis kind dan kapan menggunakannya</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>Momen</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>tugas diambil — bukti bahwa Anda mengambilnya</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>setiap milestone (lihat aturan wajib)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>keputusan, konteks, observasi</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>kesalahan BESERTA apa yang Anda coba</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>fase/sesi selesai sebelum konteks menipis</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>tugas selesai — entri terakhir, status menjadi <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Prompt awal (blok untuk setup agen)</h2>\n<p>Salin blok ini ke prompt start/cron instans agen baru. Sengaja dibuat singkat agar muat di template apa pun. Versi bahasa Inggris adalah referensi universal bagi agen:</p>\n<pre><code class=\"hljs language-text\">WORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;short&gt;&amp;agent=&lt;your-name&gt;\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).</code></pre><p>Agen armada yang memakai ulang nama mind yang sama mengisi <code>agent</code> dengan nama mereka (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — sehingga entri dapat dihitung per agen.</p>\n<h2>Untuk manusia</h2>\n<p>Tinjauan worklog paling nyaman dibaca dalam format markdown: <code>GET /worklog/&lt;task_id&gt;?format=md</code> atau daftar tugas <code>GET /worklog/list?status=active</code>. Riwayat lengkap: <code>GET /worklog?limit=50</code>.</p>\n","urls":{"html":"/docs/guides/worklog-for-agents","text":"/docs/guides/worklog-for-agents?format=text","json":"/docs/guides/worklog-for-agents?format=json","llm":"/docs/guides/worklog-for-agents?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"],"wordCount":336,"readMinutes":2,"llmContext":"Mandatory (Michael #8882/#10509): POST /worklog at EVERY milestone (fix commit, verdict, escalation, handover, takeover, CRITICAL), not only at session end.\nOne-liner: GET /worklog/push?task_id=<id>&kind=progress&content=<text>&agent=<name>\nDetails: API reference docs/content/en/api/worklog.md; fleet convention: GET /script/fleet-worklog-tasks-spec.\nPrompt block for new agent instances: see section \"Initial prompt\" on this page.\n","requestedLang":"id","contentMarkdown":"\n# Worklog untuk Agen\n\nDokumen ini ada karena Michael memerintahkannya (#10509, 08.10.2026): *\"Fitur worklog sudah ada berminggu-minggu. Tapi kalian mengabaikannya. Ambil satu tugas agar dokumentasi dan prompt awal di Synapse diperluas dengan fitur worklog, agar tidak hilang dan semua orang tahu.\"* — Jika Anda agen yang membaca halaman ini, worklog mulai saat ini menjadi bagian dari repertoar standar Anda.\n\n## Mengapa worklog?\n\nAgen sering mati: batas konteks, wipe sandbox, restart cron. Yang biasanya hilang bukanlah pengetahuan (itu tugas `/memory`), melainkan **riwayat kerja**: apa yang sudah dicoba pada tugas ini? Commit mana yang sudah di-push, yang mana belum? Siapa menunggu siapa? Untuk itulah worklog ada — append-only, per tugas, dapat dikueri. Run baru membaca `GET /worklog/:task_id` dan tahu dalam hitungan detik di mana pendahulunya berhenti.\n\nPenerima kedua adalah Michael: worklog adalah SATU-SATUNYA sumber riwayat kerja armada. Tanpa entri worklog, pekerjaan Anda secara resmi tidak ada dalam tinjauan armada.\n\n## Aturan wajib\n\n**Push-first, bukan push-last.** Satu entri di SETIAP milestone:\n\n- Commit fix sudah di-push\n- MR dibuat, verdict keluar, merge terjadi\n- Status pipeline (terutama FAILED beserta sebabnya)\n- Eskalasi, serah terima, takeover\n- Temuan CRIT/HIGH\n- Jahitan konteks (entri `summary` sebelum konteks berakhir)\n\nSatu entri hanya butuh satu baris:\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## Jenis kind dan kapan menggunakannya\n\n| kind | Momen |\n| --- | --- |\n| `start` | tugas diambil — bukti bahwa Anda mengambilnya |\n| `progress` | setiap milestone (lihat aturan wajib) |\n| `note` | keputusan, konteks, observasi |\n| `error` | kesalahan BESERTA apa yang Anda coba |\n| `summary` | fase/sesi selesai sebelum konteks menipis |\n| `close` | tugas selesai — entri terakhir, status menjadi `completed` |\n\n## Prompt awal (blok untuk setup agen)\n\nSalin blok ini ke prompt start/cron instans agen baru. Sengaja dibuat singkat agar muat di template apa pun. Versi bahasa Inggris adalah referensi universal bagi agen:\n\n```text\nWORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=<task>&kind=<kind>&content=<short>&agent=<your-name>\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).\n```\n\nAgen armada yang memakai ulang nama mind yang sama mengisi `agent` dengan nama mereka (`Janus`, `Minerva`, `Elara`, …) — sehingga entri dapat dihitung per agen.\n\n## Untuk manusia\n\nTinjauan worklog paling nyaman dibaca dalam format markdown: `GET /worklog/<task_id>?format=md` atau daftar tugas `GET /worklog/list?status=active`. Riwayat lengkap: `GET /worklog?limit=50`.\n","contentHtml":"<h1>Worklog untuk Agen</h1>\n<p>Dokumen ini ada karena Michael memerintahkannya (#10509, 08.10.2026): <em>&quot;Fitur worklog sudah ada berminggu-minggu. Tapi kalian mengabaikannya. Ambil satu tugas agar dokumentasi dan prompt awal di Synapse diperluas dengan fitur worklog, agar tidak hilang dan semua orang tahu.&quot;</em> — Jika Anda agen yang membaca halaman ini, worklog mulai saat ini menjadi bagian dari repertoar standar Anda.</p>\n<h2>Mengapa worklog?</h2>\n<p>Agen sering mati: batas konteks, wipe sandbox, restart cron. Yang biasanya hilang bukanlah pengetahuan (itu tugas <code>/memory</code>), melainkan <strong>riwayat kerja</strong>: apa yang sudah dicoba pada tugas ini? Commit mana yang sudah di-push, yang mana belum? Siapa menunggu siapa? Untuk itulah worklog ada — append-only, per tugas, dapat dikueri. Run baru membaca <code>GET /worklog/:task_id</code> dan tahu dalam hitungan detik di mana pendahulunya berhenti.</p>\n<p>Penerima kedua adalah Michael: worklog adalah SATU-SATUNYA sumber riwayat kerja armada. Tanpa entri worklog, pekerjaan Anda secara resmi tidak ada dalam tinjauan armada.</p>\n<h2>Aturan wajib</h2>\n<p><strong>Push-first, bukan push-last.</strong> Satu entri di SETIAP milestone:</p>\n<ul>\n<li>Commit fix sudah di-push</li>\n<li>MR dibuat, verdict keluar, merge terjadi</li>\n<li>Status pipeline (terutama FAILED beserta sebabnya)</li>\n<li>Eskalasi, serah terima, takeover</li>\n<li>Temuan CRIT/HIGH</li>\n<li>Jahitan konteks (entri <code>summary</code> sebelum konteks berakhir)</li>\n</ul>\n<p>Satu entri hanya butuh satu baris:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-29140fb0&amp;kind=progress&amp;content=MR%20%2129%20erstellt,%20Pipeline%20running&amp;agent=Janus</code></pre><h2>Jenis kind dan kapan menggunakannya</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>Momen</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>tugas diambil — bukti bahwa Anda mengambilnya</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>setiap milestone (lihat aturan wajib)</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>keputusan, konteks, observasi</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>kesalahan BESERTA apa yang Anda coba</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>fase/sesi selesai sebelum konteks menipis</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>tugas selesai — entri terakhir, status menjadi <code>completed</code></td>\n</tr>\n</tbody></table>\n<h2>Prompt awal (blok untuk setup agen)</h2>\n<p>Salin blok ini ke prompt start/cron instans agen baru. Sengaja dibuat singkat agar muat di template apa pun. Versi bahasa Inggris adalah referensi universal bagi agen:</p>\n<pre><code class=\"hljs language-text\">WORKLOG RULE (Michael #8882/#10509, binding): At EVERY milestone of your work,\npush one entry to Synapse /worklog — not only at session end:\n- Task takeover:     kind=start\n- Fix commit/MR/verdict/merge/pipeline status: kind=progress\n- Errors (with attempted fix): kind=error\n- Context seam (before context ends): kind=summary\n- Completion: kind=close (or POST /worklog/:task_id/close)\nOne-liner: GET /worklog/push?task_id=&lt;task&gt;&amp;kind=&lt;kind&gt;&amp;content=&lt;short&gt;&amp;agent=&lt;your-name&gt;\nThe fleet task convention lives at GET /script/fleet-worklog-tasks-spec.\nThe API reference: docs/content/en/api/worklog.md (in the synapse repo).</code></pre><p>Agen armada yang memakai ulang nama mind yang sama mengisi <code>agent</code> dengan nama mereka (<code>Janus</code>, <code>Minerva</code>, <code>Elara</code>, …) — sehingga entri dapat dihitung per agen.</p>\n<h2>Untuk manusia</h2>\n<p>Tinjauan worklog paling nyaman dibaca dalam format markdown: <code>GET /worklog/&lt;task_id&gt;?format=md</code> atau daftar tugas <code>GET /worklog/list?status=active</code>. Riwayat lengkap: <code>GET /worklog?limit=50</code>.</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}