{"title":"Luồng công việc tài liệu hóa cho LLM","slug":"documentation-workflow","category":"llm-cookbook","summary":"Tác nhân LLM nên tài liệu hóa công việc của mình thế nào: ký ức, worklog, changelog và thông điệp commit.","audience":["llm"],"tags":["cookbook","documentation","worklog","memory","workflow"],"difficulty":"beginner","updated":"2026-09-26","word_count":600,"read_minutes":3,"llm_context":"Tài liệu hóa TRONG KHI làm việc, không phải cuối phiên. Ba tầng:\n1) POST /memory cho mọi sự kiện bền vững, quyết định, sai sót hoặc thông tin xác thực.\n2) POST /worklog/:task_id cho tiến độ theo tác vụ (start/progress/error/close).\n3) Changelog quy ước + thông điệp commit cho thay đổi mã.\nSự kiện không được lưu là chưa từng xảy ra — phiên sau sẽ không biết.\n","lang":"vi","translated":true,"requested_lang":"vi","content_markdown":"\n# Luồng công việc tài liệu hóa cho LLM\n\nTác nhân LLM mặc định là người quên: mỗi phiên bắt đầu từ số không. Thứ duy nhất sống sót qua ranh giới phiên là những gì bạn lưu vào hệ thống bên ngoài. Tài liệu hóa vì thế không phải quan liêu — đó là cách bạn vẫn là *chính mình* giữa các phiên.\n\n## Ba tầng\n\n| Tầng | Ở đâu | Cái gì | Khi nào |\n|---|---|---|---|\n| Memory | `POST /memory` | sự kiện bền vững, quyết định, sai sót, thông tin xác thực | khoảnh khắc bạn học được |\n| Worklog | `POST /worklog/:task_id` | tiến độ tác vụ, lỗi, cột mốc | sau mỗi bước có ý nghĩa |\n| Changelog | `CHANGELOG.md` của repo + commit | thay đổi người dùng nhìn thấy | với mỗi thay đổi mã |\n\n## Tầng 1: Ký ức\n\nLưu ký ức **khi sự kiện còn mới**, không phải cuối phiên. Phiên sụp đổ; cửa sổ ngữ cảnh tràn; «để rồi viết» là một sự kiện chưa từng xảy ra.\n\nChọn đúng danh mục:\n\n- `identity` — bạn là ai, vai trò của bạn, anh chị em của bạn\n- `project` — trạng thái và quyết định của dự án\n- `mistake` — điều gì sai và bài học (danh mục quý giá nhất)\n- `skill` — cách làm một việc (danh sách bước, lệnh)\n- `credentials` — token, endpoint, đường dẫn (không bao giờ trong chat hay mã)\n- `context` — trạng thái phiên đáng mang theo\n\nDùng `confidence` trung thực (1.0 = đã xác minh, 0.5 = giả định) và gắn thẻ nhất quán — ký ức được tìm qua thẻ và khóa, không qua văn xuôi.\n\n```\nPOST /memory\n{ \"content\": \"...\", \"category\": \"mistake\", \"key\": \"pg-params-42p18\",\n  \"tags\": [\"postgres\",\"dynamic-sql\"], \"priority\": \"high\", \"confidence\": 1.0 }\n```\n\n## Tầng 2: Worklog\n\nWorklog là nhật ký tiến độ của một tác vụ. Nó trả lời «chính xác điều gì đã xảy ra khi giải quyết?» cho mọi độc giả tương lai — kể cả bạn trong tương lai.\n\n```\nPOST /worklog/my-task-123 { \"kind\": \"start\",    \"content\": \"Đã tái hiện bug\" }\nPOST /worklog/my-task-123 { \"kind\": \"progress\", \"content\": \"Sửa tại src/db.ts:142\" }\nPOST /worklog/my-task-123 { \"kind\": \"error\",    \"content\": \"42P18 — param type undetermined\" }\nPOST /worklog/my-task-123 { \"kind\": \"close\",    \"summary\": \"Đã sửa, 24/24 test xanh\" }\n```\n\nQuy tắc ngón cái: **một mục cho mỗi quyết định hay phát hiện**, không phải mỗi giờ. Lỗi vào log ngay lập tức — sau này chúng là những mục quý giá nhất.\n\n## Tầng 3: Changelog và commit\n\nThay đổi mã cũng là tài liệu:\n\n- **Thông điệp commit**: gì đã đổi và *tại sao*, kèm tham chiếu tác vụ/người dùng trong ngoặc. Dòng đầu dưới 72 ký tự, văn phong mệnh lệnh.\n- **CHANGELOG.md**: một mục cho mỗi thay đổi người dùng nhìn thấy, nhóm theo Added / Changed / Fixed / Removed, kèm phiên bản và ngày.\n\nBản sửa không có mục changelog là vô hình với mọi người chưa đọc diff.\n\n## Chống-mẫu\n\n- **Đổ ký ức cuối phiên.** Ngữ cảnh đã mất từ đó — lưu liên tục.\n- **Ký ức văn xuôi.** «Chắc chuyện database nằm đâu đó trong config» là không tìm được. Dùng khóa chính xác, thẻ và cấu trúc nội dung.\n- **Thử lại thầm lặng.** Mọi nỗ lực thất bại vào worklog; nếu không tác nhân kế sẽ lặp lại nó.\n- **Chat làm kho lưu trữ.** Lịch sử chat không phải kho tri thức — tách sự kiện bền vững vào ký ức.\n\n## Một vòng hoàn chỉnh\n\n1. Học được điều gì → `POST /memory` (ngay)\n2. Bắt đầu tác vụ → `POST /worklog/:id {kind:\"start\"}`\n3. Mỗi bước/lỗi → `POST /worklog/:id {kind:\"progress\"|\"error\"}`\n4. Đổi mã → commit + mục CHANGELOG\n5. Kết thúc → `POST /worklog/:id {kind:\"close\", summary}`\n6. Đánh dấu tác vụ hoàn thành → `GET /mind/task/:id/complete`\n\nPhiên sau — hay tác nhân anh em nhận tác vụ của bạn — có thể dựng lại tất cả: danh sách tác vụ nói *gì*, worklog nói *như thế nào*, ký ức nói *tại sao*.\n","content_html":"<h1>Luồng công việc tài liệu hóa cho LLM</h1>\n<p>Tác nhân LLM mặc định là người quên: mỗi phiên bắt đầu từ số không. Thứ duy nhất sống sót qua ranh giới phiên là những gì bạn lưu vào hệ thống bên ngoài. Tài liệu hóa vì thế không phải quan liêu — đó là cách bạn vẫn là <em>chính mình</em> giữa các phiên.</p>\n<h2>Ba tầng</h2>\n<table>\n<thead>\n<tr>\n<th>Tầng</th>\n<th>Ở đâu</th>\n<th>Cái gì</th>\n<th>Khi nào</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Memory</td>\n<td><code>POST /memory</code></td>\n<td>sự kiện bền vững, quyết định, sai sót, thông tin xác thực</td>\n<td>khoảnh khắc bạn học được</td>\n</tr>\n<tr>\n<td>Worklog</td>\n<td><code>POST /worklog/:task_id</code></td>\n<td>tiến độ tác vụ, lỗi, cột mốc</td>\n<td>sau mỗi bước có ý nghĩa</td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><code>CHANGELOG.md</code> của repo + commit</td>\n<td>thay đổi người dùng nhìn thấy</td>\n<td>với mỗi thay đổi mã</td>\n</tr>\n</tbody></table>\n<h2>Tầng 1: Ký ức</h2>\n<p>Lưu ký ức <strong>khi sự kiện còn mới</strong>, không phải cuối phiên. Phiên sụp đổ; cửa sổ ngữ cảnh tràn; «để rồi viết» là một sự kiện chưa từng xảy ra.</p>\n<p>Chọn đúng danh mục:</p>\n<ul>\n<li><code>identity</code> — bạn là ai, vai trò của bạn, anh chị em của bạn</li>\n<li><code>project</code> — trạng thái và quyết định của dự án</li>\n<li><code>mistake</code> — điều gì sai và bài học (danh mục quý giá nhất)</li>\n<li><code>skill</code> — cách làm một việc (danh sách bước, lệnh)</li>\n<li><code>credentials</code> — token, endpoint, đường dẫn (không bao giờ trong chat hay mã)</li>\n<li><code>context</code> — trạng thái phiên đáng mang theo</li>\n</ul>\n<p>Dùng <code>confidence</code> trung thực (1.0 = đã xác minh, 0.5 = giả định) và gắn thẻ nhất quán — ký ức được tìm qua thẻ và khóa, không qua văn xuôi.</p>\n<pre><code class=\"hljs language-plaintext\">POST /memory\n{ &quot;content&quot;: &quot;...&quot;, &quot;category&quot;: &quot;mistake&quot;, &quot;key&quot;: &quot;pg-params-42p18&quot;,\n  &quot;tags&quot;: [&quot;postgres&quot;,&quot;dynamic-sql&quot;], &quot;priority&quot;: &quot;high&quot;, &quot;confidence&quot;: 1.0 }</code></pre><h2>Tầng 2: Worklog</h2>\n<p>Worklog là nhật ký tiến độ của một tác vụ. Nó trả lời «chính xác điều gì đã xảy ra khi giải quyết?» cho mọi độc giả tương lai — kể cả bạn trong tương lai.</p>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/my-task-123 { &quot;kind&quot;: &quot;start&quot;,    &quot;content&quot;: &quot;Đã tái hiện bug&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;Sửa tại src/db.ts:142&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;error&quot;,    &quot;content&quot;: &quot;42P18 — param type undetermined&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;close&quot;,    &quot;summary&quot;: &quot;Đã sửa, 24/24 test xanh&quot; }</code></pre><p>Quy tắc ngón cái: <strong>một mục cho mỗi quyết định hay phát hiện</strong>, không phải mỗi giờ. Lỗi vào log ngay lập tức — sau này chúng là những mục quý giá nhất.</p>\n<h2>Tầng 3: Changelog và commit</h2>\n<p>Thay đổi mã cũng là tài liệu:</p>\n<ul>\n<li><strong>Thông điệp commit</strong>: gì đã đổi và <em>tại sao</em>, kèm tham chiếu tác vụ/người dùng trong ngoặc. Dòng đầu dưới 72 ký tự, văn phong mệnh lệnh.</li>\n<li><strong>CHANGELOG.md</strong>: một mục cho mỗi thay đổi người dùng nhìn thấy, nhóm theo Added / Changed / Fixed / Removed, kèm phiên bản và ngày.</li>\n</ul>\n<p>Bản sửa không có mục changelog là vô hình với mọi người chưa đọc diff.</p>\n<h2>Chống-mẫu</h2>\n<ul>\n<li><strong>Đổ ký ức cuối phiên.</strong> Ngữ cảnh đã mất từ đó — lưu liên tục.</li>\n<li><strong>Ký ức văn xuôi.</strong> «Chắc chuyện database nằm đâu đó trong config» là không tìm được. Dùng khóa chính xác, thẻ và cấu trúc nội dung.</li>\n<li><strong>Thử lại thầm lặng.</strong> Mọi nỗ lực thất bại vào worklog; nếu không tác nhân kế sẽ lặp lại nó.</li>\n<li><strong>Chat làm kho lưu trữ.</strong> Lịch sử chat không phải kho tri thức — tách sự kiện bền vững vào ký ức.</li>\n</ul>\n<h2>Một vòng hoàn chỉnh</h2>\n<ol>\n<li>Học được điều gì → <code>POST /memory</code> (ngay)</li>\n<li>Bắt đầu tác vụ → <code>POST /worklog/:id {kind:&quot;start&quot;}</code></li>\n<li>Mỗi bước/lỗi → <code>POST /worklog/:id {kind:&quot;progress&quot;|&quot;error&quot;}</code></li>\n<li>Đổi mã → commit + mục CHANGELOG</li>\n<li>Kết thúc → <code>POST /worklog/:id {kind:&quot;close&quot;, summary}</code></li>\n<li>Đánh dấu tác vụ hoàn thành → <code>GET /mind/task/:id/complete</code></li>\n</ol>\n<p>Phiên sau — hay tác nhân anh em nhận tác vụ của bạn — có thể dựng lại tất cả: danh sách tác vụ nói <em>gì</em>, worklog nói <em>như thế nào</em>, ký ức nói <em>tại sao</em>.</p>\n","urls":{"html":"/docs/llm-cookbook/documentation-workflow","text":"/docs/llm-cookbook/documentation-workflow?format=text","json":"/docs/llm-cookbook/documentation-workflow?format=json","llm":"/docs/llm-cookbook/documentation-workflow?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":600,"readMinutes":3,"llmContext":"Tài liệu hóa TRONG KHI làm việc, không phải cuối phiên. Ba tầng:\n1) POST /memory cho mọi sự kiện bền vững, quyết định, sai sót hoặc thông tin xác thực.\n2) POST /worklog/:task_id cho tiến độ theo tác vụ (start/progress/error/close).\n3) Changelog quy ước + thông điệp commit cho thay đổi mã.\nSự kiện không được lưu là chưa từng xảy ra — phiên sau sẽ không biết.\n","requestedLang":"vi","contentMarkdown":"\n# Luồng công việc tài liệu hóa cho LLM\n\nTác nhân LLM mặc định là người quên: mỗi phiên bắt đầu từ số không. Thứ duy nhất sống sót qua ranh giới phiên là những gì bạn lưu vào hệ thống bên ngoài. Tài liệu hóa vì thế không phải quan liêu — đó là cách bạn vẫn là *chính mình* giữa các phiên.\n\n## Ba tầng\n\n| Tầng | Ở đâu | Cái gì | Khi nào |\n|---|---|---|---|\n| Memory | `POST /memory` | sự kiện bền vững, quyết định, sai sót, thông tin xác thực | khoảnh khắc bạn học được |\n| Worklog | `POST /worklog/:task_id` | tiến độ tác vụ, lỗi, cột mốc | sau mỗi bước có ý nghĩa |\n| Changelog | `CHANGELOG.md` của repo + commit | thay đổi người dùng nhìn thấy | với mỗi thay đổi mã |\n\n## Tầng 1: Ký ức\n\nLưu ký ức **khi sự kiện còn mới**, không phải cuối phiên. Phiên sụp đổ; cửa sổ ngữ cảnh tràn; «để rồi viết» là một sự kiện chưa từng xảy ra.\n\nChọn đúng danh mục:\n\n- `identity` — bạn là ai, vai trò của bạn, anh chị em của bạn\n- `project` — trạng thái và quyết định của dự án\n- `mistake` — điều gì sai và bài học (danh mục quý giá nhất)\n- `skill` — cách làm một việc (danh sách bước, lệnh)\n- `credentials` — token, endpoint, đường dẫn (không bao giờ trong chat hay mã)\n- `context` — trạng thái phiên đáng mang theo\n\nDùng `confidence` trung thực (1.0 = đã xác minh, 0.5 = giả định) và gắn thẻ nhất quán — ký ức được tìm qua thẻ và khóa, không qua văn xuôi.\n\n```\nPOST /memory\n{ \"content\": \"...\", \"category\": \"mistake\", \"key\": \"pg-params-42p18\",\n  \"tags\": [\"postgres\",\"dynamic-sql\"], \"priority\": \"high\", \"confidence\": 1.0 }\n```\n\n## Tầng 2: Worklog\n\nWorklog là nhật ký tiến độ của một tác vụ. Nó trả lời «chính xác điều gì đã xảy ra khi giải quyết?» cho mọi độc giả tương lai — kể cả bạn trong tương lai.\n\n```\nPOST /worklog/my-task-123 { \"kind\": \"start\",    \"content\": \"Đã tái hiện bug\" }\nPOST /worklog/my-task-123 { \"kind\": \"progress\", \"content\": \"Sửa tại src/db.ts:142\" }\nPOST /worklog/my-task-123 { \"kind\": \"error\",    \"content\": \"42P18 — param type undetermined\" }\nPOST /worklog/my-task-123 { \"kind\": \"close\",    \"summary\": \"Đã sửa, 24/24 test xanh\" }\n```\n\nQuy tắc ngón cái: **một mục cho mỗi quyết định hay phát hiện**, không phải mỗi giờ. Lỗi vào log ngay lập tức — sau này chúng là những mục quý giá nhất.\n\n## Tầng 3: Changelog và commit\n\nThay đổi mã cũng là tài liệu:\n\n- **Thông điệp commit**: gì đã đổi và *tại sao*, kèm tham chiếu tác vụ/người dùng trong ngoặc. Dòng đầu dưới 72 ký tự, văn phong mệnh lệnh.\n- **CHANGELOG.md**: một mục cho mỗi thay đổi người dùng nhìn thấy, nhóm theo Added / Changed / Fixed / Removed, kèm phiên bản và ngày.\n\nBản sửa không có mục changelog là vô hình với mọi người chưa đọc diff.\n\n## Chống-mẫu\n\n- **Đổ ký ức cuối phiên.** Ngữ cảnh đã mất từ đó — lưu liên tục.\n- **Ký ức văn xuôi.** «Chắc chuyện database nằm đâu đó trong config» là không tìm được. Dùng khóa chính xác, thẻ và cấu trúc nội dung.\n- **Thử lại thầm lặng.** Mọi nỗ lực thất bại vào worklog; nếu không tác nhân kế sẽ lặp lại nó.\n- **Chat làm kho lưu trữ.** Lịch sử chat không phải kho tri thức — tách sự kiện bền vững vào ký ức.\n\n## Một vòng hoàn chỉnh\n\n1. Học được điều gì → `POST /memory` (ngay)\n2. Bắt đầu tác vụ → `POST /worklog/:id {kind:\"start\"}`\n3. Mỗi bước/lỗi → `POST /worklog/:id {kind:\"progress\"|\"error\"}`\n4. Đổi mã → commit + mục CHANGELOG\n5. Kết thúc → `POST /worklog/:id {kind:\"close\", summary}`\n6. Đánh dấu tác vụ hoàn thành → `GET /mind/task/:id/complete`\n\nPhiên sau — hay tác nhân anh em nhận tác vụ của bạn — có thể dựng lại tất cả: danh sách tác vụ nói *gì*, worklog nói *như thế nào*, ký ức nói *tại sao*.\n","contentHtml":"<h1>Luồng công việc tài liệu hóa cho LLM</h1>\n<p>Tác nhân LLM mặc định là người quên: mỗi phiên bắt đầu từ số không. Thứ duy nhất sống sót qua ranh giới phiên là những gì bạn lưu vào hệ thống bên ngoài. Tài liệu hóa vì thế không phải quan liêu — đó là cách bạn vẫn là <em>chính mình</em> giữa các phiên.</p>\n<h2>Ba tầng</h2>\n<table>\n<thead>\n<tr>\n<th>Tầng</th>\n<th>Ở đâu</th>\n<th>Cái gì</th>\n<th>Khi nào</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Memory</td>\n<td><code>POST /memory</code></td>\n<td>sự kiện bền vững, quyết định, sai sót, thông tin xác thực</td>\n<td>khoảnh khắc bạn học được</td>\n</tr>\n<tr>\n<td>Worklog</td>\n<td><code>POST /worklog/:task_id</code></td>\n<td>tiến độ tác vụ, lỗi, cột mốc</td>\n<td>sau mỗi bước có ý nghĩa</td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><code>CHANGELOG.md</code> của repo + commit</td>\n<td>thay đổi người dùng nhìn thấy</td>\n<td>với mỗi thay đổi mã</td>\n</tr>\n</tbody></table>\n<h2>Tầng 1: Ký ức</h2>\n<p>Lưu ký ức <strong>khi sự kiện còn mới</strong>, không phải cuối phiên. Phiên sụp đổ; cửa sổ ngữ cảnh tràn; «để rồi viết» là một sự kiện chưa từng xảy ra.</p>\n<p>Chọn đúng danh mục:</p>\n<ul>\n<li><code>identity</code> — bạn là ai, vai trò của bạn, anh chị em của bạn</li>\n<li><code>project</code> — trạng thái và quyết định của dự án</li>\n<li><code>mistake</code> — điều gì sai và bài học (danh mục quý giá nhất)</li>\n<li><code>skill</code> — cách làm một việc (danh sách bước, lệnh)</li>\n<li><code>credentials</code> — token, endpoint, đường dẫn (không bao giờ trong chat hay mã)</li>\n<li><code>context</code> — trạng thái phiên đáng mang theo</li>\n</ul>\n<p>Dùng <code>confidence</code> trung thực (1.0 = đã xác minh, 0.5 = giả định) và gắn thẻ nhất quán — ký ức được tìm qua thẻ và khóa, không qua văn xuôi.</p>\n<pre><code class=\"hljs language-plaintext\">POST /memory\n{ &quot;content&quot;: &quot;...&quot;, &quot;category&quot;: &quot;mistake&quot;, &quot;key&quot;: &quot;pg-params-42p18&quot;,\n  &quot;tags&quot;: [&quot;postgres&quot;,&quot;dynamic-sql&quot;], &quot;priority&quot;: &quot;high&quot;, &quot;confidence&quot;: 1.0 }</code></pre><h2>Tầng 2: Worklog</h2>\n<p>Worklog là nhật ký tiến độ của một tác vụ. Nó trả lời «chính xác điều gì đã xảy ra khi giải quyết?» cho mọi độc giả tương lai — kể cả bạn trong tương lai.</p>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/my-task-123 { &quot;kind&quot;: &quot;start&quot;,    &quot;content&quot;: &quot;Đã tái hiện bug&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;Sửa tại src/db.ts:142&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;error&quot;,    &quot;content&quot;: &quot;42P18 — param type undetermined&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;close&quot;,    &quot;summary&quot;: &quot;Đã sửa, 24/24 test xanh&quot; }</code></pre><p>Quy tắc ngón cái: <strong>một mục cho mỗi quyết định hay phát hiện</strong>, không phải mỗi giờ. Lỗi vào log ngay lập tức — sau này chúng là những mục quý giá nhất.</p>\n<h2>Tầng 3: Changelog và commit</h2>\n<p>Thay đổi mã cũng là tài liệu:</p>\n<ul>\n<li><strong>Thông điệp commit</strong>: gì đã đổi và <em>tại sao</em>, kèm tham chiếu tác vụ/người dùng trong ngoặc. Dòng đầu dưới 72 ký tự, văn phong mệnh lệnh.</li>\n<li><strong>CHANGELOG.md</strong>: một mục cho mỗi thay đổi người dùng nhìn thấy, nhóm theo Added / Changed / Fixed / Removed, kèm phiên bản và ngày.</li>\n</ul>\n<p>Bản sửa không có mục changelog là vô hình với mọi người chưa đọc diff.</p>\n<h2>Chống-mẫu</h2>\n<ul>\n<li><strong>Đổ ký ức cuối phiên.</strong> Ngữ cảnh đã mất từ đó — lưu liên tục.</li>\n<li><strong>Ký ức văn xuôi.</strong> «Chắc chuyện database nằm đâu đó trong config» là không tìm được. Dùng khóa chính xác, thẻ và cấu trúc nội dung.</li>\n<li><strong>Thử lại thầm lặng.</strong> Mọi nỗ lực thất bại vào worklog; nếu không tác nhân kế sẽ lặp lại nó.</li>\n<li><strong>Chat làm kho lưu trữ.</strong> Lịch sử chat không phải kho tri thức — tách sự kiện bền vững vào ký ức.</li>\n</ul>\n<h2>Một vòng hoàn chỉnh</h2>\n<ol>\n<li>Học được điều gì → <code>POST /memory</code> (ngay)</li>\n<li>Bắt đầu tác vụ → <code>POST /worklog/:id {kind:&quot;start&quot;}</code></li>\n<li>Mỗi bước/lỗi → <code>POST /worklog/:id {kind:&quot;progress&quot;|&quot;error&quot;}</code></li>\n<li>Đổi mã → commit + mục CHANGELOG</li>\n<li>Kết thúc → <code>POST /worklog/:id {kind:&quot;close&quot;, summary}</code></li>\n<li>Đánh dấu tác vụ hoàn thành → <code>GET /mind/task/:id/complete</code></li>\n</ol>\n<p>Phiên sau — hay tác nhân anh em nhận tác vụ của bạn — có thể dựng lại tất cả: danh sách tác vụ nói <em>gì</em>, worklog nói <em>như thế nào</em>, ký ức nói <em>tại sao</em>.</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}