skill
agent-memory-powers
Your agent forgets. Your repo doesn't. A docs-first workflow (work items, specs, plans, ADRs) that gives AI coding agents a durable project memory. Built to pair with Superpowers.
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/kbuleon/agent-memory-powers itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 27, 2026Agent Memory Powers
Your agent forgets. Your repo doesn't.
Agent Memory Powers is a drop-in documentation structure that gives AI coding agents a durable, written memory of your project. Every step of the work — request, specification, plan, decision — leaves a Markdown document in a predictable place, with a clear owner and a clear lifespan. Each new agent session starts from what the project already knows instead of starting from scratch.
It works with coding agents that support AGENTS.md and Agent Skills — Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, OpenCode… — and is built to pair with Superpowers.
Why
An AI coding agent starts every session with an empty head. Whatever was explained, decided or discovered in the previous session is gone unless it was written down — and when it is written down, it usually ends up scattered, stale, or contradicting the code.
Agent Memory Powers takes the opposite approach to memory engines and vector stores: the memory is plain Markdown, in the repository.
- Versioned with the code, reviewed like the code.
- Readable by humans and agents alike — no database, no server, no lock-in.
- Organized so that the agent always knows where to look, where to write, and what it may not touch.
Key ideas
- A place for everything. Numbered folders, each holding one kind of knowledge with its own lifecycle. The numbers follow the workflow, so the folders sort in the order work flows through them.
- Clear ownership. Every file and folder states who writes it: you, the agent, or Superpowers. The agent never rewrites the body of your work items, never touches your
TODO.md, and does not even read your drafts. - A workflow that writes as it goes. Work item → brainstorming → spec → plan → code. Decisions become ADRs, technical references stay in sync with the code, and the changelog records each change against its work item.
- The code wins. Documents are memory, not truth.
AGENTS.mdtells the agent explicitly that the source code is the only reliable source of truth.
How it works
flowchart TD
WI["Work item<br/>10-work-items"] --> B{"Superpowers<br/>brainstorming"}
B -->|architectural| SPEC["Spec<br/>20-specs"]
SPEC --> PLAN["Plan<br/>30-plans"]
PLAN --> DEV["Development"]
B -->|bounded| DEV
B -->|spike| ANS["Answer"]
DEV --> REV["Review"]
REV --> DONE["Done"]
ANS --> DONE
DEV -.-> MEM["Updated along the way<br/>40-adr<br/>50-technical-references<br/>CHANGELOG.md"]
- You write a request.
/create-work-item <title>creates a numbered work item with its front matter; you write the body. Or import an existing Jira issue with/create-work-item-from-jira <key>. - Superpowers brainstorms it with you and classifies it in the work item's front matter; the agent then sets the work item to
in-progress:spike— a question whose output is an answer, not code: once answered, the work item isdone;bounded— a well-scoped change in existing code: development can start right away;architectural— a new project, subsystem or architectural change: it goes through a spec and a plan.
- Spec, then plan. For architectural work, Superpowers writes a specification in
docs/20-specs(what must be true). Once you approve it, it writes an execution plan indocs/30-plans(how to get there). - Development, once you approve the plan, under five rules spelled out in
AGENTS.md:- Sequential only — one task at a time, no parallel runs;
- Clean context — each sub-agent gets only the context it needs, with the specs;
- Adaptive effort — model power and reasoning depth matched to the task;
- Strict review — every delivery checked, rejected if specs or edge cases fail, fixed before the next step;
- Compact memory — validated output summarized into the main context, intermediate logs dropped.
- Memory is updated along the way. The agent proposes an ADR as soon as a decision is adopted (you confirm), keeps the relevant technical reference up to date, and logs the change in
CHANGELOG.md. The work item'sstatusfollows the work:new→in-progress(once classified) →review→done.
Repository layout
.
├── AGENTS.md # the agent's operating manual
├── CLAUDE.md # one line, "@AGENTS.md", for Claude Code
├── ARCHITECTURE.md # software architecture only, self-contained
├── CODEMAP.md # map of the code, built from the sources only
├── CHANGELOG.md # concise log of software changes
├── TODO.md # yours; the agent never touches it
├── README.md, LICENSE # this template's own; not copied into your project
├── .gitignore # rules to merge into your project's .gitignore
├── docs/
│ ├── 00-knowledge-base/ # durable domain knowledge, incl. 010-glossary.md
│ ├── 05-draft/ # your drafts; the agent does not read them
│ ├── 07-studies/ # one-off studies, written on request
│ ├── 10-work-items/ # requests for changes or fixes
│ ├── 20-specs/ # specifications written by Superpowers
│ ├── 30-plans/ # execution plans written by Superpowers
│ ├── 40-adr/ # Architecture Decision Records
│ ├── 50-technical-references/ # one technical topic per document
│ └── work-items-settings.json # work item prefix and Jira label
└── .agents/skills/
├── create-work-item/
└── create-work-item-from-jira/
Each docs/ folder has its own README.md, which defines what the folder holds and serves as its index, maintained by the agent.
The memory map
Each kind of document has an owner and a lifespan. This is what lets the agent trust — or distrust — what it reads.
| Where | What it holds | Written by | Lifespan |
|---|---|---|---|
00-knowledge-base/ | Domain invariants and vocabulary (010-glossary.md) | You | Durable |
05-draft/ | Drafts and preliminary analyses | You | Private — the agent does not read it |
07-studies/ | Analyses of the repository or of a general topic | The agent, at your request | Snapshot — true at the date written, never updated |
10-work-items/ | The raw request for a change or a fix | You (body) · the agent (front matter only) | Historical — kept as a record |
20-specs/ | What must be true once the work is done | Superpowers | Per work item |
30-plans/ | How to do the work, task by task | Superpowers | Per work item |
40-adr/ | A decision, its context, consequences and rejected alternatives | Proposed by the agent, confirmed by you | Immutable — superseded by a new ADR, never rewritten |
50-technical-references/ | One technical topic per document | Created by you — or by the agent once you accept its proposal — and maintained by the agent | Living — updated as soon as the code changes |
CODEMAP.md | Map of the code | The agent | Living |
ARCHITECTURE.md | Software architecture | The agent | Updated when an architectural boundary is crossed |
CHANGELOG.md | Software changes, each referencing its work item when there is one | The agent | Timestamped, concise log |
TODO.md | Your own to-do list | You | Off-limits to the agent |
Work items
A work item is a Markdown file whose front matter carries its state:
---
id: AMP-0001
title: "Fix login timeout on slow networks"
status: new
superpowers-class:
tags: []
---
status | Set by |
|---|---|
draft | You |
new | The creation skill |
deferred | You |
in-progress | The agent, once Superpowers has classified the work item |
review | The agent, when Superpowers reaches code review |
done | The agent, at the final commit — or, for a spike, once the answer has been given |
canceled | You |
Two families of work items coexist:
- Local work items, created by
/create-work-item, use the prefix set indocs/work-items-settings.jsonand the next free number — e.g.AMP-0001-fix-login-timeout-on-slow-networks.md. - Work items imported from Jira, created by
/create-work-item-from-jira, keep the Jira project key and pad the issue number to four digits —PROJ-558becomesPROJ-0558-<slug>.md. They carry two extra marks: theJiratag and ajira: PROJ-558field holding the exact issue key.
The agent only ever edits a work item's front matter. The one exception is the Jira import, which writes the body at creation — and only then.
Skills
The repository ships two Agent Skills, in .agents/skills/. The commands below use Claude Code's slash syntax; other agents invoke skills by name, with their own syntax.
/create-work-item <title>
Creates one numbered work item and adds it to the folder index. It is deliberately defensive:
- it never overwrites, renumbers or edits an existing work item;
- it never falls back to a default prefix — an unreadable settings file stops it;
- it stops if work items with the prefix exist but cannot be parsed, instead of restarting at 1;
- it writes the front matter only: the body is yours.
/create-work-item-from-jira <key>
Imports a Jira issue as a work item, then adds a label to the issue in Jira, so you can see which issues have been handed to the agent. The label is set by jiraLabel in docs/work-items-settings.json — ai-agent by default. The skill requires an Atlassian (Jira) MCP server configured in your agent.
- The issue's summary (with its parent epic), description and link are written to the work item; images are replaced by a mention pointing back to Jira.
- The label is checked before anything is read or written, added only once the local file exists, and the existing labels are preserved.
- All the exact work — key validation, padding, duplicate refusal, slug, YAML escaping — is done by
compose.js, which is covered by tests:
node .agents/skills/create-work-item-from-jira/tests.js
If you installed the skills in .claude/skills/, run node .claude/skills/create-work-item-from-jira/tests.js instead.
Requirements
- A coding agent that supports
AGENTS.mdand Agent Skills — such as Claude Code, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI or OpenCode. Claude Code readsCLAUDE.md, which importsAGENTS.md. - Superpowers — for brainstorming, specs, plans and development. Check its README for the agents it supports.
- Node.js — used by the skills.
- Optional: an Atlassian (Jira) MCP server configured in your agent, for the Jira import skill.
- Optional: Obsidian — the repository opens as a vault, which makes browsing and linking the documents pleasant.
.obsidian/is git-ignored.
Installation
Agent Memory Powers goes into an existing project: you add its files, then let the agent fill in what it can.
-
Add the files to your project — everything in this repository except
README.mdandLICENSE, which describe the template itself. If a file already exists in your project, keep yours:- an existing
AGENTS.md: merge this template's sections into it; - an existing
CLAUDE.md: add the line@AGENTS.mdto it.
- an existing
-
Using Claude Code? Rename the
.agents/folder to.claude/. Claude Code only looks for skills in.claude/skills/. If your project already has a.claude/folder, move.agents/skills/into it instead. Other agents — Codex, GitHub Copilot, Cursor, Gemini CLI, OpenCode… — read.agents/skills/as is. -
Name your project. In
AGENTS.md, replace TO BE COMPLETED on the first line with your project's name and a one-line description. -
Configure the work items. In
docs/work-items-settings.json, setprefixto your project's ticket code. If you use the Jira import,jiraLabelis the label added to imported issues —ai-agentby default, without spaces. -
Merge the
.gitignorerules into your project's.gitignore: they keep the skills versioned and Obsidian's local files out of git. If your.gitignorealready has a.claude/line, replace it with these rules. -
Let the agent bootstrap the memory. In your agent, run these prompts:
- Generate a code map of the project in CODEMAP.md
- Generate ARCHITECTURE.md following the guidelines in AGENTS.md
- Analyze the project and generate a glossary of domain and product terms in docs/00-knowledge-base/010-glossary.md, following the format described at the top of the file
-
Review the glossary yourself. Remove what is not relevant and add the entries that are missing: it is the vocabulary the agent will reason with.
-
Install Superpowers. In Claude Code, adding its marketplace keeps you on the latest versions:
/plugin marketplace add obra/superpowers-marketplace/plugin install superpowers@superpowers-marketplaceFor other agents and installation options, see the Superpowers README.
A day with Agent Memory Powers
/create-work-item Fix login timeout on slow networkscreatesdocs/10-work-items/AMP-0001-fix-login-timeout-on-slow-networks.md. You describe the problem in its body.- You ask your agent to brainstorm work item
AMP-0001with Superpowers. It reads the work item, asks its questions, and classifies it — say,architectural. The agent sets the work item toin-progress. - Superpowers writes
docs/20-specs/YYMMDD-AMP-0001-login-timeout.md. You review and approve it. - Superpowers writes the execution plan in
docs/30-plans/. You approve it, and development starts, one task at a time, each reviewed before the next. - Along the way, the agent proposes an ADR when you settle on a retry strategy, updates the networking technical reference, and logs the change in
CHANGELOG.mdagainstAMP-0001. - At the final commit, the work item is
done. Next week, a fresh session finds the request, the spec, the plan, the decision and the up-to-date reference exactly where it expects them.
Credits
Agent Memory Powers is an independent project, designed to pair with Superpowers by Jesse Vincent and Prime Radiant. It is not affiliated with Superpowers or its authors.