A comprehensive, framework-agnostic project documentation template system that creates a structured "memory bank" for your projects. Designed to improve collaboration between developers and AI assistants by maintaining a persistent knowledge base.
Memory Bank provides a structured approach to documenting all aspects of a project, ensuring that information is accessible, maintainable, and useful for both human developers and AI assistants. When used properly, these files create a persistent knowledge base that improves collaboration and maintains continuity across development sessions.
-
Create a fresh context with the AI Assistant
-
prompt:
review all files in the memory-bank directory. Let's work on the kanban task: [copy text from 07-kanban.md] -
After task is complete, reviewed and tested, to the AI Assistant:
update the appropriate memory-bank files for the work just completed. This must be part of your routine. The AI Assistants (at least in 2025) won't consistently update the memory-bank automatically. Giving the Assistant this direct prompt yields in high quality memory-bank updates. -
git add / commit / push
-
Important: Start a fresh context for the next task. This prevents bloated contexts and reduces the tendancy for the AI Assistant to drift and hallunicate.
Code review what is generated. Always.
# Clone this repository
git clone https://github.com/404FoundingFather/ai-memory-bank.git
# Copy the templates to your project
cp -r ai-memory-bank/memory-bank/ your-project/memory-bank/
├── 00-index.md # Navigation and overview
├── 01-product-vision.md # Project goals and scope
├── 02-techContext.md # Technologies and dependencies
├── 03-systemPatterns.md # Architectural patterns
├── 04-database.md # Data models and relationships
├── 05-uidesign.md # UI components and design system
├── 06-developmentPlan.md # Development roadmap
├── 07-kanban.md # Current tasks and priorities
├── 08-changelog.md # Version history
├── 09-environment.md # Setup and deployment
├── 10-ai-interaction-guidelines.md # AI assistant guidelines
├── 11-code-snippets.md # Useful code patterns
├── 12-decisions.md # Decision records
└── 13-quick-reference.md # Commands and resources
- Copy the entire
memory-bankdirectory to your new project's root - Systematically go through each file (starting with 00-index.md) and replace the placeholder content with information specific to your project
- Update the "Last Updated" date whenever you make significant changes to a file
AI coding assistants can help you efficiently populate your memory-bank files. Below are example prompts to help customize these templates for your specific project.
"I've set up a new [project type] using [technologies]. Can you help me populate my memory-bank files with relevant information based on the project structure and technologies? I already have the templates in place in the memory-bank directory."
"I'm working on a Next.js project with a PostgreSQL database and Prisma ORM. Can you help me fill out the following memory-bank files based on this tech stack:
1. 02-techContext.md - Include Next.js, React, PostgreSQL, and Prisma details
2. 03-systemPatterns.md - Include common Next.js patterns and architecture
3. 04-database.md - Include Prisma model definitions and relationships
4. 09-environment.md - Include typical Next.js environment setup"
"I've created a Django project with a PostgreSQL database. Please help me populate these memory-bank files:
1. 02-techContext.md - Include Django, Python, and PostgreSQL details
2. 03-systemPatterns.md - Include Django MVT architecture patterns
3. 04-database.md - Help me document my Django models
4. 13-quick-reference.md - Include common Django management commands"
"I'm developing a React Native mobile app with Firebase backend. Please help me populate these memory-bank files:
1. 02-techContext.md - Include React Native and Firebase details
2. 03-systemPatterns.md - Include mobile app architecture patterns
3. 09-environment.md - Include mobile development environment setup
4. 10-ai-interaction-guidelines.md - Help me set guidelines for mobile app development with AI"
"Based on this project idea: [brief project description], help me populate the product-vision.md file with a compelling problem statement, solution approach, and key features."
"My project uses these technologies: [list technologies and versions]. Help me populate the techContext.md file with relevant information, including setup instructions and resource links."
"Based on these database models [describe models or share code], help me populate the database.md file with proper documentation of fields, relationships, and query patterns."
"My application has these main screens: [list key screens]. Help me document the UI components and design principles in the uidesign.md file."
"Based on my project's code, help me identify and document common patterns and helper functions for the code-snippets.md file."
"I've made significant changes to my project, including [describe changes]. Help me update the following memory-bank files to reflect these changes: [list files]."
"I have an existing [project type] with [technologies]. I've just added memory-bank templates. Can you analyze my project structure and help me populate these templates based on what you can infer about my project?"
- Update file references if you rename or add files
- Modify the reading order if needed for your project's context
- Define your specific problem statement
- Outline your solution approach
- Set clear user experience goals
- Specify key features and target audience
- List all technologies, frameworks, and libraries used
- Document development environment requirements
- Include links to relevant documentation
- Describe your application's architecture
- Document design patterns and principles
- Outline code organization strategy
- Detail your data model
- Include entity relationship diagrams if applicable
- Document database technology choices
- Define UI/UX principles for your project
- Include wireframes or mockup references
- Document component structure
- Create a roadmap with milestones
- Define the development workflow
- Prioritize features and tasks
- Set up your kanban board structure
- Define priorities and categories
- Keep this updated as tasks move through your workflow
- Document the version history format
- Set guidelines for what constitutes a changelog entry
- Document setup procedures
- Include configuration details
- Document deployment processes
- Define how AI tools should interact with the project
- Set code style preferences
- Document communication preferences
- Create templates for common patterns
- Document reusable code snippets
- Include usage examples
- Format for recording architectural decisions
- Include decision-making criteria
- Create a glossary of project-specific terms
- Document frequently used commands
- List key file locations
- Consistency: Maintain consistent formatting across all files
- Currency: Keep information up-to-date, especially as the project evolves
- Clarity: Write clear, concise content that both humans and AI can easily understand
- Completeness: Fill in all sections, even if minimally at first
- Continuity: Reference between files when appropriate to create a cohesive documentation system
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-idea) - Commit your changes (
git commit -am 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-idea) - Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.