extensions/role-persona/skills/memory-best-practices/SKILL.md
Best practices for writing and maintaining high-quality role memories.
npx skillsauth add dwsy/agent memory-best-practicesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A quality standard for writing high-quality memories that compound in value.
[Nx] Priority System[0x] New → unverified, just added
[1-2x] Normal → confirmed 1-2 times
[3x]+ High Priority → battle-tested, frequently used
[Nx] = usage count. The best quality signal. [6x] survived 6 sessions — probably right. [0x] might be noise.
[Nx] Increments| Trigger | Effect |
|---------|--------|
| memory({ action: "reinforce", content: "..." }) | Manual +1 |
| memory({ action: "search", query: "..." }) score ≥0.5 | Auto-reinforce +1 |
| Pending auto-promote (search ≥0.5) | Moves to consolidated at [0x] |
Reinforce ≠ Promote:
[Nx] within consolidated (used+1)Before saving:
✅ "MyBatis-Plus getOne needs .last('LIMIT 1') to avoid TooManyResultsException"
✅ "禁止 rm,优先 trash"
✅ "ACP: Agent 无状态,Client 持状态"
❌ "用户让我修了一个 bug" ← too generic
❌ "Error at /src/index.ts:42" ← copy-paste, no insight
❌ "服务器现在在 3000 端口" ← temporary state
| Category | When |
|----------|------|
| Communication | Language, style, tone |
| Code | Style, conventions, abstraction |
| Tools | CLI, editors, workflows |
| Workflow | Process, review, deployment |
| General | Everything else |
Rules: one per line, be specific, correct category.
Each learning has LLM-auto-extracted tags. You don't tag manually.
Tags are used in search:
Example: searching "安全删除" finds entries tagged filesystem, safety, delete even if they don't contain those words.
Path 1: Auto-extract (agent_end / compaction)
→ pending.md [○] → search ≥0.5 → promote → consolidated [0x]
→ reinforce over time → [3x]+ High Priority
Path 2: Manual (memory tool)
→ consolidated [0x] directly (you verified it's worth keeping)
→ reinforce over time → same priority ladder
Why pending? Auto-extracted memories are noisy. Pending layer filters by actual usage.
| Operation | Method | What it does |
|-----------|--------|-------------|
| consolidate | Rule-based | Exact + Jaccard dedup. Safe, never deletes unique entries. |
| llm_tidy | LLM-guided | Rewrites verbose, detects contradictions, suggests deletions. |
Use consolidate for routine maintenance. Use llm_tidy for deep cleanup.
| Dimension | Memory (consolidated.md) | Knowledge (knowledge/) |
|-----------|-------------------------|----------------------|
| Scope | Cross-session insights | Reusable patterns, decisions |
| Format | One-line entries | Full markdown files |
| Example | "禁止 rm,优先 trash" | Full design pattern with code |
| Tool | memory | knowledge |
| Share | Per-role | Role / global / project |
Write knowledge when: full pattern with code examples, or share across roles.
[3x]+ entries[0x] count (low noise)[0x] never reinforced (noise)Add learning: memory({ action: "add_learning", content: "..." })
Add preference: memory({ action: "add_preference", content: "...", category: "..." })
Reinforce: memory({ action: "reinforce", content: "..." })
Search: memory({ action: "search", query: "..." })
List: memory({ action: "list" })
Consolidate: memory({ action: "consolidate" })
LLM tidy: memory({ action: "llm_tidy" })
testing
Best practices for writing and maintaining high-quality role memories.
documentation
工作文档枢纽,强制执行 SSOT(Single Source of Truth)原则,管理 `docs/` 目录下的架构决策、设计文档、Issues(任务规划)、PRs(变更记录)。支持 GitHub 协作开发模式。
tools
Allows to interact with web pages by performing actions such as clicking buttons, filling out forms, and navigating links. It works by remote controlling Google Chrome or Chromium browsers using the Chrome DevTools Protocol (CDP). When Claude needs to browse the web, it can use this skill to do so.
development
Vercel 设计指南 - 构建高质量 Web 应用的最佳实践,包含现代 UI/UX 原则、性能优化和无障碍标准。