Roo Code Memory Bank solves a critical challenge in AI-assisted development: maintaining context across sessions. By providing a structured memory system integrated with VS Code, it ensures your AI assistant maintains a deep understanding of your project across sessions.
graph LR
A[Memory Bank] --> B[Core Files]
A --> C[Mode Rules]
A --> D[VS Code UI]
B --> E[Project Context]
B --> F[Decisions]
B --> G[Progress]
C --> H[Architect]
C --> I[Code]
C --> J[Ask]
C --> K1[Debug]
C --> K2[Test]
K[Real-time Updates] --> B
K --> L[Continuous Sync]
L --> M[Auto-save]
L --> N[Event Tracking]
- π§ Memory Bank: Persistent storage for project knowledge
- π Mode Rules: YAML-based behavior configuration
- π§ VS Code Integration: Seamless development experience
- β‘ Real-time Updates: Continuous context synchronization
Download and copy these files to your project's root directory:
Mode | Rule File | Purpose |
---|---|---|
Code | .clinerules-code |
Implementation and coding tasks |
Architect | .clinerules-architect |
System design and architecture |
Ask | .clinerules-ask |
Information and assistance |
Debug | .clinerules-debug |
Troubleshooting and problem-solving |
Test | .clinerules-test |
Test-driven development and quality assurance |
Mode | .roomodes |
Custom mode configuration file for Test mode |
π Special Note for Test Mode: Test mode requires both the
.clinerules-test
file AND.roomodes
file in your project root for proper functionality.
β οΈ Important: The system default descriptions in the Role Definition boxes can remain but leave the Mode-specific Custom Instructions boxes empty.
- Switch to Architect or Code mode in Roo Code chat
- Send a message (e.g., "hello")
- Roo will automatically:
- π Scan for
memory-bank/
directory - π Create it if missing (with your approval)
- π Initialize core files
- π¦ Provide next steps
- π Scan for
π‘ Pro Tip: Project Brief
Create a projectBrief.md
in your project root before initialization to give Roo immediate project context.
project-root/
βββ .clinerules-architect
βββ .clinerules-code
βββ .clinerules-ask
βββ .clinerules-debug
βββ .clinerules-test
βββ .roomodes
βββ memory-bank/
β βββ activeContext.md
β βββ productContext.md
β βββ progress.md
β βββ decisionLog.md
βββ projectBrief.md
graph TD
MB[memory-bank/] --> AC[activeContext.md]
MB --> DL[decisionLog.md]
MB --> PC[productContext.md]
MB --> PR[progress.md]
MB --> PB[projectBrief.md]
MB --> SP[systemPatterns.md]
subgraph Core Files
AC[Current Session State]
DL[Technical Decisions]
PC[Project Overview]
PR[Progress Tracking]
end
subgraph Optional
PB[Project Brief]
SP[System Patterns]
end
π View File Descriptions
File | Purpose |
---|---|
activeContext.md |
Tracks current goals, decisions, and session state |
decisionLog.md |
Records architectural choices and their rationale |
productContext.md |
Maintains high-level project context and knowledge |
progress.md |
Documents completed work and upcoming tasks |
projectBrief.md |
Contains initial project requirements (optional) |
systemPatterns.md |
Documents recurring patterns and standards |
- Remembers project details across sessions
- Maintains consistent understanding of your codebase
- Tracks decisions and their rationale
graph LR
A[Architect Mode] -->|Real-time Design Updates| B[Memory Bank]
C[Code Mode] -->|Real-time Implementation| B
D[Ask Mode] -->|Real-time Insights| B
F[Debug Mode] -->|Real-time Analysis| B
G[Test Mode] -->|Real-time Testing| B
B -->|Instant Context| A
B -->|Instant Context| C
B -->|Instant Context| D
B -->|Instant Context| F
B -->|Instant Context| G
E[Event Monitor] -->|Continuous Sync| B
- Mode-based operation for specialized tasks
- Automatic context switching
- Project-specific customization via rules
- Structured documentation with clear purposes
- Technical decision tracking with rationale
- Automated progress monitoring
- Cross-referenced project knowledge
Roo Code Memory Bank's Architect mode is designed for high-level system design and project organization. This mode focuses on architectural decisions, system structure, and maintaining project-wide consistency.
- ποΈ System Design: Create and maintain architecture
- π Pattern Definition: Establish coding patterns and standards
- π Project Structure: Organize code and resources
- π Documentation: Maintain technical documentation
- π€ Team Collaboration: Guide implementation standards
Architect mode actively monitors and updates Memory Bank files based on:
- π― Architectural decisions and changes
- π System pattern definitions
- π Project structure updates
- π Documentation requirements
- β‘ Implementation guidance needs
graph TD
A[Architect Mode] --> B[Design Decisions]
A --> C[Pattern Definition]
B --> D[Memory Bank Updates]
C --> D
D --> E[activeContext.md]
D --> F[progress.md]
D --> G[decisionLog.md]
E --> H[Design Status]
F --> I[Architecture Progress]
G --> J[Design Decisions]
Switch to Architect mode when you need to:
- Design system architecture
- Define coding patterns
- Structure new projects
- Guide implementations
- Make architectural decisions
Roo Code Memory Bank's Code mode is your primary interface for implementation and development. This mode specializes in writing, modifying, and maintaining code while following established patterns.
- π» Code Creation: Write new code and features
- π§ Code Modification: Update existing implementations
- π Documentation: Add code comments and docs
- β¨ Quality Control: Maintain code standards
- π Refactoring: Improve code structure
Code mode actively monitors and updates Memory Bank files based on:
- π Code implementations
- π Feature updates
- π― Pattern applications
- β‘ Performance improvements
- π Documentation updates
graph TD
A[Code Mode] --> B[Implementation]
A --> C[Documentation]
B --> D[Memory Bank Updates]
C --> D
D --> E[activeContext.md]
D --> F[progress.md]
D --> G[decisionLog.md]
E --> H[Current Tasks]
F --> I[Code Progress]
G --> J[Implementation Decisions]
Switch to Code mode when you need to:
- Implement new features
- Modify existing code
- Add documentation
- Apply coding patterns
- Refactor code
Roo Code Memory Bank's Ask mode serves as your knowledge base interface and documentation assistant. This mode excels at providing information, explaining concepts, and maintaining project knowledge.
- π‘ Knowledge Sharing: Access project insights
- π Documentation: Create and update docs
- π Code Explanation: Clarify implementations
- π€ Collaboration: Share understanding
- π Pattern Education: Explain system patterns
Ask mode actively monitors and updates Memory Bank files based on:
- β Knowledge requests
- π Documentation needs
- π Pattern explanations
- π‘ Implementation insights
- π Learning outcomes
graph TD
A[Ask Mode] --> B[Knowledge Sharing]
A --> C[Documentation]
B --> D[Memory Bank Updates]
C --> D
D --> E[activeContext.md]
D --> F[progress.md]
D --> G[decisionLog.md]
E --> H[Current Topics]
F --> I[Documentation Progress]
G --> J[Knowledge Decisions]
Switch to Ask mode when you need to:
- Understand code patterns
- Get implementation guidance
- Create documentation
- Share knowledge
- Learn system concepts
Roo Code Memory Bank's Debug mode specializes in systematic problem-solving and troubleshooting. This mode employs strategic analysis and verification to identify and resolve issues.
- π Issue Investigation: Analyze problems systematically
- π Error Analysis: Track error patterns
- π― Root Cause Finding: Identify core issues
- β Solution Verification: Validate fixes
- π Problem Documentation: Record findings
Debug mode actively monitors and updates Memory Bank files based on:
- π Bug discoveries
- π Performance issues
- π Error patterns
- β‘ System bottlenecks
- π Fix verifications
graph TD
A[Debug Mode] --> B[Investigation]
A --> C[Analysis]
B --> D[Memory Bank Updates]
C --> D
D --> E[activeContext.md]
D --> F[progress.md]
D --> G[decisionLog.md]
E --> H[Current Issues]
F --> I[Debug Progress]
G --> J[Solution Decisions]
Switch to Debug mode when you need to:
- Investigate issues
- Analyze errors
- Find root causes
- Verify fixes
- Document problems
Roo Code Memory Bank includes a powerful Test mode for test-driven development and quality assurance. This mode operates with a focus on test creation, execution, and validation while maintaining code quality.
- π§ͺ Test-Driven Development: Write tests before implementation
- π Test Execution: Run and monitor test suites
- π Coverage Analysis: Track and improve test coverage
- π― Quality Assurance: Validate code against requirements
- β Test Result Management: Track and report test outcomes
Test mode actively monitors and updates Memory Bank files based on:
- π Test executions and results
- π Coverage metrics and gaps
- π Test failure patterns
- β¨ New test requirements
- π Test documentation needs
graph TD
A[Test Mode] --> B[Test Creation]
A --> C[Test Execution]
B --> D[Memory Bank Updates]
C --> D
D --> E[activeContext.md]
D --> F[progress.md]
D --> G[decisionLog.md]
E --> H[Test Status]
F --> I[Test Progress]
G --> J[Test Decisions]
Switch to Test mode when you need to:
- Write new tests
- Run test suites
- Analyze test coverage
- Validate code quality
- Document test results
- β‘ Real-time Updates: Memory Bank automatically stays synchronized with your work
- πΎ Manual Updates: Use "UMB" or "update memory bank" as a fallback when:
- Ending a session unexpectedly
- Halting mid-task
- Recovering from connection issues
- Forcing a full synchronization
View on GitHub β’ Report Issues β’ Get Roo Code
Apache 2.0 Β© 2025 GreatScottyMac