1 / 17
🧠
الموديول 06 — الذاكرة والمهارات

الذاكرة والمهارات

الذاكرة اللي بتخلي الوكيل محترف — ومهارات بيحمّلها بس لما يحتاجها، من MEMORY.md لحد الـ Curator
17 شريحة ثنائي اللغة تطبيق عملي
شريحة 2 — أنواع الذاكرة الأربعة
أنواع الذاكرة الأربعة
الذاكرة مش صندوق واحد — دي طبقات، لكل طبقة دورة حياة ومكان تخزين مختلف
Memory Layers
+------------------------------------------------------------------+ | EPISODIC — "what happened" sessions + daily notes (SQLite FTS5) | | | | | v distilled | | SEMANTIC — "durable facts" MEMORY.md + USER.md (2,200 chars) | | | | | v turned into steps | | PROCEDURAL — "how to do it" skills/<name>/SKILL.md | +------------------------------------------------------------------+
النوع الاسم العربي المضمون مثال
Episodic ذاكرة قصصية إيه اللي حصل، إمتى، فين الأحد اللي صلّحت bug في الـ billing
Semantic ذاكرة دلالية حقائق ومعرفة عامة Postgres 16 بيدعم logical replication
Procedural ذاكرة إجرائية إزاي أعمل الحاجة خطوات الـ deploy على Kubernetes
Working ذاكرة عمل اللي في الـ context دلوقتي آخر 20 رسالة
💡
القاعدة الذهبية
لو المعلومة بتقول «إيه اللي حصل» ⇒ episodic. لو بتقول «إزاي أعمل» ⇒ procedural. لو لسه ما اولتش تعملها بس عايز متساها ⇒ semantic.
شريحة 3 — القصصية ضد الإجرائية
القصصية ضد الإجرائية
الفرق اللي بيلخبط الناس — لما تحط كل حاجة في الذاكرة، الذاكرة بتموت
Episodic — القصصية Procedural — الإجرائية
جوهرها أحداث ماضية طرق عمل
صيغتها «في X عملنا Y» «عشان تعمل X: 1) … 2) …»
مكانها في Hermes ~/.hermes/state.db (سجلات الجلسات) ~/.hermes/skills/<name>/SKILL.md
مكانها في OpenClaw memory/YYYY-MM-DD.md <workspace>/skills/<name>/SKILL.md
إزاي بتتعلّم «اتعلّمت إني عملت كذا» «اتعلّمت إزاي أعمل كذا»
بتتقفل مع الوقت؟ لأ — بتتراكم لأ — بتتحدّث
الاستهلاك بحث: «إيه اللي اتفق آخر مرة» تحميل: «إزاي أعمل الحاجة»
مثال واقعي «المستخدم طلب إن أكلمه بالعامية مصرى» «لما أعمل PR: branch، عدّل CHANGELOG، اطلب review»
ℹ️
ليه الاتنين مهمين مع بعض
من غير episodic الوكيل بيسألك نفس الأسئلة كل مرة. من غير semantic عارف تاريخك بس مش عارف إنك بتفضّل الرد بالعربي. من غير procedural بيتعلم الـ workflow بتاعك من أول مرة في كل مرة.
شريحة 4 — ذاكرة OpenClaw القائمة على الملفات
ذاكرة OpenClaw القائمة على الملفات
مفيش hidden state — الموديل مش بيفتكر غير اللي اتكتب على القرص
ℹ️
من التوثيق
OpenClaw بيتذكر حاجات عن طريق كتابة ملفات Markdown عادية في workspace بتاع الوكيل. النموذج مش بيفتكر غير اللي بيتحفظ على القرص؛ مفيش hidden state.
الملف النوع المحتوى بيتحمّل إمتى
USER.md اختياري تفضيلات ثابتة، أسلوب التواصل، سياق المشاريع — كـ directives بداية كل جلسة، بميزانية منفصلة
MEMORY.md ذاكرة طويلة المدى حقائق دائمة غير مرتبطة بالبروفايل وقرارات بداية كل جلسة
memory/YYYY-MM-DD.md طبقة العمل ملاحظات يومية، ملخصات جلسات، سياق خام مفهرس لـ memory_search — مش بيتحقن في كل turn
DREAMS.md اختياري ملخصات الـ Dream Diary للمراجعة البشرية مراجعة يدوية
⚠️
الـ workspace مش sandbox
الـ workspace هي default cwd مش hard sandbox.
شريحة 5 — أدوات ذاكرة OpenClaw والتجميع بالتجربة
أدوات ذاكرة OpenClaw والتجميع بالتجربة
بحث هجين + مسح خلفي يترقّى للملفات permanent
🔍
memory_search
يلاقي ملاحظات بالبحث الدلالي حتى لو الصياغة مختلفة
📄
memory_get
يقرأ ملف ذاكرة محدد أو مدى أسطر
🎯
intent
ينشئ / يعدّد / يلغي standing intents
🌙
dreaming
المسار الافتراضي لتجميع الذاكرة — مجدول ويترقّى للمؤهلين بس
ℹ️
الأوامر دي بتدّيك الفهرس والبحث من سطر الأوامر — والدوتش بيبني الـ cron للـ dreaming لوحده.
bash
# OpenClaw memory CLI
openclaw memory status          # حالة الفهرس والـ provider
openclaw memory search "query"  # بحث من سطر الأوامر
openclaw memory index --force   # أعد بناء الفهرس

# Dreaming sweep
openclaw memory rem-backfill --path ./memory --stage-short-term
openclaw memory rem-backfill --rollback

# شوف raw vs injected وحالة الـ truncation
openclaw doctor
💡
الـ dreaming مش مجاني المزاج
الترقيات لازم تعدّي score + recall-frequency + query-diversity gates.
شريحة 6 — ذاكرة Hermes: MEMORY.md و USER.md
ذاكرة Hermes: MEMORY.md و USER.md
bounded, curated memory that persists across sessions
الملف الغرض حد الأحرف ≈ توكنز
MEMORY.md ملاحظات الوكيل — حقائق البيئة، الأعراف، دروس اتعلّمها 2,200 ~800
USER.md بروفايل المستخدم — تفضيلاتك وأسلوب تواصلك 1,375 ~500
How memory appears in the system prompt
============================================== MEMORY (your personal notes) [67% — 1,474/2,200 chars] ============================================== User's project is a Rust web service at ~/code/myapi using Axum + SQLx § This machine runs Ubuntu 22.04, has Docker and Podman installed § User prefers concise responses, dislikes verbose explanations
⚠️
الملفان مخزّنين في ~/.hermes/memories/ وبيتحقن في الـ system prompt كـ frozen snapshot في بداية الجلسة. متثقش إن الكتابة اتحفظت لما الوكيل قال كده — افتح الملف بنفسك.
bash
# تأكيد إن الكتابة حصلت فعلاً
cat ~/.hermes/memories/MEMORY.md
cat ~/.hermes/memories/USER.md

# أنهي profile بتقرأ — الذاكرة per-profile
hermes profile list
⚠️
❄️ Frozen snapshot
حقن الـ system prompt بيتسجل مرة واحدة في بداية الجلسة وما يتغيرش في نصها.
شريحة 7 — أداة memory والإعداد
أداة memory والإعداد
add / replace / remove — مفيش action اسمه read
➕
add
ضيف إدخال جديد
🔄
replace
استبدل إدخال موجود بمحتوى محدّث
➖
remove
شيل إدخال مش مهم
🚫
read — مفيش
المحتوى بيتحقن أوتوماتيكاً في الـ system prompt
⚠️
الـ replace والـ remove بيستخدموا matching على substring قصيرة وفريدة — مش محتاج النص الكامل. لو الـ substring طابق أكتر من entry بيرجع error.
python
# الذاكرة فيها: "User prefers dark mode in all editors"
memory(action="replace", target="memory",
       old_text="dark mode",
       content="User prefers light mode in VS Code, dark mode in terminal")
ℹ️
الإعدادات دي تتحكم في حدود الذاكرة وبوابة الموافقة على كل كتابة.
yaml
# ~/.hermes/config.yaml
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200   # ~800 tokens
  user_char_limit: 1375     # ~500 tokens
  write_approval: false     # true = require approval before any memory write
🚨
replace بيكتب فوق الـ entry بالكامل
الـ old_text بيحدد مكان الـ entry بس — مش بيقصه ويبدله.
شريحة 8 — البحث عبر الجلسات: SQLite FTS5
البحث عبر الجلسات: SQLite FTS5
رسائل حقيقية من الـ DB — من غير تلخيص LLM، ومن غير اقتطاع
الميزة Persistent Memory Session Search
السعة ~1,300 توكن إجمالاً غير محدودة (كل الجلسات)
السرعة فوري (في الـ system prompt) ~20ms للاستعلام
التكلفة توكنز في كل prompt مجاني — من غير أي نداءات LLM
حالة الاستخدام حقائق أساسية متاحة دايماً استرجاع محادثات سابقة محددة
الإدارة curated يدوياً من الوكيل تلقائي — كل الجلسات متخزّنة
ℹ️
كل جلسات CLI والمراسلة بتتخزن في SQLite على ~/.hermes/state.db مع فهرس FTS5. الـ database بتخزن الـ session ID، المنصة، عنوان الجلسة، الـ system prompt snapshot، تاريخ الرسائل الكامل، عدّادات التوكنز، والـ parent session ID.
bash
# تصفح الجلسات السابقة
hermes sessions list
hermes sessions list --workspace my-project
hermes sessions prune                        # حذف جلسات قديمة من التخزين
hermes sessions optimize                     # دمج FTS5 segments + VACUUM

# استئناف جلسة
hermes -c                                   # آخر جلسة CLI (terminal-aware)
hermes --resume 20250305_091523_a1b2c3d4
⚠️
optimize و prune بيرفضوا لو الـ DB ماسك
كل من optimize و prune بيرفضوا لو عملية Hermes تانية ماسكة state.db.
شريحة 9 — مزودو الذاكرة
مزودو الذاكرة
Hermes فيه 7 providers خارجيين جاهزين ببلugins — واحد بس ينشط في نفس الوقت
ℹ️
الأمر ده بيفتح picker تفاعلي ويضبط الـ provider. الـ external provider إضافي على الذاكرة المدمجة، مش بيحل محلها.
bash
# إدارة مزود الذاكرة الخارجي
hermes memory setup      # picker تفاعلي + إعداد
hermes memory status     # شوف إيه النشط
hermes memory off        # عطّل الـ external provider

# أو يدوياً في ~/.hermes/config.yaml
# memory:
#   provider: openviking   # or honcho, mem0, holographic, retaindb,
#                          # byterover, supermemory, or hindsight
Provider الأحسن لإيه يتطلب التكلفة
Honcho multi-agent بسياق عبر الجلسات ومحاذاة user-agent API key أو instance self-hosted Honcho pricing / مجاني لو self-hosted
OpenViking معرفة self-hosted بـ hierarchy منظّم OpenViking مُهيّأ وشغّال مجاني (AGPL-3.0)
Mem0 إدارة ذاكرة بدون مجهود — استخراج أوتوماتيك API key أو سيرفر Mem0 أو LLM + vector store Mem0 pricing / مجاني
Hindsight recall بـ knowledge graph وعلاقات الكيانات hermes plugins install hindsight Hindsight pricing / مجاني محلياً
Holographic ذاكرة محلية بالكامل مع retrieval متقدم ولا حاجة — SQLite دايماً متاح مجاني
ByteRover ذاكرة portable local-first مع CLI ByteRover CLI مجاني محلياً
ℹ️
الـ providers كلهم profile-scoped
الـ providers كلهم profile-scoped.
شريحة 10 — كتابة SKILL.md يدوياً
كتابة SKILL.md يدوياً
مستندات معرفة على-demand — YAML frontmatter صحيح وجسم غير فاضي
Progressive Disclosure
Level 0: skills_list() → [{name, description, category}, ...] (~3k tokens) Level 1: skill_view(name) → Full content + metadata Level 2: skill_view(name, path) → Specific reference file
ℹ️
المجلد، الـ SKILL.md، وملفات الدعم بالشكل ده. الـ validator بيرفض أي frontmatter ناقص أو جسم فاضي.
bash
# البنية
mkdir -p ~/.hermes/skills/devops/deploy-production/references

# Minimal valid frontmatter
# name: lowercase, hyphens, <=64 chars
# description: <=60 chars, one sentence, ends with a period
# body: non-empty markdown after the closing ---
SKILL.md
# ~/.hermes/skills/devops/deploy-production/SKILL.md
---
name: deploy-production
description: Ship a service to production and verify the rollout.
version: 0.1.0
author: Your Name (yourhandle), Hermes Agent
license: MIT
platforms: [linux, macos]
metadata:
  hermes:
    tags: [devops, deploy, production]
    related_skills: [systematic-debugging]
---

# Deploy to Production

## When to Use
- The user asks to deploy or ship a service

## Procedure
1. Confirm the working tree is clean: `git status --porcelain`.
2. `kubectl apply -k deploy/` from the repo root.
3. Watch: `kubectl rollout status deploy/<name> --timeout=120s`.

## Pitfalls

- `rollout status` exits 0 when a rollout is *paused*.
💡
قواعد الـ description الصرامة
≤ 60 حرف، جملة واحدة، بتنتهي بنقطة.
شريحة 11 — الوكيل بينشئ المهارات من خبرته
الوكيل بينشئ المهارات من خبرته
الذاكرة الإجرائية — لما يلاقي workflow غير بديهي يحفظه لإعادة الاستخدام
Self-Improvement Loop
[محادثة] ──► background self-improvement review | ├──► memory: حقائق صغيرة دائمة (2,200 حرف — تنافس على المساحة) | └──► skills: إجراءات أطول، بتتحمّل بس لما تكون relevant (توكنز أعلى، لكن مفيش تنافس)
Action الاستخدام المعاملات الأساسية
create مهارة جديدة من الصفر name, content (الـ SKILL.md الكامل)
patch إصلاحات مستهدفة — المفضّل name, old_string, new_string
patch + content إعادة كتابة هيكلية كبيرة name, content
write_file ضيف/حدّث ملفات الدعم name, file_path, file_content
delete إزالة مهارة بالكامل name
⚠️
لو عايز تراجع كل كتابة قبل ما تشتغل، شغّل بوابة الموافقة. مع true كل كتابة skill_manage بتتسجّل تحت ~/.hermes/pending/skills/ وتصمد عبر الـ restarts.
bash
# ~/.hermes/config.yaml — شغّل الـ review على موديل أرخص
auxiliary:
  background_review:
    provider: openrouter
    model: google/gemini-3-flash-preview   # auto (default) = main chat model

# بوابة الموافقة على الكتابة
skills:
  write_approval: true
ℹ️
من داخل الشات تقدر تراجع الـ pending وتوافق أو ترفض — نفس الـ flow بتاع الأوامر الخطيرة.
text
/skills pending             # قائمة بالكتابات المسجّلة + سطر gist لكل واحدة
/skills diff <id>          # الـ unified diff الكامل
/skills approve <id>       # طبّقها (أو 'all')
/skills reject <id>        # اسقطها (أو 'all')
/skills approval on        # شغّل البوابة واثبّتها

# أو في الشات: /learn
/learn docs/runbook.md and https://example.com/guide; focus on recovery
💡
lessons, not logs
المهارة تسجّل قاعدة قابلة للتعميم + جملة «ليه».
شريحة 12 — الـ Curator — أمين مكتبة المهارات
الـ Curator — أمين مكتبة المهارات
صيانة خلفية للمهارات اللي الوكيل عملها: active → stale → archived
Curator lifecycle
active ──(14d unused)──► stale ──(30d unused)──► archived .hermes/skills/.archive/ (restorable, never auto-deleted) pinned skills skip every automatic transition
📦
افتراضياً
يدير مهارات الـ agent-created بس
🔒
Hub-installed
دايمماً خارج المدى — مش هيتلمسوا أبداً
🗄️
Auto-delete
عمره ما يحصل — أسوأ نتيجة هي الحفظ
🩺
المحفّز
فحص خمول، مش cron — بيتشيك عند بداية الجلسة والصيانة
ℹ️
إعدادات الـ Curator: شغّل، كل قد إيه، وامتى تتحوّل لـ stale وامتى تتأرشف. التجميع بالـ LLM opt-in لأنه بيكلّف نداءات.
yaml
# ~/.hermes/config.yaml
curator:
  enabled: true
  interval_hours: 168        # 7 أيام
  min_idle_hours: 2
  stale_after_days: 14
  archive_after_days: 30
  consolidate: false         # LLM umbrella-building pass — opt-in
  prune_builtins: false      # archiving للـ bundled skills غير المستخدمة
ℹ️
الأوامر دي تدّيك حالة الـ curator، تيلemetrie استخدام لكل مهارة، مرور فوري، وتأرشيف/استرجاع.
bash
hermes curator status                  # حالة الـ curator + إحصائيات المهارات
hermes curator usage                   # تيلemetrie استخدام لكل المهارات مع الـ provenance
hermes curator run                     # ادّعي مرور مراجعة دلوقتي
hermes curator pause && hermes curator resume
hermes curator pin deploy-production   # الـ skill ده مش هياخد انتقالات تلقائية
hermes curator list-archived
hermes curator restore <name>         # استرجع مهارة محرشفة
ℹ️
يعني إيه agent-created؟
الاسم مش في .bundled_manifest ومش في .hub/lock.json.
شريحة 13 — ملفات السياق: SOUL.md و AGENTS.md
ملفات السياق: SOUL.md و AGENTS.md
نطاقان مختلفان على مستوى الملف: الهوية على مستوى الوكيل، التعليمات على مستوى المشروع
الملف الغرض النطاق
SOUL.md هوية الوكيل الأساسية — slot #1 في الـ system prompt ~/.hermes/SOUL.md
.hermes.md / HERMES.md تعليمات خاصة بالمشروع — أعلى أولوية لحد جذر الـ git
AGENTS.md تعليمات المشروع وأعراف الكود recursive directory walk
CLAUDE.md ملفات سياق Claude Code مجلد العمل بس
.cursorrules / .cursor/rules/*.mdc قواعد Cursor مجلد العمل بس
ℹ️
كل ملفات السياق المحمّلة بحد أقصى context_file_max_chars حرف (افتراضي 20,000)، وكل قراءة مقيّدة بـ context_file_read_timeout ثواني (افتراضي 5.0) — ملف بطيء على network filesystem بيتتخطى مع تحذير.
yaml
# ~/.hermes/config.yaml
context_file_max_chars: null   # default — سقف ديناميكي متناسب مع نافذة سياق الموديل
# أو حط رقم صحيح موجب لتثبيت سقف ثابت
# context_file_max_chars: 25000
context_file_read_timeout: 5.0

terminal:
  cwd: /home/myuser/projects
⚠️
نظام الأولوية — نوع واحد بس بيتحمّل
أول match بيفوز: .hermes.md ← AGENTS.md ← CLAUDE.md ← .cursorrules.
شريحة 14 — نقل الذاكرة بين المنصات
نقل الذاكرة بين المنصات
الذاكرة نص عادي (Markdown) في الحالتين — وده معناه انتقال سهل
ℹ️
الاتجاه العكسي ليه CLI مدمج: ينقل settings والذكريات والمهارات ومفاتيح API من تثبيت OpenClaw، وبيعرض preview قبل أي تغيير.
bash
# Hermes ← OpenClaw
hermes claw migrate                    # migration تفاعلي كامل
hermes claw migrate --dry-run          # معاينة اللي هيتنقل
hermes claw migrate --preset user-data # ينقل من غير secrets
hermes claw migrate --overwrite        # استبدل التعارضات الموجودة
hermes claw migrate --migrate-secrets  # ضمّن الـ API keys

# OpenClaw ← Hermes : من Control UI
# Settings -> Import Memory -> اختار الوكيل -> راجع -> أكّد
# (Codex / Claude Code / Hermes — Markdown بس)

# تنظيف بعد الـ migration
hermes claw cleanup
💡
النقل اليدوي بيفضل في كل الحالات، لأن الذاكرة نص عادي — انسخ الملفات وامسح النسخة القديمة بعد ما تتأكد.
bash
# من Hermes إلى OpenClaw
cp ~/.hermes/memories/MEMORY.md ~/.openclaw/workspace/MEMORY.md
cp ~/.hermes/memories/USER.md   ~/.openclaw/workspace/USER.md
cp -r ~/.hermes/skills/ ~/.openclaw/workspace/skills/

# OpenClaw workspace كـ private git backup (موصى به في التوثيق)
cd ~/.openclaw/workspace
git init
git add AGENTS.md SOUL.md IDENTITY.md USER.md memory/
git commit -m "Add agent workspace"
⚠️
أشهر فخ النقل
نسختين متعارضتين من نفس الحقيقة.
شريحة 15 — OpenClaw مقابل Hermes
OpenClaw مقابل Hermes
الذاكرة والمهارات — المصفوفات المختارة
العنصر OpenClaw Hermes Agent
نموذج الذاكرة ملفات Markdown في الـ workspace MEMORY.md + USER.md مُدارة بالأداة
حد الـ MEMORY bootstrap budget 2,200 حرف صارم
طبقة العمل memory/YYYY-MM-DD.md ~/.hermes/state.db (SQLite + FTS5)
محرك البحث Hybrid: vector + keyword FTS5 كلمي — مش محتاج embedding
فحص أمني للذاكرة ✘ مفيش ✔ scan أنماط الحقن والاستخراج
عدد الـ providers 3 engines + memory-wiki 7 providers + catalog
عدد جذور المهارات 7 مستويات أولوية 4 مستويات: project ← local ← external ← bundled
حد الـ description <160 حرف ≤60 حرف (validator صارم)
الإنشاء الذاتي Skill Workshop — proposal ← apply skill_manage كتابة مباشرة
الـ lifecycle pending ← applied / stale active ← stale ← archived
Curator 30 / 90 يوم 14 / 30 يوم
النقاط القوية Dreaming، DREAMS.md، حوكمة صارمة providers، FTS5، bundles، stacking
💡
متى تختار إيه؟
عايز day-organized notes و Dreaming؟ ⭐ OpenClaw. عايز providers و FTS5 و فحص أمني؟ ⭐ Hermes.
شريحة 16 — المشروع العملي
المشروع العملي
قاعدة معرفة من 5 مهارات — من الصفر
1
2
3
4
المرحلة الهدف المخرجات
1 — foundation ظبّط الذاكرة وتأكد إن الكتابة بتتم فعلاً MEMORY.md + USER.md
2 — skill #1 اكتب deploy-production يدوياً بالـ frontmatter الصحيح مهارة واحدة + references/
3 — skills #2–#5 خلّي الوكيل يبني الباقي بـ /learn و skill_manage 4 مهارات agent-created
4 — the curator فعّل الـ Curator، اعمل override مؤقت، و pin للحرج curator نضيف ومتوقّع
ℹ️
الخطوة دي بتتأكد إن foundation شغال قبل ما تكتب أي مهارة — من غيرها هتبني على أساس مش موجود.
bash
# Phase 1 — foundation
hermes config get memory
hermes memory status
hermes profile list
cat ~/.hermes/memories/MEMORY.md      # أكّد الكتابة حصلت

# Phase 2 — أول مهارة
mkdir -p ~/.hermes/skills/devops/deploy-production/references
hermes skills list | grep deploy-production

# Phase 3 — خلّي الوكيل يبني الباقي
hermes skills list | tail -5

# Phase 4 — Curator
hermes curator status
hermes config set curator.stale_after_days 0   # اختبار فوري
hermes curator run
hermes config set curator.stale_after_days 14  # رجّع
hermes curator pin deploy-production
💡
اختبار النجاح
ابدأ /new واسأل «إيه نظام التشغيل اللي بنشتغل عليه؟».
شريحة 17 — اختبار المعرفة
اختبار المعرفة
اختبر نفسك — 5 أسئلة سريعة

اختبار الموديول 6

Score: 0/5
Q1: الذاكرة بتقول «المستخدم طلب إن أكلمه بالعامية مصرى». دي ذاكرة من أنهي نوع؟
Procedural — إجرائية
Episodic — قصصية
Working — عمل
Semantic — دلالية
Q2: قولت للوكيل «افتكر إن تدوير الـ API key بيحصل شهرياً»، وبعد ما عملت /new، نسي. إيه السبب الأول؟
الـ snapshot متجمد والكتابة ما حصلت أصلاً
الذاكرة مطفية
بيقرأ profile تاني
محتاجة embedding provider
Q3: ليه بحث Hermes في الجلسات بيتساهل يبقى مجاني؟
لأنه بيستخدم FTS5 على SQLite — من غير أي نداءات LLM
لأنه بيستدعي موديل صغير جداً
لأنه بيخزن ملخصات بدل النصوص
لأنه بيشغّل البحث على العميل
Q4: كتبت SKILL.md والـ description فاضل 95 حرف. إيه اللي هيحصل؟
مفيش مشكلة — الـ validator بيسمح لحد 1024
المهارة هتتقص في الـ skill index والوصف لازم يكون ≤60 حرف
الملف هيتشال من القرص
المهارة هتتحوّل لـ project skill
Q5: الـ Curator شغال، وعندك مهارة حرجة عايزها ماتتقلمش أبداً. إيه اللي تعمله؟
hermes curator pin — الـ pinned بتتجاوز كل الانتقالات التلقائية
hermes curator pause
Skills Curator ما بيقبلش الـ pin
اعمل نسخة من الملف بره ~/.hermes