Skip to main content

What is the Memory Bank?

The Memory Bank is a file-based storage system for all project artifacts. It maintains context across agent sessions and provides traceability between artifacts.
Unlike traditional documentation that gets stale, the Memory Bank is actively used by agents. It’s the source of truth that agents read and write.

Why Memory Bank?

Context Engineering

Agents reload context from Memory Bank each session. No more lost knowledge.

Traceability

Every artifact links to its source. Inception and construction logs provide full traceability after completion.

Human Readable

All files are Markdown. Review, edit, and version control with Git.

AI Accessible

Structured format that agents can parse and update.

Structure

After project initialization:
memory-bank/
├── intents/                   # Your captured intents
│   └── {intent-name}/
│       ├── requirements.md
│       ├── system-context.md
│       └── units/
│           └── {unit-name}/
│               ├── unit-brief.md
│               ├── stories/
│               └── bolts/
├── bolts/                     # Bolt execution records
│   └── {bolt-id}/
│       ├── domain-model.md
│       ├── technical-design.md
│       └── implementation/
├── standards/                 # Project standards
│   ├── tech-stack.md
│   ├── coding-standards.md
│   ├── architecture.md
│   └── ux-guide.md
└── operations/                # Deployment context
    ├── environments.md
    └── runbooks/

Artifact Types

Standards

Project-wide decisions that inform AI code generation:
FilePurpose
tech-stack.mdLanguages, frameworks, databases
coding-standards.mdFormatting, naming, patterns
architecture.mdSystem architecture decisions
ux-guide.mdDesign system, styling
api-conventions.mdAPI style, versioning

Intent Artifacts

Captured requirements and context:
FilePurpose
requirements.mdUser stories, acceptance criteria, NFRs
system-context.mdBoundaries, interfaces, constraints
units.mdUnit decomposition overview

Unit Artifacts

Work breakdown within an intent:
FilePurpose
unit-brief.mdScope, interfaces, dependencies
stories/*.mdIndividual user stories
bolts/*/Bolt execution records

Bolt Artifacts

Implementation records:
FilePurpose
domain-model.mdDDD artifacts
technical-design.mdArchitecture decisions
adr-*.mdArchitectural Decision Records
implementation/Generated code
tests/Test files

Traceability

Artifacts link to each other using references:
# Technical Design: User Registration

## Source
- Intent: user-authentication
- Unit: user-registration  
- Story: US-001

## Related ADRs
- [ADR-001: Password Hashing Algorithm](./adr-001.md)

## Implementation
- [src/auth/registration.ts](../../src/auth/registration.ts)

Agent Interaction

Agents read and write to the Memory Bank:
1

Context Loading

Agent reads relevant artifacts at session start
2

Work Execution

Agent generates new artifacts during work
3

Artifact Storage

Agent writes artifacts to Memory Bank
4

Reference Linking

Agent updates cross-references

Version Control

The Memory Bank is designed for Git:
# Track all artifacts
git add memory-bank/

# Meaningful commit messages
git commit -m "feat(auth): Complete user registration bolt"

# Review changes in PRs
git diff memory-bank/intents/auth/
Commit Memory Bank changes along with code changes. This maintains the connection between decisions and implementation.

Schema

The Memory Bank follows a schema defined in .specsmd/aidlc/memory-bank.yaml:
version: "1.0"
structure:
  intents:
    pattern: "{intent-name}/"
    required:
      - requirements.md
      - system-context.md
    optional:
      - units/
  standards:
    required:
      - tech-stack.md
      - coding-standards.md

Best Practices

Update artifacts when decisions change. Stale documentation is worse than no documentation.
Follow the templates. Consistent structure helps agents parse content.
Commit Memory Bank changes with related code. They belong together.

Next Steps

Standards

Learn about project standards that guide AI generation