Project memory
Skill lawzava/megapowers/plugins/megapowers/skills/project-memory
Skills, plugins, and hooks that change how coding agents work — Claude Code, Codex, OpenCode, Antigravity. Measured, not vibed.
npx -y skills add lawzava/megapowers --skill project-memoryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use to save or recall durable project knowledge across sessions: decisions, hidden constraints, gotchas, or references. Triggers: "remember this", "note this decision", or "what did we decide". Not for run progress.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.1 KB, as published. Nobody here has run it
Project Memory
Project memory is durable knowledge that outlives any single run. It lives in the repo as plain markdown, so it travels with the project and any runtime can read it.
Store layout: .megapowers/memory/ holds INDEX.md, one line per memory, plus
one fact per file at <slug>.md with frontmatter fields name, title,
hook, and type (one of decision, constraint, preference, gotcha,
reference) and the fact as the body. Link related memories with [[slug]].
What earns a memory
Save what is durable and not otherwise recoverable: a non-obvious decision and
its rationale, a constraint invisible in the code, a stated user preference, a
hard-won gotcha, a pointer to an external resource. Don't save or duplicate
what code, git history, the README, canonical CONTEXT.md (or the
repository-named equivalent), or accepted ADRs already record, or anything
true only for the current task; if asked to remember something derivable, save
the non-obvious part instead.
Hygiene: one fact per file; update the existing file rather than duplicate; delete a memory that turns out to be wrong; convert relative dates to absolute.
Helpers
scripts/mem-add <slug> --title T --hook H [--type decision|constraint|preference|gotcha|reference] [--update]
# body read from stdin; writes .megapowers/memory/<slug>.md and regenerates
# the index. refuses to overwrite an existing slug unless --update.
scripts/mem-index # rebuild INDEX.md (a file missing its closing '---'
# is skipped with a warning)
scripts/mem-recall <query> # print memories matching the query
Recall
Read INDEX.md at the start of a session and pull a memory's full file only
when its hook matches the work at hand; mem-recall <query> does this
executably. A recalled memory was true when written: if it names a file, flag,
or command, verify that still exists before acting on it. On every recall,
check for contradictions with current canonical sources and observed behavior;
surface conflicts for resolution and never silently resolve them. Independently
verify drift-prone actionable details before relying on them.
Scope
This is project memory, not a Claude-native store. Claude Code's auto memory and subagent memory overlap it, but this store's differentiator is its shape: repo-committed markdown every harness can read, not Claude-only and not machine-local. Keep one home per fact and cross-reference rather than copy a fact into stores that then drift.
The default location .megapowers/memory/ is gitignored (personal notes). To
share memory with a team, point MEGAPOWERS_MEMORY_DIR at a committed location
(e.g. docs/memory/) or add a gitignore negation for the shared subpath; never
git add -f into an ignored path.
Origin: Derived from Superpowers (MIT, (c) 2025 Jesse Vincent), https://github.com/obra/superpowers.