# Project Memory

> Use to create and maintain durable cross-session project memory and the progress ledger, so long autonomous builds resume cleanly after compaction, restarts, or new sessions. Read it when starting work and update it as decisions and tasks land.

- Skill: `martian56/project-memory` (Agent Skill)
- Install (CLI): `npx skillmds@latest add martian56/project-memory`
- Raw SKILL.md: https://api.skillmd.com/api/skills/martian56/project-memory/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: martian56 (https://skillmd.com/u/martian56)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/martian56/project-memory

---


# Project Memory

**Announce at start:** "I'm using claude-engineer:project-memory to keep durable project state."

Long autonomous builds outlive a single context window. Memory lives in **files**, not your head.
The claude-engineer SessionStart hook auto-loads these at the start of every session.

## The state files (in `.claude-engineer/`)
- **`memory.md`** - durable project memory: key decisions (+ why), established conventions, the data model, open threads/risks, and "next action". The single source of truth for *why things are the way they are*.
- **`progress.md`** - the task ledger: each task with status (todo / doing / done), the commit/branch, and a one-line result. Append-only-ish; never delete history.
- **`current-phase.txt`** - one line naming the active phase (e.g. `Phase 2 - Frontend`).
- **`quality-gate-status.json`** - written by the project quality-gate runner; read by the commit gate. Do not hand-edit.

## Iron Law
**Trust the ledger and `git log` over your own recollection.** After compaction, re-read these files before acting. Never re-run a task `progress.md` marks done.

## When to update
- **After every task:** append a line to `progress.md`.
- **On every non-obvious decision:** add it to `memory.md` (mirror big ones into `docs/plan/decisions.md`).
- **On phase change:** update `current-phase.txt`.

## Initialize (Phase 0 / planning)
Create `.claude-engineer/` with seed `memory.md` (problem, stack, data model, decisions-so-far, next action), an empty `progress.md` ledger, and `current-phase.txt`. Add `.claude-engineer/quality-gate-status.json` to `.gitignore` (machine-generated); commit `memory.md`/`progress.md` so teammates and future sessions share them.

## Red flags - STOP
- Starting work without reading `memory.md` + `progress.md` first.
- A decision made in chat but never written down → write it now; chat is not durable.
- Re-deriving something already settled in `memory.md`.

