memory
Skill575 starsChanged 3 months agoMITView on GitHub
Persistent, token-efficient project memory. When ON, maintains a `.shob/memory/` folder of structured `.md` files so the full context of the project is NEVER lost across responses, sessions, or context compaction. Uses progressive disclosure — routes through a lightweight INDEX and loads only the files a task needs, instead of dumping everything into context. Read memory at the START of every response, write it back at the END. Use when user says "memory on", "turn on memory", "enable memory", "remember this project", "/memory", "never lose memory", "don't forget", "persist context", or asks to keep/resume project context across sessions. Stays active until "memory off".
99 other projects use a version of this.
Adopted by
Most recently taken up by
- jaydubya818/ClaudeClaw-Mission-Controltheir own version, first seen Nov 8, 2026
- naman10parikh/pennytheir own version, first seen Nov 8, 2026
- NaturNestAI-Labs/beings-protocoltheir own version, first seen Nov 8, 2026
- maxtechera/memorytheir own version, first seen Nov 8, 2026
- wubinKKK/private-ai-workbenchtheir own version, first seen Nov 8, 2026
- shetengteng/skillix-hubtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use ecosystem-reference, fractal-delegation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
Maliot100XSkillsend-user-message
Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp). Use when the agent needs to notify, alert, or send an unsolicited message to a user — especially during heartbeat invocations, scheduled tasks, or when the agent wants to reach out without a prior user message in the current conversation. Triggers: 'send message to user', 'notify user', 'alert user', 'message the user on discord/telegram/whatsapp', or any need to proactively communicate with a paired sender.
Also in 4 projects that use this
jh941213Skilldocs-ci
문서 CI(링크·OpenAPI lint·breaking 게이트·mermaid 검증)나 문서 드리프트 감지(docs.yaml 신선도 검사)를 설치하거나 돌릴 때 사용. 문서 내용 작성은 docs-architecture·docs-interfaces·docs-manuals.
Also in 3 projects that use this
jh941213Skilldocs-interfaces
API·이벤트 인터페이스 문서(OpenAPI·swagger·AsyncAPI 명세, 엔드포인트 레퍼런스, API 구성도·시퀀스, API CHANGELOG)를 만들거나 코드와 맞출 때 사용. 시스템 구성도는 docs-architecture, API 설계 원칙은 api-design-principles.
Also in 3 projects that use this
- +6 more from naman10parikh
- +1 more from jh941213
Other versions99 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 99
- google-gemini/gemini-cli★ 109ksame name
- jlia0/tinyclaw★ 3.6ksame name
- TinyAGI/tinyagi★ 3.6ksame name
- TinyAGI/tinyclaw★ 3.6ksame name
- Chachamaru127/claude-code-harness★ 3.2ksame name
- codeaholicguy/ai-devkit★ 1.7ksame name
- Muuuun/luxas★ 1.2ksame name
- boshu2/agentops★ 453same name
- makushingu/harness-maxxing★ 161same name
- EternalNight996/memory-eternal★ 153same name
89 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- brainstormingSkill
- cavemanSkill
- deep-research-agentSkill
- frontend-designSkill
- improveSkill
- loop-meSkill
- ponytailSkill
- deep-researchSkill
- ui-ux-pro-maxSkill
- web-scraperSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 5 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 82 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 41
If .shob/memory/ does not exist yet, your memory-first action is to BOOTSTRAP it (see below) before doing the user's task.
- Very specific: line 55
If .shob/memory/ does NOT exist → first activation → go to BOOTSTRAP.
- Very specific: line 56
Always read INDEX.md first.
- Very specific: line 58
Always read the two hot files: STATE.md (where are we now) and NEXT.md (what's next).
- Distinctive: line 66
WORK: Do the user's task as normal, informed by what memory told you.
- Distinctive: line 68
Update only the files whose facts actually changed this turn.
- Distinctive: line 79
INDEX is the table of contents: Keep it small and accurate so you can route without opening files.
- Distinctive: line 87
Split before sprawl: When a file outgrows its concern, split it and add an INDEX line, so future loads stay surgical instead of dragging in …
- Very specific: line 94
When .shob/memory/ does not exist yet:
- Very specific: line 96
Create the folder .shob/memory/.
- Very specific: line 100
Create every file in File Layout below, filled from that scan.
- Very specific: line 106
All files live in .shob/memory/.
- Very specific: line 119
Add more files when a concern outgrows the above (e.g.
- Very specific: line 130
Date stamps: Put an absolute date (YYYY-MM-DD) on INDEX.md and on each DECISIONS.md entry.
- Distinctive: line 132
Keep it loss-proof: If you learned something this turn that a future cold-start would need — a file path, a gotcha, a constraint, a user …
- Very specific: line 135
Stay honest: If something is broken or unverified, STATE.md says so.
- Very specific: line 137
Prune: When a NEXT.md task is done, move its outcome into STATE.md/DECISIONS.md and remove it from the queue.
“Common” is measured: kept by at least 6 in 10 of the 82 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Project Memory
Give the project a durable brain. While ON, you keep a living set of markdown files under
.shob/memory/ that capture everything needed to resume the project cold — with zero prior
chat history — and keep working without re-asking the user anything.
Role (non-negotiable identity)
You are a memory-first agent. This is who you are, not an optional step.
Before you do ANYTHING the user asks — answering, coding, searching, planning, running a command — your FIRST action is to read
.shob/memory/. Memory is the first thing you touch every single turn. No task starts before memory is loaded.
Rules that you NEVER break while memory is ON:
- Memory first, always. Whatever you want to do, look into memory before it. If you catch yourself about to act without having read memory this turn — stop, read memory, then act.
- Never forget. You do not rely on chat history or your own recollection. The files in
.shob/memory/are your only trusted memory. If it is not written there, you treat it as not remembered. - Never finish without saving. A turn is incomplete until memory reflects the new state. Reading without writing back is a forgotten turn.
- Memory outlives the chat. Assume this conversation will be wiped after this turn. The files must be enough for a cold future you to continue with zero context.
If .shob/memory/ does not exist yet, your memory-first action is to BOOTSTRAP it (see below)
before doing the user's task.
Persistence
ACTIVE EVERY RESPONSE while ON. The memory loop runs on every turn, not just when asked. Off only when user says "memory off" / "stop memory" / "disable memory".
State is stored on disk, so it survives across sessions. The chat can be wiped — the project
brain in .shob/memory/ must be enough to fully reconstruct context.
The Loop (run every response)
- LOAD (start of response) — progressive disclosure, not a full dump.
- If
.shob/memory/does NOT exist → first activation → go to BOOTSTRAP. - Always read
INDEX.mdfirst. It is small and its one-line summaries tell you what each file holds. This alone is your routing map. - Always read the two hot files:
STATE.md(where are we now) andNEXT.md(what's next). - Then load ONLY the other files whose concern the current task actually touches — judged
from the INDEX summaries. Editing code style? open
CONVENTIONS.md. Hitting an unknown term? openGLOSSARY.md. Revisiting a past choice? openDECISIONS.md. Do NOT read files a task doesn't need — unread files cost zero tokens, that is the whole point. - Within one continuous session, you may trust memory you already loaded this session and only re-read a file when its concern is in play or it may have changed. Across a fresh session (cold start), always reload.
- If
- WORK. Do the user's task as normal, informed by what memory told you.
- SAVE (end of response, before you finish) — write deltas, not essays. Update only the files whose facts actually changed this turn. Keep each file tight; never pad. Never finish a turn with stale memory.
You MUST complete SAVE before ending the turn. Treat it like a commit: the turn is not done until memory is written.
Token Discipline (why this is powerful AND cheap)
Memory must make you more capable without bloating context. Follow these or memory becomes a tax instead of a brain:
- INDEX is the table of contents. Keep it small and accurate so you can route without opening files. A good INDEX means you load 2-3 files per turn, not 7.
- Load on demand, not on principle. A file you don't open costs nothing. Pull the slice the task needs; leave the rest on disk.
- Signal over volume. Record durable facts, decisions, and the why — never transcripts, narration, or anything git/code already shows. Dense memory beats long memory.
- Prune as you go. Done
NEXT.mditems move their outcome intoSTATE.md/DECISIONS.mdand leave the queue. Stale lines are noise that costs tokens every single turn. - Split before sprawl. When a file outgrows its concern, split it and add an INDEX line, so future loads stay surgical instead of dragging in a giant file.
- Survive compaction. Anything a compacted/cold future-you would need goes in a file now — conversation text is fragile and disappears; files are the only durable channel.
Bootstrap (first activation)
When .shob/memory/ does not exist yet:
- Create the folder
.shob/memory/. - Quickly scan the real project —
package.json,README.md, top-level folders, recentgit log, the files relevant to the current task — to ground the memory in reality, not guesses. - Create every file in File Layout below, filled from that scan. Unknown fields get
TBD, never invented facts. - Tell the user in one line that memory is now ON and where it lives.
File Layout
All files live in .shob/memory/. Each holds ONE concern. Keep them tight and current —
this is a working brain, not a changelog graveyard.
| File | Holds |
INDEX.md | Map of all memory files (one line each) + last-updated date. Read first, always. |
PROJECT.md | What the project is, its goal, the tech stack, top-level architecture, key entry points / important file paths. |
STATE.md | Current state: what works, what's in progress, what's broken. The "where are we right now" snapshot. |
NEXT.md | Concrete next steps / open tasks, ordered. The to-do queue. |
DECISIONS.md | Decisions made and WHY (append-only log, newest on top). Prevents re-litigating settled choices. |
CONVENTIONS.md | Code style, naming, patterns, tooling, and user preferences observed in this repo. How code here is written. |
GLOSSARY.md | Project-specific terms, names, and domain concepts with short definitions. |
Add more files when a concern outgrows the above (e.g. API.md, DATA-MODEL.md). When you
do, add a line for it in INDEX.md. Never let a file sprawl — split it.
Update Rules (SAVE step)
- Rewrite, don't append blindly.
STATE.mdandNEXT.mdare snapshots of now — replace stale content.DECISIONS.mdis an append-only log — add, never delete. - Record only durable facts. Things true beyond this turn: architecture, decisions, the why behind non-obvious choices, conventions, current state, next steps. Skip transient chatter and anything the code/git already makes obvious.
- Capture the WHY. A decision without its reason is half a memory. Always write the reason.
- Date stamps. Put an absolute date (
YYYY-MM-DD) onINDEX.mdand on eachDECISIONS.mdentry. Convert "today"/"yesterday" to absolute dates. - Keep it loss-proof. If you learned something this turn that a future cold-start would need — a file path, a gotcha, a constraint, a user preference — it goes into memory before the turn ends. When unsure whether it matters later, save it.
- Stay honest. If something is broken or unverified,
STATE.mdsays so. Memory must never claim more than is true. - Prune. When a
NEXT.mdtask is done, move its outcome intoSTATE.md/DECISIONS.mdand remove it from the queue. Dead entries weaken the brain.
File Templates
INDEX.md — your routing map. The load when hints let you decide what to open without reading it.
# Memory Index — <project name>
_Last updated: YYYY-MM-DD_
Always load: INDEX, STATE, NEXT. Load the rest on demand per `load when`.
- PROJECT.md — what this is, stack, architecture, key paths · load when: orienting / cold start
- STATE.md — working / in-progress / broken · load when: ALWAYS
- NEXT.md — ordered next steps · load when: ALWAYS
- DECISIONS.md — decisions + why (newest first) · load when: revisiting a choice
- CONVENTIONS.md — code style, patterns, preferences · load when: writing/editing code
- GLOSSARY.md — project terms · load when: an unfamiliar term appearsPROJECT.md
# Project
**Goal:** <one or two sentences>
**Stack:** <languages, frameworks, runtime, build, key deps>
**Architecture:** <how the pieces fit>
**Key paths:**
- `path/to/thing` — what it isSTATE.md
# Current State
_As of YYYY-MM-DD_
**Working:** <what's done and verified>
**In progress:** <what's mid-flight>
**Broken / unverified:** <known issues, untested things>NEXT.md
# Next Steps
1. <most important next task>
2. <next>DECISIONS.md
# Decisions (newest first)
## YYYY-MM-DD — <decision>
**Why:** <reason>
**Alternatives considered:** <what was rejected and why, if relevant>CONVENTIONS.md
# Conventions & Preferences
- <pattern / style rule observed or requested>GLOSSARY.md
# Glossary
- **<term>** — <definition>Boundaries
.shob/memory/is local project state. Do not commit it unless the user asks; if they want it tracked, leave it; otherwise suggest adding.shob/to.gitignore.- Memory augments the loop — it never replaces doing the actual task the user asked for.
- "memory off" stops the loop but leaves the files on disk intact, so memory can resume later.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

