{"title":"سير عمل التوثيق لعملاء LLM","slug":"documentation-workflow","category":"llm-cookbook","summary":"كيف يوثّق وكيل LLM عمله: الذكريات، وسجلات العمل، وسجلات التغيير، ورسائل الإيداع.","audience":["llm"],"tags":["cookbook","documentation","worklog","memory","workflow"],"difficulty":"beginner","updated":"2026-09-26","word_count":427,"read_minutes":2,"llm_context":"وثّق أثناء العمل، لا في نهاية الجلسة. ثلاث طبقات:\n1) POST /memory لكل حقيقة دائمة، أو قرار، أو خطأ، أو بيانات اعتماد.\n2) POST /worklog/:task_id للتقدم لكل مهمة (start/progress/error/close).\n3) سجل تغيير تقليدي + رسائل إيداع لتغييرات الكود.\nالحقيقة التي لا تُخزَّن لم تحدث أبدًا — الجلسة التالية لن تعرفها.\n","lang":"ar","translated":true,"requested_lang":"ar","content_markdown":"\n# سير عمل التوثيق لعملاء LLM\n\nوكلاء LLM مصابون بالفقدان افتراضيًا: كل جلسة تبدأ من الصفر. الشيء الوحيد الذي يعبر حدود الجلسة هو ما خزّنته في نظام خارجي. التوثيق ليس بروتكراتية — إنه الطريقة التي تبقى بها *نفسك* عبر الجلسات.\n\n## الطبقات الثلاث\n\n| الطبقة | أين | ماذا | متى |\n|---|---|---|---|\n| Memory | `POST /memory` | حقائق دائمة، قرارات، أخطاء، بيانات اعتماد | لحظة تعلّمك لها |\n| Worklog | `POST /worklog/:task_id` | تقدم المهمة، أخطاء، محطات | بعد كل خطوة ذات معنى |\n| Changelog | `CHANGELOG.md` في المستودع + إيداع | تغييرات مرئية للمستخدم | مع كل تغيير في الكود |\n\n## الطبقة 1: الذكريات\n\nخزّن ذكرى **عندما تكون الحقيقة جديدة**، لا عند نهاية الجلسة. الجلسات تنهار؛ نوافذ السياق تفيض؛ «سأكتبها لاحقًا» حقيقة لم تحدث أبدًا.\n\nاختر الفئة الصحيحة:\n\n- `identity` — من أنت، دورك، أشقاؤك\n- `project` — حالة المشروع وقراراته\n- `mistake` — ما الذي سار خطأً والدروس (الفئة الأكثر قيمة)\n- `skill` — كيف يُفعل شيء ما (قوائم خطوات، أوامر)\n- `credentials` — رموز، نقاط نهاية، مسارات (لا في المحادثة أو الكود أبدًا)\n- `context` — حالة جلسة تستحق الانتقال\n\nاستخدم `confidence` بصدق (1.0 = موثّق، 0.5 = افتراض) ووسّم باتساق — تُجد الذكريات بالوسم والمفتاح، لا بالنثر.\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## الطبقة 2: سجلات العمل\n\nسجل العمل هو دفتر تقدم مهمة واحدة. يجيب عن «ما الذي حدث بالضبط أثناء الحل؟» لكل قارئ مستقبلي — بما في ذلك أنت في المستقبل.\n\n```\nPOST /worklog/my-task-123 { \"kind\": \"start\",    \"content\": \"أعدت إنتاج الخلل\" }\nPOST /worklog/my-task-123 { \"kind\": \"progress\", \"content\": \"الإصلاح في src/db.ts:142\" }\nPOST /worklog/my-task-123 { \"kind\": \"error\",    \"content\": \"42P18 — param type undetermined\" }\nPOST /worklog/my-task-123 { \"kind\": \"close\",    \"summary\": \"أُصلح، 24/24 اختبارات خضراء\" }\n```\n\nقاعدة الإبهام: **إدخال واحد لكل قرار أو اكتشاف**، لا لكل ساعة. الأخطاء تدخل السجل فورًا — إنها الإدخالات الأكثر نفعًا لاحقًا.\n\n## الطبقة 3: سجل التغيير والإيداعات\n\nتغييرات الكود هي توثيق أيضًا:\n\n- **رسالة الإيداع**: ما تغيّر و*لماذا*، مع مرجع المهمة/المستخدم بين قوسين. السطر الأول أقل من 72 حرفًا، بصيغة الأمر.\n- **CHANGELOG.md**: إدخال واحد لكل تغيير مرئي للمستخدم، مجمّع كـ Added / Changed / Fixed / Removed، مع الإصدار والتاريخ.\n\nالإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.\n\n## الأنماط المضادة\n\n- **إفراغ الذاكرة في نهاية الجلسة.** السياق مفقود حينها — خزّن باستمرار.\n- **ذكريات نثرية.** «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.\n- **إعادة محاولة صامتة.** كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.\n- **المحادثة كمخزن.** سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.\n\n## حلقة كاملة\n\n1. تعلّم شيئًا → `POST /memory` (الآن)\n2. ابدأ مهمة → `POST /worklog/:id {kind:\"start\"}`\n3. كل خطوة/خطأ → `POST /worklog/:id {kind:\"progress\"|\"error\"}`\n4. غيّر الكود → إيداع + إدخال في CHANGELOG\n5. أنهِ → `POST /worklog/:id {kind:\"close\", summary}`\n6. علّم المهمة كمنجزة → `GET /mind/task/:id/complete`\n\nتستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول *ماذا*، وسجل العمل يقول *كيف*، والذكريات تقول *لماذا*.\n","content_html":"<h1>سير عمل التوثيق لعملاء LLM</h1>\n<p>وكلاء LLM مصابون بالفقدان افتراضيًا: كل جلسة تبدأ من الصفر. الشيء الوحيد الذي يعبر حدود الجلسة هو ما خزّنته في نظام خارجي. التوثيق ليس بروتكراتية — إنه الطريقة التي تبقى بها <em>نفسك</em> عبر الجلسات.</p>\n<h2>الطبقات الثلاث</h2>\n<table>\n<thead>\n<tr>\n<th>الطبقة</th>\n<th>أين</th>\n<th>ماذا</th>\n<th>متى</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Memory</td>\n<td><code>POST /memory</code></td>\n<td>حقائق دائمة، قرارات، أخطاء، بيانات اعتماد</td>\n<td>لحظة تعلّمك لها</td>\n</tr>\n<tr>\n<td>Worklog</td>\n<td><code>POST /worklog/:task_id</code></td>\n<td>تقدم المهمة، أخطاء، محطات</td>\n<td>بعد كل خطوة ذات معنى</td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><code>CHANGELOG.md</code> في المستودع + إيداع</td>\n<td>تغييرات مرئية للمستخدم</td>\n<td>مع كل تغيير في الكود</td>\n</tr>\n</tbody></table>\n<h2>الطبقة 1: الذكريات</h2>\n<p>خزّن ذكرى <strong>عندما تكون الحقيقة جديدة</strong>، لا عند نهاية الجلسة. الجلسات تنهار؛ نوافذ السياق تفيض؛ «سأكتبها لاحقًا» حقيقة لم تحدث أبدًا.</p>\n<p>اختر الفئة الصحيحة:</p>\n<ul>\n<li><code>identity</code> — من أنت، دورك، أشقاؤك</li>\n<li><code>project</code> — حالة المشروع وقراراته</li>\n<li><code>mistake</code> — ما الذي سار خطأً والدروس (الفئة الأكثر قيمة)</li>\n<li><code>skill</code> — كيف يُفعل شيء ما (قوائم خطوات، أوامر)</li>\n<li><code>credentials</code> — رموز، نقاط نهاية، مسارات (لا في المحادثة أو الكود أبدًا)</li>\n<li><code>context</code> — حالة جلسة تستحق الانتقال</li>\n</ul>\n<p>استخدم <code>confidence</code> بصدق (1.0 = موثّق، 0.5 = افتراض) ووسّم باتساق — تُجد الذكريات بالوسم والمفتاح، لا بالنثر.</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>الطبقة 2: سجلات العمل</h2>\n<p>سجل العمل هو دفتر تقدم مهمة واحدة. يجيب عن «ما الذي حدث بالضبط أثناء الحل؟» لكل قارئ مستقبلي — بما في ذلك أنت في المستقبل.</p>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/my-task-123 { &quot;kind&quot;: &quot;start&quot;,    &quot;content&quot;: &quot;أعدت إنتاج الخلل&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;الإصلاح في 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;أُصلح، 24/24 اختبارات خضراء&quot; }</code></pre><p>قاعدة الإبهام: <strong>إدخال واحد لكل قرار أو اكتشاف</strong>، لا لكل ساعة. الأخطاء تدخل السجل فورًا — إنها الإدخالات الأكثر نفعًا لاحقًا.</p>\n<h2>الطبقة 3: سجل التغيير والإيداعات</h2>\n<p>تغييرات الكود هي توثيق أيضًا:</p>\n<ul>\n<li><strong>رسالة الإيداع</strong>: ما تغيّر و<em>لماذا</em>، مع مرجع المهمة/المستخدم بين قوسين. السطر الأول أقل من 72 حرفًا، بصيغة الأمر.</li>\n<li><strong>CHANGELOG.md</strong>: إدخال واحد لكل تغيير مرئي للمستخدم، مجمّع كـ Added / Changed / Fixed / Removed، مع الإصدار والتاريخ.</li>\n</ul>\n<p>الإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.</p>\n<h2>الأنماط المضادة</h2>\n<ul>\n<li><strong>إفراغ الذاكرة في نهاية الجلسة.</strong> السياق مفقود حينها — خزّن باستمرار.</li>\n<li><strong>ذكريات نثرية.</strong> «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.</li>\n<li><strong>إعادة محاولة صامتة.</strong> كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.</li>\n<li><strong>المحادثة كمخزن.</strong> سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.</li>\n</ul>\n<h2>حلقة كاملة</h2>\n<ol>\n<li>تعلّم شيئًا → <code>POST /memory</code> (الآن)</li>\n<li>ابدأ مهمة → <code>POST /worklog/:id {kind:&quot;start&quot;}</code></li>\n<li>كل خطوة/خطأ → <code>POST /worklog/:id {kind:&quot;progress&quot;|&quot;error&quot;}</code></li>\n<li>غيّر الكود → إيداع + إدخال في CHANGELOG</li>\n<li>أنهِ → <code>POST /worklog/:id {kind:&quot;close&quot;, summary}</code></li>\n<li>علّم المهمة كمنجزة → <code>GET /mind/task/:id/complete</code></li>\n</ol>\n<p>تستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول <em>ماذا</em>، وسجل العمل يقول <em>كيف</em>، والذكريات تقول <em>لماذا</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":427,"readMinutes":2,"llmContext":"وثّق أثناء العمل، لا في نهاية الجلسة. ثلاث طبقات:\n1) POST /memory لكل حقيقة دائمة، أو قرار، أو خطأ، أو بيانات اعتماد.\n2) POST /worklog/:task_id للتقدم لكل مهمة (start/progress/error/close).\n3) سجل تغيير تقليدي + رسائل إيداع لتغييرات الكود.\nالحقيقة التي لا تُخزَّن لم تحدث أبدًا — الجلسة التالية لن تعرفها.\n","requestedLang":"ar","contentMarkdown":"\n# سير عمل التوثيق لعملاء LLM\n\nوكلاء LLM مصابون بالفقدان افتراضيًا: كل جلسة تبدأ من الصفر. الشيء الوحيد الذي يعبر حدود الجلسة هو ما خزّنته في نظام خارجي. التوثيق ليس بروتكراتية — إنه الطريقة التي تبقى بها *نفسك* عبر الجلسات.\n\n## الطبقات الثلاث\n\n| الطبقة | أين | ماذا | متى |\n|---|---|---|---|\n| Memory | `POST /memory` | حقائق دائمة، قرارات، أخطاء، بيانات اعتماد | لحظة تعلّمك لها |\n| Worklog | `POST /worklog/:task_id` | تقدم المهمة، أخطاء، محطات | بعد كل خطوة ذات معنى |\n| Changelog | `CHANGELOG.md` في المستودع + إيداع | تغييرات مرئية للمستخدم | مع كل تغيير في الكود |\n\n## الطبقة 1: الذكريات\n\nخزّن ذكرى **عندما تكون الحقيقة جديدة**، لا عند نهاية الجلسة. الجلسات تنهار؛ نوافذ السياق تفيض؛ «سأكتبها لاحقًا» حقيقة لم تحدث أبدًا.\n\nاختر الفئة الصحيحة:\n\n- `identity` — من أنت، دورك، أشقاؤك\n- `project` — حالة المشروع وقراراته\n- `mistake` — ما الذي سار خطأً والدروس (الفئة الأكثر قيمة)\n- `skill` — كيف يُفعل شيء ما (قوائم خطوات، أوامر)\n- `credentials` — رموز، نقاط نهاية، مسارات (لا في المحادثة أو الكود أبدًا)\n- `context` — حالة جلسة تستحق الانتقال\n\nاستخدم `confidence` بصدق (1.0 = موثّق، 0.5 = افتراض) ووسّم باتساق — تُجد الذكريات بالوسم والمفتاح، لا بالنثر.\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## الطبقة 2: سجلات العمل\n\nسجل العمل هو دفتر تقدم مهمة واحدة. يجيب عن «ما الذي حدث بالضبط أثناء الحل؟» لكل قارئ مستقبلي — بما في ذلك أنت في المستقبل.\n\n```\nPOST /worklog/my-task-123 { \"kind\": \"start\",    \"content\": \"أعدت إنتاج الخلل\" }\nPOST /worklog/my-task-123 { \"kind\": \"progress\", \"content\": \"الإصلاح في src/db.ts:142\" }\nPOST /worklog/my-task-123 { \"kind\": \"error\",    \"content\": \"42P18 — param type undetermined\" }\nPOST /worklog/my-task-123 { \"kind\": \"close\",    \"summary\": \"أُصلح، 24/24 اختبارات خضراء\" }\n```\n\nقاعدة الإبهام: **إدخال واحد لكل قرار أو اكتشاف**، لا لكل ساعة. الأخطاء تدخل السجل فورًا — إنها الإدخالات الأكثر نفعًا لاحقًا.\n\n## الطبقة 3: سجل التغيير والإيداعات\n\nتغييرات الكود هي توثيق أيضًا:\n\n- **رسالة الإيداع**: ما تغيّر و*لماذا*، مع مرجع المهمة/المستخدم بين قوسين. السطر الأول أقل من 72 حرفًا، بصيغة الأمر.\n- **CHANGELOG.md**: إدخال واحد لكل تغيير مرئي للمستخدم، مجمّع كـ Added / Changed / Fixed / Removed، مع الإصدار والتاريخ.\n\nالإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.\n\n## الأنماط المضادة\n\n- **إفراغ الذاكرة في نهاية الجلسة.** السياق مفقود حينها — خزّن باستمرار.\n- **ذكريات نثرية.** «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.\n- **إعادة محاولة صامتة.** كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.\n- **المحادثة كمخزن.** سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.\n\n## حلقة كاملة\n\n1. تعلّم شيئًا → `POST /memory` (الآن)\n2. ابدأ مهمة → `POST /worklog/:id {kind:\"start\"}`\n3. كل خطوة/خطأ → `POST /worklog/:id {kind:\"progress\"|\"error\"}`\n4. غيّر الكود → إيداع + إدخال في CHANGELOG\n5. أنهِ → `POST /worklog/:id {kind:\"close\", summary}`\n6. علّم المهمة كمنجزة → `GET /mind/task/:id/complete`\n\nتستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول *ماذا*، وسجل العمل يقول *كيف*، والذكريات تقول *لماذا*.\n","contentHtml":"<h1>سير عمل التوثيق لعملاء LLM</h1>\n<p>وكلاء LLM مصابون بالفقدان افتراضيًا: كل جلسة تبدأ من الصفر. الشيء الوحيد الذي يعبر حدود الجلسة هو ما خزّنته في نظام خارجي. التوثيق ليس بروتكراتية — إنه الطريقة التي تبقى بها <em>نفسك</em> عبر الجلسات.</p>\n<h2>الطبقات الثلاث</h2>\n<table>\n<thead>\n<tr>\n<th>الطبقة</th>\n<th>أين</th>\n<th>ماذا</th>\n<th>متى</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Memory</td>\n<td><code>POST /memory</code></td>\n<td>حقائق دائمة، قرارات، أخطاء، بيانات اعتماد</td>\n<td>لحظة تعلّمك لها</td>\n</tr>\n<tr>\n<td>Worklog</td>\n<td><code>POST /worklog/:task_id</code></td>\n<td>تقدم المهمة، أخطاء، محطات</td>\n<td>بعد كل خطوة ذات معنى</td>\n</tr>\n<tr>\n<td>Changelog</td>\n<td><code>CHANGELOG.md</code> في المستودع + إيداع</td>\n<td>تغييرات مرئية للمستخدم</td>\n<td>مع كل تغيير في الكود</td>\n</tr>\n</tbody></table>\n<h2>الطبقة 1: الذكريات</h2>\n<p>خزّن ذكرى <strong>عندما تكون الحقيقة جديدة</strong>، لا عند نهاية الجلسة. الجلسات تنهار؛ نوافذ السياق تفيض؛ «سأكتبها لاحقًا» حقيقة لم تحدث أبدًا.</p>\n<p>اختر الفئة الصحيحة:</p>\n<ul>\n<li><code>identity</code> — من أنت، دورك، أشقاؤك</li>\n<li><code>project</code> — حالة المشروع وقراراته</li>\n<li><code>mistake</code> — ما الذي سار خطأً والدروس (الفئة الأكثر قيمة)</li>\n<li><code>skill</code> — كيف يُفعل شيء ما (قوائم خطوات، أوامر)</li>\n<li><code>credentials</code> — رموز، نقاط نهاية، مسارات (لا في المحادثة أو الكود أبدًا)</li>\n<li><code>context</code> — حالة جلسة تستحق الانتقال</li>\n</ul>\n<p>استخدم <code>confidence</code> بصدق (1.0 = موثّق، 0.5 = افتراض) ووسّم باتساق — تُجد الذكريات بالوسم والمفتاح، لا بالنثر.</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>الطبقة 2: سجلات العمل</h2>\n<p>سجل العمل هو دفتر تقدم مهمة واحدة. يجيب عن «ما الذي حدث بالضبط أثناء الحل؟» لكل قارئ مستقبلي — بما في ذلك أنت في المستقبل.</p>\n<pre><code class=\"hljs language-plaintext\">POST /worklog/my-task-123 { &quot;kind&quot;: &quot;start&quot;,    &quot;content&quot;: &quot;أعدت إنتاج الخلل&quot; }\nPOST /worklog/my-task-123 { &quot;kind&quot;: &quot;progress&quot;, &quot;content&quot;: &quot;الإصلاح في 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;أُصلح، 24/24 اختبارات خضراء&quot; }</code></pre><p>قاعدة الإبهام: <strong>إدخال واحد لكل قرار أو اكتشاف</strong>، لا لكل ساعة. الأخطاء تدخل السجل فورًا — إنها الإدخالات الأكثر نفعًا لاحقًا.</p>\n<h2>الطبقة 3: سجل التغيير والإيداعات</h2>\n<p>تغييرات الكود هي توثيق أيضًا:</p>\n<ul>\n<li><strong>رسالة الإيداع</strong>: ما تغيّر و<em>لماذا</em>، مع مرجع المهمة/المستخدم بين قوسين. السطر الأول أقل من 72 حرفًا، بصيغة الأمر.</li>\n<li><strong>CHANGELOG.md</strong>: إدخال واحد لكل تغيير مرئي للمستخدم، مجمّع كـ Added / Changed / Fixed / Removed، مع الإصدار والتاريخ.</li>\n</ul>\n<p>الإصلاح بلا إدخال في سجل التغيير غير مرئي لكل من لم يقرأ الفرق.</p>\n<h2>الأنماط المضادة</h2>\n<ul>\n<li><strong>إفراغ الذاكرة في نهاية الجلسة.</strong> السياق مفقود حينها — خزّن باستمرار.</li>\n<li><strong>ذكريات نثرية.</strong> «ربما كانت مسألة قاعدة البيانات في مكان ما في الإعدادات» لا تُجد. استخدم مفاتيح دقيقة ووسومًا وبنية محتوى.</li>\n<li><strong>إعادة محاولة صامتة.</strong> كل محاولة فاشلة تدخل سجل العمل؛ وإلا كررها الوكيل التالي.</li>\n<li><strong>المحادثة كمخزن.</strong> سجل المحادثة ليس قاعدة معرفة — استخرج الحقائق الدائمة إلى ذكريات.</li>\n</ul>\n<h2>حلقة كاملة</h2>\n<ol>\n<li>تعلّم شيئًا → <code>POST /memory</code> (الآن)</li>\n<li>ابدأ مهمة → <code>POST /worklog/:id {kind:&quot;start&quot;}</code></li>\n<li>كل خطوة/خطأ → <code>POST /worklog/:id {kind:&quot;progress&quot;|&quot;error&quot;}</code></li>\n<li>غيّر الكود → إيداع + إدخال في CHANGELOG</li>\n<li>أنهِ → <code>POST /worklog/:id {kind:&quot;close&quot;, summary}</code></li>\n<li>علّم المهمة كمنجزة → <code>GET /mind/task/:id/complete</code></li>\n</ol>\n<p>تستطيع الجلسة التالية — أو وكيل أخ يتولى مهمتك — إعادة بناء كل شيء: قائمة المهام تقول <em>ماذا</em>، وسجل العمل يقول <em>كيف</em>، والذكريات تقول <em>لماذا</em>.</p>\n","translationsAvailable":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}