{"slug": "show-hn-memory-catalog-claude-memory-protocol-to-manage", "title": "Show HN: Memory-Catalog – Claude memory protocol to manage", "summary": "A developer released Memory-Catalog, an open-source plain-Markdown protocol for organizing an AI assistant's long-term memory, built on Claude's memory and Projects features. The spec defines five principles — one fact, one home; user adoption of assistant proposals; provenance checkpoints such as ⟨a1b2c3d4 t13→t20⟩ recording the chat turn where an entry was proposed and accepted; an \"already considered\" register for rejected ideas; and proof-before-removal with a byte-verified backup — plus five safety rules (S1–S5) and an optional Project board. The structure is designed to carry over to any assistant with file-based memory, with Claude-specific parts labeled as such in the spec.", "body_md": "A protocol for organising an AI assistant's long-term memory so it stays useful as it grows: an **index** of your work streams, a **backlog** of what's next, a dated **log** of what happened, a register of ideas **already considered**, and links from every entry back to the exact chat turn it came from.\n\nIf you find it useful, a ⭐ helps others discover it.\n\nIt was built on Claude's memory and Projects. Everything is plain Markdown, so the structure carries over to any assistant with file-based memory; Claude-specific parts are named as such in the spec.\n\nAssistant memory tends to turn into a pile. Status is repeated in several places and drifts apart. You can't tell which decisions you made and which the assistant suggested. Ideas you rejected come back as new. Cleaning up risks deleting the one fact that wasn't recorded anywhere else.\n\nThe catalog is built on five principles:\n\n- **One fact, one home.** Status lives only in the backlog, history only in the log. Detail that a repository already holds stays there, with a pointer to it. ([SPEC §3](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#3-what-belongs-in-an-area-file-and-what-does-not) ,[§11](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#11-keeping-memory-small) )\n- **You adopt, the assistant proposes.** Anything from the assistant's analysis is filed only after you confirm it. ([SPEC §5](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#5-catalog-this-chat-step-by-step) , the adoption gate)\n- **Provenance.** Every entry carries a checkpoint such as`⟨a1b2c3d4 t13→t20⟩` : proposed at turn 13 of that chat, accepted at turn 20. Verbatim anchor phrases let the link be verified or repaired if the chat is edited. ([SPEC §6](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#6-checkpoints-and-quotes) )\n- **Nothing is lost silently.** Ideas you declined, and ideas raised but never discussed, go into an \"already considered\" register so they don't come back as if new. ([SPEC §5a](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#5a-the-already-considered-register) )\n- **Proof before removal.** A cleanup removes nothing that can't be proven to exist elsewhere, and you get a byte-verified backup first. (Safety rule S2,[SPEC §13](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#13-safety-rules) and[§16](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#16-formats-backup-cut-list-unverified-marker) )\n\nThe five safety rules (S1–S5) that protect your data are in [SPEC §13](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#13-safety-rules). New to the vocabulary? See [Terms, SPEC §0](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#0-terms).\n\nRequirements, checking the installation, updating and removal are in **[INSTALL.md](https://github.com/donalddominko/Memory-Catalog/blob/main/INSTALL.md)**. The short version:\n\n**The catalog.** Open a new chat **outside any Project**, attach [`SPEC.md`](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md) and send:\n\nSet up the catalog system from this spec. Show me what you'll create before writing anything.\n\nThe assistant proposes the catalog files and how your existing memory is sorted into them, asks a few questions, and writes only after you approve. Check it worked with **status digest**.\n\n**A Project board** (optional). Open a chat **inside** the Project and send:\n\nset up the board\n\nUntil the nightly sync exists, a board shares status only between chats of that Project. To bring a Project's news into your main catalog, say \"read the *Project name* board and update the catalog\" in a main chat. ([SPEC §7](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#7-project-boards))\n\nSay these in plain words; exact wording doesn't matter. **Where:** MAIN = a chat outside any Project · PROJECT = a chat inside a Project · ANY = either. This table is copied from [SPEC §12](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#12-commands), which is the source of truth.\n\n| Say | Where | What happens | You get back | \n|---|---|---|---|\n| **Set up the catalog system from this spec. Show me what you'll create before writing anything.***(attach SPEC.md)* | MAIN | Stores the spec as `/catalog/protocol.md` , proposes the catalog files and how your existing memory is sorted into them, asks questions | A proposal, then the list of files created after you approve | \n| **Update the catalog protocol to this version. Show me what changes before writing.***(attach the new SPEC.md)* | MAIN | Compares with `/catalog/protocol.md` | The differences, then the update after you approve | \n| **Delete the catalog files.** | MAIN | Whole-file deletion on explicit request (rule S2); a backup is offered first | Confirmation of what was deleted | \n| **set up the board** | PROJECT | Creates `_board.md` ,`_feed.md` ,`_inbox.md` ,`_considered.md` in that Project (section 7) | The list of files created | \n| **export the catalog spec** | MAIN | Generates this document from the protocol (rule S1) | The file | \n| **clean up*** file* /**slim*** area file* | MAIN | The rule S2 procedure (section 16) | A backup file and a cut list; nothing removed until you approve | \n| **catalog this chat** | ANY | Section 5 (inside a Project it writes only that Project's files) | Candidates and questions, then the three-part report | \n| **catalog my past chats** /**catalog chats about*** topic* | ANY | Section 5, one chat at a time (for many chats, section 18); only reaches chats in the same scope | The same, per chat | \n| **what's next** /**backlog for*** stream* | ANY | Reads the backlog | The matching task lines | \n| **park*** task* /*task***is done** /**drop*** task* | ANY | Status change + log line; \"done\" needs evidence (section 4) | Confirmation of the change | \n| **status digest** | ANY | Reads the index and backlog | A plain text summary | \n| **was*** idea***considered?** /**what was left undiscussed about*** stream* | ANY | Reads the register | Matching lines with status and checkpoint | \n| **verify checkpoints** | ANY | Section 6 | Each anchor's result | \n| **read the*** Project name***board and update the catalog** | MAIN | Brings a Project's news into main memory until the nightly sync exists (section 7) | Candidates, then the usual report | \n\n| File | Holds | \n|---|---|\n| `index.md` | Every work stream, its status, where its detail lives | \n| `backlog.md` | Open tasks by stream: the only place task status lives | \n| `log.md` | Dated history, older months rolled up | \n| `principles.md` | Rules of thumb you've adopted, with checkpoints | \n| `considered.md` | Ideas declined (with your reason) or raised but not discussed | \n| `checkpoints.md` | Chat keys, turns and anchor phrases for provenance | \n| `quotes.md` | *Planned.* Exact key sentences, append-only | \n\nAlongside the catalog, each work stream has an **area file** (`/areas/<stream>.md`) holding its current state. Each Project gets `_board.md`, `_feed.md`, `_inbox.md` and `_considered.md`. Full reference: [SPEC §2](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#2-the-files-and-who-writes-them).\n\n```\nSPEC.md                the full specification (install this)\nINSTALL.md             how to install, check, update and remove it; how to run the tools\nCHANGELOG.md           spec versions\ntemplates/catalog/     empty starter files for main memory\ntemplates/project/     empty starter files for a Project\ntemplates/area.md      empty starter file for a work stream\nexamples/              a worked example with a fictional user\ntools/                 checks used by the safety rules (bash)\nCONTRIBUTING.md        how to suggest changes\nCLA.md                 contributor licence agreement\nLICENSE, LICENSE-DOCS, LICENSE-TEMPLATES   the three licences (see Licence below)\nNOTICE                 copyright notice and reservation of text-and-data-mining rights\n```\n\nThe tools prove that a cleanup lost nothing, that a backup is complete, and that nothing personal is published. What each proves: [SPEC §15](https://github.com/donalddominko/Memory-Catalog/blob/main/SPEC.md#15-tools-and-publishing). How to run them: [INSTALL.md](https://github.com/donalddominko/Memory-Catalog/blob/main/INSTALL.md#using-the-tools).\n\nSpecification **v0.15**. The index, backlog, log, principles, checkpoints and \"already considered\" register are in daily use. The quotes file, Project feeds and inboxes, and the nightly sync are specified but not yet running. See the [changelog](https://github.com/donalddominko/Memory-Catalog/blob/main/CHANGELOG.md).\n\nIf Memory Catalog is useful to you, please **leave a star ⭐** at the top of this page. It helps other people find the project and shows that it's worth continuing to develop.\n\nCopyright (C) 2026 Donald Dominko. Different parts use different licences:\n\n| Part | Licence | You may | \n|---|---|---|\n| `tools/` and`.github/` (code) | [AGPL-3.0-only](https://github.com/donalddominko/Memory-Catalog/blob/main/LICENSE) | Use, change and share it. If you distribute it, or run a changed version as a service for others, you must publish your source under the same licence. | \n| `SPEC.md` ,`INSTALL.md` ,`CHANGELOG.md` , READMEs and other documentation | [CC BY-SA 4.0](https://github.com/donalddominko/Memory-Catalog/blob/main/LICENSE-DOCS) | Use, adapt and share it, including commercially, with credit to Memory Catalog and under the same licence. | \n| `templates/` and`examples/` | [CC0 1.0](https://github.com/donalddominko/Memory-Catalog/blob/main/LICENSE-TEMPLATES) | Anything, with no conditions. Your own catalog files built from the templates are yours. | \n\n**Commercial licences** for the code, without the AGPL conditions, are available from AI Partner Solutions Ltd. To ask, use the contact form at [www.aipartner.london](https://www.aipartner.london).\n\n**Text and data mining, including AI training,** is reserved: it is permitted only under the terms of the applicable licence or a separate licence. See [NOTICE](https://github.com/donalddominko/Memory-Catalog/blob/main/NOTICE).\n\nVersions up to and including spec v0.14 (commit `e32b809`) were released under the MIT licence and remain available under it.", "url": "https://wpnews.pro/news/show-hn-memory-catalog-claude-memory-protocol-to-manage", "canonical_source": "https://github.com/donalddominko/Memory-Catalog", "published_at": "2026-10-23 17:50:10+00:00", "updated_at": "2026-10-23 18:13:11.883916+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "ai-agents", "ai-products"], "entities": ["Memory-Catalog", "Claude", "Anthropic", "Projects"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-memory-catalog-claude-memory-protocol-to-manage", "markdown": "https://wpnews.pro/news/show-hn-memory-catalog-claude-memory-protocol-to-manage.md", "text": "https://wpnews.pro/news/show-hn-memory-catalog-claude-memory-protocol-to-manage.txt", "jsonld": "https://wpnews.pro/news/show-hn-memory-catalog-claude-memory-protocol-to-manage.jsonld"}}