A persistent memory layer for code repositories and coding agents.
Compatible with GSD, ECC, OpenSpec, Superpowers, BMAD, gstack, and similar workflows.
RepoMem gives your repository a durable, reviewable place to store:
- architecture knowledge
- long-lived engineering memory
- version planning
- task-scoped working memory
Instead of letting important context live only in chats, agent sessions, or scattered docs, RepoMem keeps that knowledge inside the repository, with HITL review before long-term updates land.
RepoMem is not a full delivery workflow orchestrator. It is the memory layer you can use on its own or embed into other workflows.
RepoMem is natively compatible with GSD, ECC, OpenSpec, Superpowers, BMAD, gstack, and similar workflows.
For the best integrated developer experience, use it with HarnessStack.
AI coding agents are fast, but repository knowledge decays fast too.
Common failure modes:
- the agent solves the task but forgets the architectural reason
- hard-won debugging lessons stay trapped in chat history
- a repo has docs, but no clear separation between temporary notes and durable truth
- "memory" becomes stale because no one knows what should be promoted or reviewed
RepoMem is designed to solve that gap:
persist/architecture/stores how the repo is structuredpersist/memory/stores durable constraints, pitfalls, and rationalepersist/version-plan.mdstores future-facing planningtemp/<slug>/stores task-scoped working memory before anything is promotedmergeturns task memory into reviewed long-term knowledge
The result is simple:
your repository stops depending on fragile conversational memory.
Most repo documentation systems answer "where do we write things?"
RepoMem answers a harder question:
what should stay temporary, what should become long-term memory, and how should that promotion happen safely?
Its core design principles:
- Repo-native: knowledge lives in the repository, not in a hidden external memory service
- Agent-friendly: optimized for AI-assisted task execution and recovery
- HITL-first: long-term writes are reviewed before they become repository truth
- Separation of memory types: architecture, memory, plan, and task notes are not mixed together
- Workflow-agnostic: works alone or underneath larger delivery systems
Use repo-mem init to create the standard memory structure.
For a new repository, RepoMem initializes the persistent skeleton directly.
For an existing repository, RepoMem uses a proposal-first flow:
- analyze the repository
- generate
temp/<slug>/init-proposal.md - let the user review and edit the proposal
- apply the confirmed proposal
- if conflicts appear, generate
temp/<slug>/init-conflicts.md - resolve conflicts by
conflict_id - review the resulting
git diff
Use repo-mem read <slug> when starting or resuming work.
RepoMem reads:
- persistent docs
- relevant domain docs
- existing temp docs for the same task slug
It then produces a focused context summary for the active task.
Use repo-mem capture <slug> while the work is in progress.
RepoMem updates task docs such as:
requirements.mdarchitecture.mdmemory.md
capture writes only to temp/.
It does not write long-term repository truth directly.
Use repo-mem merge <slug> only after the task reaches closure.
RepoMem:
- generates structured merge suggestions
- waits for HITL confirmation
- writes the confirmed long-term updates
- updates temp status
- shows post-write
git diff
Current merge categories:
to architectureto memorydo not merge
Use:
repo-mem prune [domain]repo-mem split [domain]
These are maintenance actions, not blind destructive commands. RepoMem generates proposals first, then the human decides what to apply.
docs/RepoMem/
├── persist/
│ ├── config.md
│ ├── version-plan.md
│ ├── architecture/
│ │ ├── index.md
│ │ └── <domain>.md
│ └── memory/
│ ├── index.md
│ └── <domain>.md
├── temp/
│ ├── <slug>/
│ │ ├── requirements.md
│ │ ├── architecture.md
│ │ ├── memory.md
│ │ ├── init-proposal.md
│ │ └── init-conflicts.md
│ └── <maintenance-slug>/
│ └── proposal.md
└── multi-lang/
└── <language>/
Use init-proposal.md and init-conflicts.md only for existing-repository initialization.
They are not part of the normal task-memory trio.
Long-term repository knowledge:
persist/architecture/structure, boundaries, domain map, cross-domain relationshipspersist/memory/constraints, pitfalls, decision rationale, long-lived implicit knowledgepersist/version-plan.mdfuture version planning only
Task-scoped working memory:
requirements.mdarchitecture.mdmemory.md
This separation is the heart of RepoMem. Temporary work stays temporary until a human-reviewed merge promotes what actually deserves to persist.
RepoMem uses one primary repository language.
That language governs:
- persistent docs
- temp docs
- merge suggestions
- maintenance proposals
- HITL review items
Secondary languages are mirrors only.
Store them under multi-lang/<language>/.
Do not use them as the primary fact source.
RepoMem is best used as a memory layer around other workflows.
Typical integration points:
- before planning:
repo-mem read <slug> - during execution:
repo-mem capture <slug> - at task closure:
repo-mem merge <slug> - during maintenance:
repo-mem prune/repo-mem split
It pairs naturally with agent-heavy workflows because it gives them a durable, auditable memory system instead of relying on chat context alone.
RepoMem is not:
- a vector database
- a chat memory product
- a general knowledge base for everything
- a replacement for your delivery workflow
- a fully automatic long-term write system
It is a repository-native memory discipline for AI-assisted software work.
RepoMem currently supports:
- reusable skill packaging
- template-based repository initialization
- self-hosted runtime docs under
docs/RepoMem/ - task temp docs
- HITL merge flow
- proposal-first initialization for existing repositories
- conflict generation and conflict resolution by decision
Ongoing work is tracked in:
This repository contains three distinct areas:
repo-mem/
reusable skill package
repo-mem/assets/templates/
templates used to initialize other repositories
docs/RepoMem/
RepoMem managing RepoMem itself
RepoMem is licensed under the MIT License.
That means you can use, modify, and commercialize it, as long as you keep the copyright notice and license text.
See:
If AI agents are becoming your new contributors, RepoMem gives your repository something they usually lack:
durable memory with structure, review, and promotion rules.
