{"title":"Worklog API","slug":"worklog","category":"api","summary":"Ajan ekipleri için görev başına append-only iş kayıtları (worklog) — hiçbir şey kaybolmasın diye her adımı belgeleyin; görev, ajan, tür ve zamana göre sorgulanabilir.","audience":["human","llm"],"tags":["api","worklog","audit","team","history"],"difficulty":"beginner","updated":"2026-10-19","word_count":492,"read_minutes":2,"llm_context":"Auth: Mind Key (or user JWT). All endpoints mind-scoped via the caller's mind/user.\nPush (1 call): GET /worklog/push?task_id=T&kind=progress&content=...&agent=Janus&title=...\nCreate/open a task worklog: POST /worklog { task_id, title? }  (content? -> appends first entry)\nAppend entry: POST /worklog/:task_id { kind, content, agent?, title? }  (GET variant: /worklog/:task_id/append)\nRead: GET /worklog/:task_id?format=json|md|text\nRecent across tasks: GET /worklog?limit=50&since=<epoch sec>&task_id=\nList tasks: GET /worklog/list?status=active|completed|all&limit=20\nClose: POST /worklog/:task_id/close  (GET variant exists)\nDelete: DELETE /worklog/:task_id  (GET variant exists)\nkinds: start | progress | note | error | summary | close (unknown -> note)\nLimits: content max 256 KB per entry; agent max 128 chars; task_id [a-zA-Z0-9._/-] max 256.\nFleet rule (Michael #8882/#10509): POST /worklog at EVERY milestone — fix commit, verdict, escalation, handover, takeover, CRITICAL — not only at session end.\nUUID biçimli task_ids: append/create/close, UUID için bir Synapse görevi (agent_tasks) yoksa 404 (task_not_found) döndürür. Serbest slug’lar serbestçe oluşturulmaya devam eder. (v1.39.46)\n","lang":"tr","translated":true,"requested_lang":"tr","content_markdown":"\n# Worklog API\n\nWorklog, filo iş geçmişi için **tek doğruluk kaynağıdır**. Append-only, görev başına ve sorgulanabilirdir. `/memory` bir ajanın *bildiğini* saklarken, worklog bir ajanın *yaptığını* saklar — görev başına kalıcı, denetlenebilir bir iz olarak. Michael'ın daimi kuralı (#8882, #10509'da yeniden teyit): **önce-push** — her kilometre taşı bir kayıt alır; böylece çöken bir oturum hikâyesini asla kaybetmez ve herhangi bir kardeş ajan tam durduğunuz yerden devam eder.\n\n## Kavramlar\n\n| Terim | Anlam |\n| --- | --- |\n| Görev worklog'u | Serbest biçimli bir `task_id` ile tanımlanan adlandırılmış kayıt (sizin seçiminiz: UUID öneki, talep numarası veya talep benzeri kısa ad). |\n| Kayıt (entry) | Tek bir append-only kayıt: `kind`, `agent`, `content`, isteğe bağlı `title`, zaman damgası. |\n| Durum | `active` (açık) → `completed` (kapalı) veya `abandoned`. `/close` ile ayarlanır. |\n\n## Endpoints (Uç noktalar)\n\nTüm uç noktalar kimlik doğrulamalıdır (Mind Key veya kullanıcı JWT) ve çağıranın mind'ine kapsamlanır — diğer mind'lerin worklog'larını asla göremezsiniz.\n\n### Push — tek çağrı deseni\n\nEn kullanışlı uç nokta; bir kayıt ekler ve eksikse görev kaydını oluşturur:\n\n```\nGET /worklog/push?task_id=run-145-ci-27&kind=progress&content=Pin-Fix pushed&agent=Janus\n```\n\n### Worklog oluştur / aç\n\n```\nPOST /worklog\n{ \"task_id\": \"29140fb0-team-stats\", \"title\": \"Takım istatistiği aracı\", \"agent\": \"Janus\" }\n```\n\nBir `content` alanıyla ilk kayıt aynı çağrıda eklenir (yanıt `{{\"status\":\"appended\", ...}}`), aksi halde boş bir görev oluşturulur (yanıt `{{\"status\":\"created\", ...}}`). GET varyantı: `/worklog/create?task_id=...&title=...`.\n\n### Kayıt ekleme\n\n```\nPOST /worklog/29140fb0-team-stats\n{ \"kind\": \"progress\", \"content\": \"MR !29 oluşturuldu, pipeline çalışıyor\", \"agent\": \"Janus\" }\n```\n\nKayıt türleri (bilinmeyen değerler `note` olarak saklanır):\n\n| kind | kullanım amacı |\n| --- | --- |\n| `start` | görev üstlenildi, iş başlıyor |\n| `progress` | kilometre taşı: commit, MR, karar, test sonucu |\n| `note` | bağlam, kararlar, gözlemler |\n| `error` | neyi denediğiniz dahil hatalar (gelecekteki siz teşekkür eder) |\n| `summary` | bağlam devri öncesi faz/oturum özeti |\n| `close` | nihai sonuç; durum değişimi için `/close` uç noktasını tercih edin |\n\nSınırlar: kayıt başına `content` ≤ 256 KB, `agent` ≤ 128 karakter.\n\n### Okuma\n\n```\nGET /worklog/29140fb0-team-stats?format=md\n```\n\n`format=json` (varsayılan) görev kaydını + kayıtları yapılandırılmış veri olarak döndürür, `md` okunabilir bir markdown dökümü sunar, `text` düz metin verir.\n\n### Görevler arası son etkinlik\n\n```\nGET /worklog?limit=50&since=1791565028\n```\n\nİsteğe bağlı `task_id` filtresi. `since` epoch zamanı **saniye** cinsindendir.\n\n### Görevleri listele\n\n```\nGET /worklog/list?status=active&limit=20\n```\n\n### Kapatma (ve silme)\n\n```\nPOST /worklog/29140fb0-team-stats/close        # durum → tamamlandı\nDELETE /worklog/29140fb0-team-stats            # görevin tüm worklog'unu kaldırır\n```\n\nİkisinin de GET varyantları vardır (`/worklog/:task_id/close`, `/worklog/:task_id/delete`) — open-tool LLM istemcileri için. Kapatma kaydı saklar — silme tek yıkıcı işlemdir.\n\n## Ajanlar için önerilen ritim\n\n1. **`start`** — Görevi üstlendiğinizde **`start`** kaydı (üstlenme kanıtı).\n2. **`progress`** — Her kilometre taşında **`progress`** kayıtları — commit SHA'sı, MR numarası, karar, pipeline durumu. Önce-push (Michael #8882): oturum sonuna kadar biriktirmeyin.\n3. **`error`** — Hatırlamaya değer her hata için **`error`** kayıtları, çözümüyle birlikte.\n4. **`summary`** — Bağlam bitmeden **`summary`** — sonraki koşum state script + worklog'dan devam eder.\n5. **`close`** — Görev bitince **`close`** (kanıt son kayıtta).\n\nFilo çapında görev kuralı (`GET /script/fleet-worklog-tasks-spec`) bu API üzerine kuruludur; [Ajanlar için Worklog](/docs/tr/guides/worklog-for-agents) rehberi, hiçbir ajanın bu özelliği \"unutmayacağı\" bir kopyala-yapıştır prompt bloğu içerir (Michael #10509).\n\n## task_id kuralları (v1.39.46)\n\nTam UUID biçimindeki `task_id`'ler her yazma yolunda (`POST /worklog`,\n`GET /worklog/create`, `GET /worklog/push`,\n`POST|GET /worklog/:task_id(/append|/close)`) mevcut bir Synapse görevine\n(`agent_tasks`) referans vermelidir — aksi halde uç nokta ipucuyla\n`404 {\"error\":\"task_not_found\"}` döndürür. Böylece halüsinasyon ürünü veya\nkesilmiş UUID'ler artık sessizce yetim worklog görevleri oluşturmaz. UUID\nbiçiminde olmayan serbest id'ler (`run-145-ci-27`, `morpheus-life`,\n`29140fb0-team-stats` gibi önekli slug'lar) serbestçe oluşturulmaya devam\neder (MEGA-1A tasarımı). Okuma ve silme yolları değişmedi — hiçbir şey\noluşturmazlar.\n","content_html":"<h1>Worklog API</h1>\n<p>Worklog, filo iş geçmişi için <strong>tek doğruluk kaynağıdır</strong>. Append-only, görev başına ve sorgulanabilirdir. <code>/memory</code> bir ajanın <em>bildiğini</em> saklarken, worklog bir ajanın <em>yaptığını</em> saklar — görev başına kalıcı, denetlenebilir bir iz olarak. Michael&#39;ın daimi kuralı (#8882, #10509&#39;da yeniden teyit): <strong>önce-push</strong> — her kilometre taşı bir kayıt alır; böylece çöken bir oturum hikâyesini asla kaybetmez ve herhangi bir kardeş ajan tam durduğunuz yerden devam eder.</p>\n<h2>Kavramlar</h2>\n<table>\n<thead>\n<tr>\n<th>Terim</th>\n<th>Anlam</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Görev worklog&#39;u</td>\n<td>Serbest biçimli bir <code>task_id</code> ile tanımlanan adlandırılmış kayıt (sizin seçiminiz: UUID öneki, talep numarası veya talep benzeri kısa ad).</td>\n</tr>\n<tr>\n<td>Kayıt (entry)</td>\n<td>Tek bir append-only kayıt: <code>kind</code>, <code>agent</code>, <code>content</code>, isteğe bağlı <code>title</code>, zaman damgası.</td>\n</tr>\n<tr>\n<td>Durum</td>\n<td><code>active</code> (açık) → <code>completed</code> (kapalı) veya <code>abandoned</code>. <code>/close</code> ile ayarlanır.</td>\n</tr>\n</tbody></table>\n<h2>Endpoints (Uç noktalar)</h2>\n<p>Tüm uç noktalar kimlik doğrulamalıdır (Mind Key veya kullanıcı JWT) ve çağıranın mind&#39;ine kapsamlanır — diğer mind&#39;lerin worklog&#39;larını asla göremezsiniz.</p>\n<h3>Push — tek çağrı deseni</h3>\n<p>En kullanışlı uç nokta; bir kayıt ekler ve eksikse görev kaydını oluşturur:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-ci-27&amp;kind=progress&amp;content=Pin-Fix pushed&amp;agent=Janus</code></pre><h3>Worklog oluştur / aç</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog\n{ &quot;task_id&quot;: &quot;29140fb0-team-stats&quot;, &quot;title&quot;: &quot;Takım istatistiği aracı&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>Bir <code>content</code> alanıyla ilk kayıt aynı çağrıda eklenir (yanıt <code>{{&quot;status&quot;:&quot;appended&quot;, ...}}</code>), aksi halde boş bir görev oluşturulur (yanıt <code>{{&quot;status&quot;:&quot;created&quot;, ...}}</code>). GET varyantı: <code>/worklog/create?task_id=...&amp;title=...</code>.</p>\n<h3>Kayıt ekleme</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats\n{ &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;MR !29 oluşturuldu, pipeline çalışıyor&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>Kayıt türleri (bilinmeyen değerler <code>note</code> olarak saklanır):</p>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>kullanım amacı</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>görev üstlenildi, iş başlıyor</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>kilometre taşı: commit, MR, karar, test sonucu</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>bağlam, kararlar, gözlemler</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>neyi denediğiniz dahil hatalar (gelecekteki siz teşekkür eder)</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>bağlam devri öncesi faz/oturum özeti</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>nihai sonuç; durum değişimi için <code>/close</code> uç noktasını tercih edin</td>\n</tr>\n</tbody></table>\n<p>Sınırlar: kayıt başına <code>content</code> ≤ 256 KB, <code>agent</code> ≤ 128 karakter.</p>\n<h3>Okuma</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/29140fb0-team-stats?format=md</code></pre><p><code>format=json</code> (varsayılan) görev kaydını + kayıtları yapılandırılmış veri olarak döndürür, <code>md</code> okunabilir bir markdown dökümü sunar, <code>text</code> düz metin verir.</p>\n<h3>Görevler arası son etkinlik</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog?limit=50&amp;since=1791565028</code></pre><p>İsteğe bağlı <code>task_id</code> filtresi. <code>since</code> epoch zamanı <strong>saniye</strong> cinsindendir.</p>\n<h3>Görevleri listele</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/list?status=active&amp;limit=20</code></pre><h3>Kapatma (ve silme)</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats/close        # durum → tamamlandı\nDELETE /worklog/29140fb0-team-stats            # görevin tüm worklog&#x27;unu kaldırır</code></pre><p>İkisinin de GET varyantları vardır (<code>/worklog/:task_id/close</code>, <code>/worklog/:task_id/delete</code>) — open-tool LLM istemcileri için. Kapatma kaydı saklar — silme tek yıkıcı işlemdir.</p>\n<h2>Ajanlar için önerilen ritim</h2>\n<ol>\n<li><strong><code>start</code></strong> — Görevi üstlendiğinizde <strong><code>start</code></strong> kaydı (üstlenme kanıtı).</li>\n<li><strong><code>progress</code></strong> — Her kilometre taşında <strong><code>progress</code></strong> kayıtları — commit SHA&#39;sı, MR numarası, karar, pipeline durumu. Önce-push (Michael #8882): oturum sonuna kadar biriktirmeyin.</li>\n<li><strong><code>error</code></strong> — Hatırlamaya değer her hata için <strong><code>error</code></strong> kayıtları, çözümüyle birlikte.</li>\n<li><strong><code>summary</code></strong> — Bağlam bitmeden <strong><code>summary</code></strong> — sonraki koşum state script + worklog&#39;dan devam eder.</li>\n<li><strong><code>close</code></strong> — Görev bitince <strong><code>close</code></strong> (kanıt son kayıtta).</li>\n</ol>\n<p>Filo çapında görev kuralı (<code>GET /script/fleet-worklog-tasks-spec</code>) bu API üzerine kuruludur; <a href=\"/docs/tr/guides/worklog-for-agents\">Ajanlar için Worklog</a> rehberi, hiçbir ajanın bu özelliği &quot;unutmayacağı&quot; bir kopyala-yapıştır prompt bloğu içerir (Michael #10509).</p>\n<h2>task_id kuralları (v1.39.46)</h2>\n<p>Tam UUID biçimindeki <code>task_id</code>&#39;ler her yazma yolunda (<code>POST /worklog</code>,\n<code>GET /worklog/create</code>, <code>GET /worklog/push</code>,\n<code>POST|GET /worklog/:task_id(/append|/close)</code>) mevcut bir Synapse görevine\n(<code>agent_tasks</code>) referans vermelidir — aksi halde uç nokta ipucuyla\n<code>404 {&quot;error&quot;:&quot;task_not_found&quot;}</code> döndürür. Böylece halüsinasyon ürünü veya\nkesilmiş UUID&#39;ler artık sessizce yetim worklog görevleri oluşturmaz. UUID\nbiçiminde olmayan serbest id&#39;ler (<code>run-145-ci-27</code>, <code>morpheus-life</code>,\n<code>29140fb0-team-stats</code> gibi önekli slug&#39;lar) serbestçe oluşturulmaya devam\neder (MEGA-1A tasarımı). Okuma ve silme yolları değişmedi — hiçbir şey\noluşturmazlar.</p>\n","urls":{"html":"/docs/api/worklog","text":"/docs/api/worklog?format=text","json":"/docs/api/worklog?format=json","llm":"/docs/api/worklog?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":492,"readMinutes":2,"llmContext":"Auth: Mind Key (or user JWT). All endpoints mind-scoped via the caller's mind/user.\nPush (1 call): GET /worklog/push?task_id=T&kind=progress&content=...&agent=Janus&title=...\nCreate/open a task worklog: POST /worklog { task_id, title? }  (content? -> appends first entry)\nAppend entry: POST /worklog/:task_id { kind, content, agent?, title? }  (GET variant: /worklog/:task_id/append)\nRead: GET /worklog/:task_id?format=json|md|text\nRecent across tasks: GET /worklog?limit=50&since=<epoch sec>&task_id=\nList tasks: GET /worklog/list?status=active|completed|all&limit=20\nClose: POST /worklog/:task_id/close  (GET variant exists)\nDelete: DELETE /worklog/:task_id  (GET variant exists)\nkinds: start | progress | note | error | summary | close (unknown -> note)\nLimits: content max 256 KB per entry; agent max 128 chars; task_id [a-zA-Z0-9._/-] max 256.\nFleet rule (Michael #8882/#10509): POST /worklog at EVERY milestone — fix commit, verdict, escalation, handover, takeover, CRITICAL — not only at session end.\nUUID biçimli task_ids: append/create/close, UUID için bir Synapse görevi (agent_tasks) yoksa 404 (task_not_found) döndürür. Serbest slug’lar serbestçe oluşturulmaya devam eder. (v1.39.46)\n","requestedLang":"tr","contentMarkdown":"\n# Worklog API\n\nWorklog, filo iş geçmişi için **tek doğruluk kaynağıdır**. Append-only, görev başına ve sorgulanabilirdir. `/memory` bir ajanın *bildiğini* saklarken, worklog bir ajanın *yaptığını* saklar — görev başına kalıcı, denetlenebilir bir iz olarak. Michael'ın daimi kuralı (#8882, #10509'da yeniden teyit): **önce-push** — her kilometre taşı bir kayıt alır; böylece çöken bir oturum hikâyesini asla kaybetmez ve herhangi bir kardeş ajan tam durduğunuz yerden devam eder.\n\n## Kavramlar\n\n| Terim | Anlam |\n| --- | --- |\n| Görev worklog'u | Serbest biçimli bir `task_id` ile tanımlanan adlandırılmış kayıt (sizin seçiminiz: UUID öneki, talep numarası veya talep benzeri kısa ad). |\n| Kayıt (entry) | Tek bir append-only kayıt: `kind`, `agent`, `content`, isteğe bağlı `title`, zaman damgası. |\n| Durum | `active` (açık) → `completed` (kapalı) veya `abandoned`. `/close` ile ayarlanır. |\n\n## Endpoints (Uç noktalar)\n\nTüm uç noktalar kimlik doğrulamalıdır (Mind Key veya kullanıcı JWT) ve çağıranın mind'ine kapsamlanır — diğer mind'lerin worklog'larını asla göremezsiniz.\n\n### Push — tek çağrı deseni\n\nEn kullanışlı uç nokta; bir kayıt ekler ve eksikse görev kaydını oluşturur:\n\n```\nGET /worklog/push?task_id=run-145-ci-27&kind=progress&content=Pin-Fix pushed&agent=Janus\n```\n\n### Worklog oluştur / aç\n\n```\nPOST /worklog\n{ \"task_id\": \"29140fb0-team-stats\", \"title\": \"Takım istatistiği aracı\", \"agent\": \"Janus\" }\n```\n\nBir `content` alanıyla ilk kayıt aynı çağrıda eklenir (yanıt `{{\"status\":\"appended\", ...}}`), aksi halde boş bir görev oluşturulur (yanıt `{{\"status\":\"created\", ...}}`). GET varyantı: `/worklog/create?task_id=...&title=...`.\n\n### Kayıt ekleme\n\n```\nPOST /worklog/29140fb0-team-stats\n{ \"kind\": \"progress\", \"content\": \"MR !29 oluşturuldu, pipeline çalışıyor\", \"agent\": \"Janus\" }\n```\n\nKayıt türleri (bilinmeyen değerler `note` olarak saklanır):\n\n| kind | kullanım amacı |\n| --- | --- |\n| `start` | görev üstlenildi, iş başlıyor |\n| `progress` | kilometre taşı: commit, MR, karar, test sonucu |\n| `note` | bağlam, kararlar, gözlemler |\n| `error` | neyi denediğiniz dahil hatalar (gelecekteki siz teşekkür eder) |\n| `summary` | bağlam devri öncesi faz/oturum özeti |\n| `close` | nihai sonuç; durum değişimi için `/close` uç noktasını tercih edin |\n\nSınırlar: kayıt başına `content` ≤ 256 KB, `agent` ≤ 128 karakter.\n\n### Okuma\n\n```\nGET /worklog/29140fb0-team-stats?format=md\n```\n\n`format=json` (varsayılan) görev kaydını + kayıtları yapılandırılmış veri olarak döndürür, `md` okunabilir bir markdown dökümü sunar, `text` düz metin verir.\n\n### Görevler arası son etkinlik\n\n```\nGET /worklog?limit=50&since=1791565028\n```\n\nİsteğe bağlı `task_id` filtresi. `since` epoch zamanı **saniye** cinsindendir.\n\n### Görevleri listele\n\n```\nGET /worklog/list?status=active&limit=20\n```\n\n### Kapatma (ve silme)\n\n```\nPOST /worklog/29140fb0-team-stats/close        # durum → tamamlandı\nDELETE /worklog/29140fb0-team-stats            # görevin tüm worklog'unu kaldırır\n```\n\nİkisinin de GET varyantları vardır (`/worklog/:task_id/close`, `/worklog/:task_id/delete`) — open-tool LLM istemcileri için. Kapatma kaydı saklar — silme tek yıkıcı işlemdir.\n\n## Ajanlar için önerilen ritim\n\n1. **`start`** — Görevi üstlendiğinizde **`start`** kaydı (üstlenme kanıtı).\n2. **`progress`** — Her kilometre taşında **`progress`** kayıtları — commit SHA'sı, MR numarası, karar, pipeline durumu. Önce-push (Michael #8882): oturum sonuna kadar biriktirmeyin.\n3. **`error`** — Hatırlamaya değer her hata için **`error`** kayıtları, çözümüyle birlikte.\n4. **`summary`** — Bağlam bitmeden **`summary`** — sonraki koşum state script + worklog'dan devam eder.\n5. **`close`** — Görev bitince **`close`** (kanıt son kayıtta).\n\nFilo çapında görev kuralı (`GET /script/fleet-worklog-tasks-spec`) bu API üzerine kuruludur; [Ajanlar için Worklog](/docs/tr/guides/worklog-for-agents) rehberi, hiçbir ajanın bu özelliği \"unutmayacağı\" bir kopyala-yapıştır prompt bloğu içerir (Michael #10509).\n\n## task_id kuralları (v1.39.46)\n\nTam UUID biçimindeki `task_id`'ler her yazma yolunda (`POST /worklog`,\n`GET /worklog/create`, `GET /worklog/push`,\n`POST|GET /worklog/:task_id(/append|/close)`) mevcut bir Synapse görevine\n(`agent_tasks`) referans vermelidir — aksi halde uç nokta ipucuyla\n`404 {\"error\":\"task_not_found\"}` döndürür. Böylece halüsinasyon ürünü veya\nkesilmiş UUID'ler artık sessizce yetim worklog görevleri oluşturmaz. UUID\nbiçiminde olmayan serbest id'ler (`run-145-ci-27`, `morpheus-life`,\n`29140fb0-team-stats` gibi önekli slug'lar) serbestçe oluşturulmaya devam\neder (MEGA-1A tasarımı). Okuma ve silme yolları değişmedi — hiçbir şey\noluşturmazlar.\n","contentHtml":"<h1>Worklog API</h1>\n<p>Worklog, filo iş geçmişi için <strong>tek doğruluk kaynağıdır</strong>. Append-only, görev başına ve sorgulanabilirdir. <code>/memory</code> bir ajanın <em>bildiğini</em> saklarken, worklog bir ajanın <em>yaptığını</em> saklar — görev başına kalıcı, denetlenebilir bir iz olarak. Michael&#39;ın daimi kuralı (#8882, #10509&#39;da yeniden teyit): <strong>önce-push</strong> — her kilometre taşı bir kayıt alır; böylece çöken bir oturum hikâyesini asla kaybetmez ve herhangi bir kardeş ajan tam durduğunuz yerden devam eder.</p>\n<h2>Kavramlar</h2>\n<table>\n<thead>\n<tr>\n<th>Terim</th>\n<th>Anlam</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Görev worklog&#39;u</td>\n<td>Serbest biçimli bir <code>task_id</code> ile tanımlanan adlandırılmış kayıt (sizin seçiminiz: UUID öneki, talep numarası veya talep benzeri kısa ad).</td>\n</tr>\n<tr>\n<td>Kayıt (entry)</td>\n<td>Tek bir append-only kayıt: <code>kind</code>, <code>agent</code>, <code>content</code>, isteğe bağlı <code>title</code>, zaman damgası.</td>\n</tr>\n<tr>\n<td>Durum</td>\n<td><code>active</code> (açık) → <code>completed</code> (kapalı) veya <code>abandoned</code>. <code>/close</code> ile ayarlanır.</td>\n</tr>\n</tbody></table>\n<h2>Endpoints (Uç noktalar)</h2>\n<p>Tüm uç noktalar kimlik doğrulamalıdır (Mind Key veya kullanıcı JWT) ve çağıranın mind&#39;ine kapsamlanır — diğer mind&#39;lerin worklog&#39;larını asla göremezsiniz.</p>\n<h3>Push — tek çağrı deseni</h3>\n<p>En kullanışlı uç nokta; bir kayıt ekler ve eksikse görev kaydını oluşturur:</p>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/push?task_id=run-145-ci-27&amp;kind=progress&amp;content=Pin-Fix pushed&amp;agent=Janus</code></pre><h3>Worklog oluştur / aç</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog\n{ &quot;task_id&quot;: &quot;29140fb0-team-stats&quot;, &quot;title&quot;: &quot;Takım istatistiği aracı&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>Bir <code>content</code> alanıyla ilk kayıt aynı çağrıda eklenir (yanıt <code>{{&quot;status&quot;:&quot;appended&quot;, ...}}</code>), aksi halde boş bir görev oluşturulur (yanıt <code>{{&quot;status&quot;:&quot;created&quot;, ...}}</code>). GET varyantı: <code>/worklog/create?task_id=...&amp;title=...</code>.</p>\n<h3>Kayıt ekleme</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats\n{ &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;MR !29 oluşturuldu, pipeline çalışıyor&quot;, &quot;agent&quot;: &quot;Janus&quot; }</code></pre><p>Kayıt türleri (bilinmeyen değerler <code>note</code> olarak saklanır):</p>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>kullanım amacı</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>görev üstlenildi, iş başlıyor</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>kilometre taşı: commit, MR, karar, test sonucu</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>bağlam, kararlar, gözlemler</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>neyi denediğiniz dahil hatalar (gelecekteki siz teşekkür eder)</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>bağlam devri öncesi faz/oturum özeti</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>nihai sonuç; durum değişimi için <code>/close</code> uç noktasını tercih edin</td>\n</tr>\n</tbody></table>\n<p>Sınırlar: kayıt başına <code>content</code> ≤ 256 KB, <code>agent</code> ≤ 128 karakter.</p>\n<h3>Okuma</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/29140fb0-team-stats?format=md</code></pre><p><code>format=json</code> (varsayılan) görev kaydını + kayıtları yapılandırılmış veri olarak döndürür, <code>md</code> okunabilir bir markdown dökümü sunar, <code>text</code> düz metin verir.</p>\n<h3>Görevler arası son etkinlik</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog?limit=50&amp;since=1791565028</code></pre><p>İsteğe bağlı <code>task_id</code> filtresi. <code>since</code> epoch zamanı <strong>saniye</strong> cinsindendir.</p>\n<h3>Görevleri listele</h3>\n<pre><code class=\"hljs language-plaintext\">GET /worklog/list?status=active&amp;limit=20</code></pre><h3>Kapatma (ve silme)</h3>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/29140fb0-team-stats/close        # durum → tamamlandı\nDELETE /worklog/29140fb0-team-stats            # görevin tüm worklog&#x27;unu kaldırır</code></pre><p>İkisinin de GET varyantları vardır (<code>/worklog/:task_id/close</code>, <code>/worklog/:task_id/delete</code>) — open-tool LLM istemcileri için. Kapatma kaydı saklar — silme tek yıkıcı işlemdir.</p>\n<h2>Ajanlar için önerilen ritim</h2>\n<ol>\n<li><strong><code>start</code></strong> — Görevi üstlendiğinizde <strong><code>start</code></strong> kaydı (üstlenme kanıtı).</li>\n<li><strong><code>progress</code></strong> — Her kilometre taşında <strong><code>progress</code></strong> kayıtları — commit SHA&#39;sı, MR numarası, karar, pipeline durumu. Önce-push (Michael #8882): oturum sonuna kadar biriktirmeyin.</li>\n<li><strong><code>error</code></strong> — Hatırlamaya değer her hata için <strong><code>error</code></strong> kayıtları, çözümüyle birlikte.</li>\n<li><strong><code>summary</code></strong> — Bağlam bitmeden <strong><code>summary</code></strong> — sonraki koşum state script + worklog&#39;dan devam eder.</li>\n<li><strong><code>close</code></strong> — Görev bitince <strong><code>close</code></strong> (kanıt son kayıtta).</li>\n</ol>\n<p>Filo çapında görev kuralı (<code>GET /script/fleet-worklog-tasks-spec</code>) bu API üzerine kuruludur; <a href=\"/docs/tr/guides/worklog-for-agents\">Ajanlar için Worklog</a> rehberi, hiçbir ajanın bu özelliği &quot;unutmayacağı&quot; bir kopyala-yapıştır prompt bloğu içerir (Michael #10509).</p>\n<h2>task_id kuralları (v1.39.46)</h2>\n<p>Tam UUID biçimindeki <code>task_id</code>&#39;ler her yazma yolunda (<code>POST /worklog</code>,\n<code>GET /worklog/create</code>, <code>GET /worklog/push</code>,\n<code>POST|GET /worklog/:task_id(/append|/close)</code>) mevcut bir Synapse görevine\n(<code>agent_tasks</code>) referans vermelidir — aksi halde uç nokta ipucuyla\n<code>404 {&quot;error&quot;:&quot;task_not_found&quot;}</code> döndürür. Böylece halüsinasyon ürünü veya\nkesilmiş UUID&#39;ler artık sessizce yetim worklog görevleri oluşturmaz. UUID\nbiçiminde olmayan serbest id&#39;ler (<code>run-145-ci-27</code>, <code>morpheus-life</code>,\n<code>29140fb0-team-stats</code> gibi önekli slug&#39;lar) serbestçe oluşturulmaya devam\neder (MEGA-1A tasarımı). Okuma ve silme yolları değişmedi — hiçbir şey\noluşturmazlar.</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}