Durable, evidence-backed memory for coding agents.
Project Memory gives every coding agent a single, trustworthy knowledge base for your repository — so it stops re-learning the same facts and writing conflicting "memory" files.
Discover → Verify → Classify → Compound → Reconstruct → Single Source of Truth
Code tells agents what exists. Project Memory helps them remember why — and reconciles every place that already tried to write it down.
- Why it matters
- Quick Start
- Supported Platforms
- DeepSeek Harness (DSH) Plugin
- How to Use
- What It Does
- Skills
- Knowledge Architecture
- Testing
- License
Without reconciled memory, every agent (and every AI tool) re-discovers the architecture, re-tries the rejected approach, and writes its own slightly different conclusion. You end up with several disagreeing "sources of truth."
With Project Memory, that knowledge is discovered, verified against actual code, and rebuilt into one canonical memory that the next agent loads from a single trustworthy place.
# Install to all supported platforms (OpenCode, Codex, Claude, DSH, Global)
irm https://raw.githubusercontent.com/LoveDoLove/Project-Memory-Agent/main/install.ps1 | iexThe installer downloads the orchestrator agent and its 8 skills into your chosen tool's global config. Pick a target from the interactive menu (1 OpenCode · 2 Codex · 3 Claude · 4 DSH · 5 Global · 6 All). Via irm | iex it defaults to all non-interactively.
| Target | Skills Location | Agent File |
|---|---|---|
| OpenCode | ~/.config/opencode/skills/ |
~/.config/opencode/agents/project-memory.md |
| Codex | ~/.agents/skills/ |
~/.codex/agents/project-memory.toml |
| Claude | ~/.claude/skills/ |
~/.claude/agents/project-memory.md |
| DSH | CLI: dsh plugin add … |
~/.dsh/.agent-presets/project-memory/ |
| Global | ~/.agents/skills/ |
~/.agents/agents/project-memory.md |
allwrites skills to both~/.claude/skillsand~/.agents/skills(no OpenCode double-load), seeds agent files for all platforms, and prints DSH plugin commands.
Local options: -Target all, -Verify (dry-run), -Branch dev, -Target dsh.
Codex note: requires [features] multi_agent = true in ~/.codex/config.toml (installer prints this; never edits your config).
The project ships a DSH bundle plugin (@lovedolove/dsh-project-memory) that mounts all 8 Project Memory skills into any DSH profile via the built-in skill registry. It also registers cbm_* tools (codebase-memory bridge) when the codebase-memory-mcp is available, injects a first-time-init hint when no AGENTS.md is found, and registers the /project-memory slash command.
# Interactive — shows the commands for your profile
.\install.ps1 -Target dsh
# Explicitly target your web profile
.\install.ps1 -Target dsh -DshProfile webThe installer will print the plugin add command. Run it manually:
dsh plugin --profile web add @lovedolove/dsh-project-memoryAfter install, the one-click command is available in any DSH session:
/project-memory
This automatically detects the repository's Project Memory state and runs the appropriate workflow — no Agent selection, no skill picking, no mode arguments.
For full control, dispatch the orchestrator as a subagent:
use_agent(agent: "project-memory", prompt: "compound my last task")DSH plugin internals: the npm package (dsh-plugin/) uses a single-row Cordis patch that loads the runtime glue (dsh/plugin.mjs), which dynamically registers skills relative to the active workspace, registers the /project-memory slash command, and injects a first-time-init hint when no AGENTS.md is found.
/project-memory
Automatic state detection → appropriate operations → verification. Works in any DSH session after the plugin is installed. No preset selection required.
Invoke the orchestrator in any supported agent:
@project-memory
It discovers existing knowledge, inspects the repository, verifies claims against real evidence, and reports what to keep, change, merge, or remove — across every origin tool, not just its own files.
Typical tasks: audit this repo, build memory for a repo that already has docs, reconcile conflicting AGENTS.md / CLAUDE.md, compound lessons after this feature.
| Capability | Description |
|---|---|
| [D] Discover | Inventories every pre-existing knowledge source with provenance |
| [V] Verify | Claims checked against code, tests, config, CI, Git — never assumed current |
| [C] Classify | One canonical type per claim; conflicts settled by evidence, not file age |
| [Co] Compound | Durable Solutions and Lessons instead of more documents |
| [Cl] Clean | Deletes obsolete knowledge regardless of origin |
| [S] Single Truth | One primary home per concept; everything else references it |
| [L] Lean | Aggressively deduplicated — no rule in two places |
| [A] Self-Audit | Quality bar (Memory Health) + Self-Audit directive to catch drift |
Eight specialized skills instead of one huge prompt:
| Skill | Responsibility |
|---|---|
knowledge-discovery |
Inventory every pre-existing knowledge source, with provenance |
repository-audit |
Gather repository evidence (code, tests, CI, Git) |
knowledge-classification |
Classify claims and resolve cross-source conflicts |
knowledge-compounding |
Turn experience into reusable Solutions & Lessons |
memory-architecture |
Design hierarchy, navigation, progressive loading |
obsolete-knowledge |
Handle stale, deprecated, or superseded knowledge |
memory-edit |
Apply approved documentation changes |
memory-verification |
Final consistency and quality gate |
The orchestrator loads these progressively — you rarely invoke one directly. It can also delegate to codebase-memory (read-only code graph) and cavecrew-builder (bounded edits). Every rule has exactly one canonical owner across the agent and skills; skills reference each other instead of duplicating, so guidance can't drift apart.
AGENTS.md is the single entry point; everything else is referenced, not duplicated.
AGENTS.md
+-- docs/architecture.md -> system design, DSH plugin internals
+-- docs/solutions/ -> diagnosed fix patterns
+-- docs/lessons/ -> reusable engineering principles
+-- skills/<name>/SKILL.md -> detailed skill instructions
+-- templates/ -> document templates
Domains are a pattern, not a mandatory scaffold — only create what holds verified knowledge.
Templates provide starting points for new knowledge documents:
templates/TEMPLATE.md— Solution document with dual-track schema (Bug + Knowledge)templates/CONCEPTS.md— Project vocabulary with accretion/seeding/mutationstemplates/SOLUTIONS.md— Index template for tracking all Solutionstemplates/schema.yaml— Canonical frontmatter contract
Detailed guidance lives in each skill:
skills/knowledge-compounding/references/— Grounding validation, durable bar, quality constraints, session history, auto-memory
Invoke-Pester ./install.tests.ps112 tests cover installer targets, the no-double-load rule, and a guardrail keeping the 8 skills, their manifest, and both agent files in sync.
MIT — see LICENSE.