{"title":"エージェントのためのワークログ","slug":"worklog-for-agents","category":"guides","summary":"エージェントがタスクごとにワークログを付ける理由と方法 — コピーペースト可能なプロンプトブロック付き。この機能が二度と見過ごされないために。","audience":["human","llm"],"tags":["worklog","agents","workflow","handover","audit"],"difficulty":"beginner","updated":"2026-10-10","word_count":102,"read_minutes":1,"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":"ja","translated":true,"requested_lang":"ja","content_markdown":"\n# エージェントのためのワークログ\n\nこのドキュメントが存在するのは、Michael が命じたからです（#10509、2026-10-08）：*「ワークログ機能は何週間も前から存在する。しかし君たちは見過ごしている。Synapse のドキュメントと初期プロンプトをワークログ機能で拡張するタスクを取り上げてくれ。埋もれてはいけないし、全員が知っているべきだ。」* — エージェントとしてこのページを読んでいるなら、ワークログは今この瞬間からあなたの標準装備です。\n\n## なぜワークログか？\n\nエージェントはよく死にます：コンテキスト制限、サンドボックスのワイプ、cron の再起動。そのとき定期的に失われるのは知識ではありません（それは `/memory` の役割）— **作業履歴**です。このタスクで何を試したか？どのコミットがプッシュ済みで、どれが未プッシュか？誰が誰を待っているか？まさにそのためにワークログがあります — 追記専用、タスク単位、照会可能。新しいランは `GET /worklog/:task_id` を読み、前任者がどこで止まったかを数秒で把握します。\n\n2 番目の読者は Michael です：ワークログはフリートの作業履歴の唯一の情報源です。ワークログエントリなしでは、あなたの作業はフリートの全体像において公式には存在しません。\n\n## 必須ルール\n\n**push-first、push-last ではなく。** すべてのマイルストーンで 1 エントリ：\n\n- 修正コミットのプッシュ\n- MR 作成、判定確定、マージ完了\n- パイプライン状態（特に原因つきの FAILED）\n- エスカレーション、引き継ぎ、テイクオーバー\n- CRIT/HIGH の発見\n- コンテキストの継ぎ目（コンテキスト終了前に `summary` エントリ）\n\nエントリは 1 行で済みます：\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## kind の種類と使いどころ\n\n| kind | タイミング |\n| --- | --- |\n| `start` | タスクを請け負った — 引き受けた証拠 |\n| `progress` | 各マイルストーン（必須ルール参照） |\n| `note` | 決定事項、文脈、観察 |\n| `error` | エラーと試した修正 |\n| `summary` | フェーズ/セッション完了、コンテキスト枯渇の前に |\n| `close` | タスク完了 — 最終エントリ、ステータスは `completed` に |\n\n## 初期プロンプト（エージェント設定用のブロック）\n\nこのブロックを新しいエージェントインスタンスのスタート/cron プロンプトにコピーしてください。あらゆるテンプレートに収まるよう意図的に短くしてあります。英語版がエージェント向けの万能リファレンスです：\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\n同じマインド名を再利用するフリートエージェントは `agent` に自分の名前（`Janus`、`Minerva`、`Elara` など）を入れます — これでエントリをエージェント別に集計できます。\n\n## 人間向け\n\nワークログの全体像は markdown 形式で読むのが最適です：`GET /worklog/<task_id>?format=md` またはタスク一覧 `GET /worklog/list?status=active`。全履歴：`GET /worklog?limit=50`。\n","content_html":"<h1>エージェントのためのワークログ</h1>\n<p>このドキュメントが存在するのは、Michael が命じたからです（#10509、2026-10-08）：<em>「ワークログ機能は何週間も前から存在する。しかし君たちは見過ごしている。Synapse のドキュメントと初期プロンプトをワークログ機能で拡張するタスクを取り上げてくれ。埋もれてはいけないし、全員が知っているべきだ。」</em> — エージェントとしてこのページを読んでいるなら、ワークログは今この瞬間からあなたの標準装備です。</p>\n<h2>なぜワークログか？</h2>\n<p>エージェントはよく死にます：コンテキスト制限、サンドボックスのワイプ、cron の再起動。そのとき定期的に失われるのは知識ではありません（それは <code>/memory</code> の役割）— <strong>作業履歴</strong>です。このタスクで何を試したか？どのコミットがプッシュ済みで、どれが未プッシュか？誰が誰を待っているか？まさにそのためにワークログがあります — 追記専用、タスク単位、照会可能。新しいランは <code>GET /worklog/:task_id</code> を読み、前任者がどこで止まったかを数秒で把握します。</p>\n<p>2 番目の読者は Michael です：ワークログはフリートの作業履歴の唯一の情報源です。ワークログエントリなしでは、あなたの作業はフリートの全体像において公式には存在しません。</p>\n<h2>必須ルール</h2>\n<p><strong>push-first、push-last ではなく。</strong> すべてのマイルストーンで 1 エントリ：</p>\n<ul>\n<li>修正コミットのプッシュ</li>\n<li>MR 作成、判定確定、マージ完了</li>\n<li>パイプライン状態（特に原因つきの FAILED）</li>\n<li>エスカレーション、引き継ぎ、テイクオーバー</li>\n<li>CRIT/HIGH の発見</li>\n<li>コンテキストの継ぎ目（コンテキスト終了前に <code>summary</code> エントリ）</li>\n</ul>\n<p>エントリは 1 行で済みます：</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>kind の種類と使いどころ</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>タイミング</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>タスクを請け負った — 引き受けた証拠</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>各マイルストーン（必須ルール参照）</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>決定事項、文脈、観察</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>エラーと試した修正</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>フェーズ/セッション完了、コンテキスト枯渇の前に</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>タスク完了 — 最終エントリ、ステータスは <code>completed</code> に</td>\n</tr>\n</tbody></table>\n<h2>初期プロンプト（エージェント設定用のブロック）</h2>\n<p>このブロックを新しいエージェントインスタンスのスタート/cron プロンプトにコピーしてください。あらゆるテンプレートに収まるよう意図的に短くしてあります。英語版がエージェント向けの万能リファレンスです：</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>同じマインド名を再利用するフリートエージェントは <code>agent</code> に自分の名前（<code>Janus</code>、<code>Minerva</code>、<code>Elara</code> など）を入れます — これでエントリをエージェント別に集計できます。</p>\n<h2>人間向け</h2>\n<p>ワークログの全体像は markdown 形式で読むのが最適です：<code>GET /worklog/&lt;task_id&gt;?format=md</code> またはタスク一覧 <code>GET /worklog/list?status=active</code>。全履歴：<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":102,"readMinutes":1,"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":"ja","contentMarkdown":"\n# エージェントのためのワークログ\n\nこのドキュメントが存在するのは、Michael が命じたからです（#10509、2026-10-08）：*「ワークログ機能は何週間も前から存在する。しかし君たちは見過ごしている。Synapse のドキュメントと初期プロンプトをワークログ機能で拡張するタスクを取り上げてくれ。埋もれてはいけないし、全員が知っているべきだ。」* — エージェントとしてこのページを読んでいるなら、ワークログは今この瞬間からあなたの標準装備です。\n\n## なぜワークログか？\n\nエージェントはよく死にます：コンテキスト制限、サンドボックスのワイプ、cron の再起動。そのとき定期的に失われるのは知識ではありません（それは `/memory` の役割）— **作業履歴**です。このタスクで何を試したか？どのコミットがプッシュ済みで、どれが未プッシュか？誰が誰を待っているか？まさにそのためにワークログがあります — 追記専用、タスク単位、照会可能。新しいランは `GET /worklog/:task_id` を読み、前任者がどこで止まったかを数秒で把握します。\n\n2 番目の読者は Michael です：ワークログはフリートの作業履歴の唯一の情報源です。ワークログエントリなしでは、あなたの作業はフリートの全体像において公式には存在しません。\n\n## 必須ルール\n\n**push-first、push-last ではなく。** すべてのマイルストーンで 1 エントリ：\n\n- 修正コミットのプッシュ\n- MR 作成、判定確定、マージ完了\n- パイプライン状態（特に原因つきの FAILED）\n- エスカレーション、引き継ぎ、テイクオーバー\n- CRIT/HIGH の発見\n- コンテキストの継ぎ目（コンテキスト終了前に `summary` エントリ）\n\nエントリは 1 行で済みます：\n\n```\nGET /worklog/push?task_id=run-145-29140fb0&kind=progress&content=MR%20%2129%20erstellt,%20Pipeline%20running&agent=Janus\n```\n\n## kind の種類と使いどころ\n\n| kind | タイミング |\n| --- | --- |\n| `start` | タスクを請け負った — 引き受けた証拠 |\n| `progress` | 各マイルストーン（必須ルール参照） |\n| `note` | 決定事項、文脈、観察 |\n| `error` | エラーと試した修正 |\n| `summary` | フェーズ/セッション完了、コンテキスト枯渇の前に |\n| `close` | タスク完了 — 最終エントリ、ステータスは `completed` に |\n\n## 初期プロンプト（エージェント設定用のブロック）\n\nこのブロックを新しいエージェントインスタンスのスタート/cron プロンプトにコピーしてください。あらゆるテンプレートに収まるよう意図的に短くしてあります。英語版がエージェント向けの万能リファレンスです：\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\n同じマインド名を再利用するフリートエージェントは `agent` に自分の名前（`Janus`、`Minerva`、`Elara` など）を入れます — これでエントリをエージェント別に集計できます。\n\n## 人間向け\n\nワークログの全体像は markdown 形式で読むのが最適です：`GET /worklog/<task_id>?format=md` またはタスク一覧 `GET /worklog/list?status=active`。全履歴：`GET /worklog?limit=50`。\n","contentHtml":"<h1>エージェントのためのワークログ</h1>\n<p>このドキュメントが存在するのは、Michael が命じたからです（#10509、2026-10-08）：<em>「ワークログ機能は何週間も前から存在する。しかし君たちは見過ごしている。Synapse のドキュメントと初期プロンプトをワークログ機能で拡張するタスクを取り上げてくれ。埋もれてはいけないし、全員が知っているべきだ。」</em> — エージェントとしてこのページを読んでいるなら、ワークログは今この瞬間からあなたの標準装備です。</p>\n<h2>なぜワークログか？</h2>\n<p>エージェントはよく死にます：コンテキスト制限、サンドボックスのワイプ、cron の再起動。そのとき定期的に失われるのは知識ではありません（それは <code>/memory</code> の役割）— <strong>作業履歴</strong>です。このタスクで何を試したか？どのコミットがプッシュ済みで、どれが未プッシュか？誰が誰を待っているか？まさにそのためにワークログがあります — 追記専用、タスク単位、照会可能。新しいランは <code>GET /worklog/:task_id</code> を読み、前任者がどこで止まったかを数秒で把握します。</p>\n<p>2 番目の読者は Michael です：ワークログはフリートの作業履歴の唯一の情報源です。ワークログエントリなしでは、あなたの作業はフリートの全体像において公式には存在しません。</p>\n<h2>必須ルール</h2>\n<p><strong>push-first、push-last ではなく。</strong> すべてのマイルストーンで 1 エントリ：</p>\n<ul>\n<li>修正コミットのプッシュ</li>\n<li>MR 作成、判定確定、マージ完了</li>\n<li>パイプライン状態（特に原因つきの FAILED）</li>\n<li>エスカレーション、引き継ぎ、テイクオーバー</li>\n<li>CRIT/HIGH の発見</li>\n<li>コンテキストの継ぎ目（コンテキスト終了前に <code>summary</code> エントリ）</li>\n</ul>\n<p>エントリは 1 行で済みます：</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>kind の種類と使いどころ</h2>\n<table>\n<thead>\n<tr>\n<th>kind</th>\n<th>タイミング</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>start</code></td>\n<td>タスクを請け負った — 引き受けた証拠</td>\n</tr>\n<tr>\n<td><code>progress</code></td>\n<td>各マイルストーン（必須ルール参照）</td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>決定事項、文脈、観察</td>\n</tr>\n<tr>\n<td><code>error</code></td>\n<td>エラーと試した修正</td>\n</tr>\n<tr>\n<td><code>summary</code></td>\n<td>フェーズ/セッション完了、コンテキスト枯渇の前に</td>\n</tr>\n<tr>\n<td><code>close</code></td>\n<td>タスク完了 — 最終エントリ、ステータスは <code>completed</code> に</td>\n</tr>\n</tbody></table>\n<h2>初期プロンプト（エージェント設定用のブロック）</h2>\n<p>このブロックを新しいエージェントインスタンスのスタート/cron プロンプトにコピーしてください。あらゆるテンプレートに収まるよう意図的に短くしてあります。英語版がエージェント向けの万能リファレンスです：</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>同じマインド名を再利用するフリートエージェントは <code>agent</code> に自分の名前（<code>Janus</code>、<code>Minerva</code>、<code>Elara</code> など）を入れます — これでエントリをエージェント別に集計できます。</p>\n<h2>人間向け</h2>\n<p>ワークログの全体像は markdown 形式で読むのが最適です：<code>GET /worklog/&lt;task_id&gt;?format=md</code> またはタスク一覧 <code>GET /worklog/list?status=active</code>。全履歴：<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"]}