Encode Repository (Serena-Enhanced)
Transform an undocumented codebase into a rich, searchable knowledge repository using Serena's LSP-powered symbol analysis.
Quick Start
/encode-repo-serena
/encode-repo-serena ./my-project
"encode this repository"
"populate forgetful with this codebase"
| Input | Output | Duration | |-------|--------|----------| | Codebase path | Forgetful memories + entities + docs | 30-60 min |
Prerequisites
- Serena plugin:
claude plugins list | grep serena - Forgetful MCP: Test with
execute_forgetful_tool("list_projects", {}) - If missing, run
/context-hub-setupfirst
Phase Overview
| Phase | Focus | Output | |-------|-------|--------| | 0 | Discovery | Project assessment, structure map | | 1 | Foundation | 5-10 project overview memories | | 1B | Dependencies | 1-3 dependency memories | | 2 | Symbols | 10-15 architecture memories | | 2B | Entities | Component entities + relationships | | 3 | Patterns | 8-12 pattern memories | | 4 | Features | 1-2 per critical feature | | 5 | Decisions | Design decision memories | | 6 | Artifacts | Code artifact storage | | 6B | Symbol Index | Document + entry memory | | 7 | Documents | Long-form documentation | | 7B | Architecture | Architecture reference doc |
See references/phases.md for full phase details.
Memory Targets
| Profile | Total Memories | Documents | Entities | |---------|----------------|-----------|----------| | Small Simple | 17-31 | 2 | 3-5 | | Small Complex | 28-46 | 2 | 5-10 | | Medium | 38-66 | 2-3 | 10-20 | | Large | 66-112 | 3-6 | 20-40 |
Execution Order
0 → 1 → 1B → 2 → 2B → 3 → 4 → 5 → 6 → 6B → 7 → 7B
Guidelines:
- Execute phases in order
- Use Serena's
find_symbolandfind_referencing_symbols - Deduplicate entities before creating
- Link entities to memories bidirectionally
- Create entry memories for documents
Quality Principles
| Principle | Description | |-----------|-------------| | Symbol-accurate | Use LSP data, not guesses | | Atomic | One concept per memory | | Size | 200-400 words ideal | | Importance | Most should be 7-8 | | Linking | Connect related memories |
Validation Checklist
After completion:
- [ ] Test memory search: "How do I add a new API endpoint?"
- [ ] Test dependency query: "What dependencies does this project use?"
- [ ] List entities by project
- [ ] Verify entity relationships
- [ ] Check Symbol Index document exists
- [ ] Check Architecture Reference document exists
- [ ] Verify project.notes populated
See references/validation.md for test commands.
References
| Document | Content | |----------|---------| | phases.md | Detailed phase workflows | | templates.md | Entity schemas, memory templates | | validation.md | Validation test commands |
Related Skills
/context-hub-setup- Setup Forgetful MCP/using-forgetful-memory- Memory best practices/using-serena-symbols- Serena symbol analysis
Scan to join WeChat group