AgentSkillsCN

audit

对 EC 内存进行审核与维护。列出所有记忆条目,查找重复内容,清理过时记录,并按类型进行分类整理。当记忆需要清理时,或当用户提出“审计记忆”“清理 EC”“查看已存储内容”等需求时,亦或是定期进行卫生管理时,均可使用该功能。

SKILL.md
--- frontmatter
name: audit
description: Review and maintain EC memories. List all memories, find duplicates, prune stale entries, and organize by type. Use when memories need cleanup, when user says "audit memories", "clean up EC", "review what's stored", or periodically for hygiene.

Audit EC Memories

Review, clean, and organize stored memories.

Announce: "I'm using the audit skill to review EC memories."

The Flow

code
List All → Analyze → Present → Clean → Verify

Step 1: List All Memories

Pull everything by type:

code
ec_list:
  limit: 100
  type: decision

ec_list:
  limit: 100
  type: learning

ec_list:
  limit: 100
  type: pattern

ec_list:
  limit: 100
  type: config

Also check for invalidated entries:

code
ec_list:
  limit: 50
  include_invalid: true

Step 2: Analyze

Check for Issues

  1. Duplicates - Same or very similar content
  2. Stale - References outdated code/patterns
  3. Vague - Content too generic to be useful
  4. Miscategorized - Wrong type for the content

Group by Area

Organize memories by their area tag to see coverage:

  • Which areas have many memories?
  • Which areas are sparse?
  • Any orphaned areas (code deleted)?

Step 3: Present Summary

markdown
## EC Memory Audit

**Total Memories:** N (D decisions, L learnings, P patterns, C config)
**Invalidated:** N

### By Area
| Area | Decisions | Learnings | Patterns |
|------|-----------|-----------|----------|
| auth | 3 | 2 | 1 |
| api  | 1 | 4 | 2 |
| ...  | ... | ... | ... |

### Issues Found
- **Duplicates (N):** [list IDs]
- **Potentially stale (N):** [list with reason]
- **Vague entries (N):** [list IDs]

Step 4: Clean Up

Use AskUserQuestion for each category:

json
{
  "questions": [{
    "question": "How should I handle the N duplicate memories?",
    "header": "Duplicates",
    "options": [
      { "label": "Merge", "description": "Keep best version, invalidate others" },
      { "label": "Keep all", "description": "They might have nuance" },
      { "label": "Review each", "description": "Show me one by one" }
    ],
    "multiSelect": false
  }]
}

Invalidating Memories

When removing a memory, use ec_invalidate with optional superseding:

code
ec_invalidate:
  id: <old_memory_id>
  superseded_by: <new_memory_id>  # Optional: link to replacement

Merging Duplicates

  1. Create new consolidated memory with ec_add
  2. Invalidate old entries with ec_invalidate, pointing to new ID

Step 5: Verify

After cleanup, show the delta:

markdown
## Cleanup Complete

**Before:** N memories
**After:** M memories
**Invalidated:** X entries

### Changes
- Merged N duplicates
- Invalidated M stale entries
- Recategorized P entries

Audit Checklist

CheckAction
Duplicate contentMerge or invalidate
References deleted codeInvalidate
Too vague to act onRewrite or invalidate
Wrong typeCreate new with correct type, invalidate old
Missing area tagUpdate via new entry

When to Audit

  • Periodically - Every few weeks on active projects
  • After major refactors - Code changed, memories may be stale
  • Before onboarding - Clean slate for new team members
  • When searches return noise - Too many irrelevant results

Red Flags

Stop and ask if:

  • About to invalidate >10 memories
  • Unsure if memory is still valid
  • Memory references code you can't find