Releases: awrshift/agent-memory-kit
Release list
v6.4.0 — One memory for every coding agent
The rebrand release: the repo is now agent-memory-kit (GitHub redirects preserve all old links; the plugin id memory-kit@memory-kit is unchanged — no install breaks).
Multi-host, measured, not promised (v6.3.x + v6.4.0 combined):
- Cursor — installs from this repo by git URL, all 8 skills load, and the CLI executes the SessionStart hook: memory injection works (spec)
- Codex — native manifests install directly, all 8 skills visible,
AGENTS.mdprotocol chain verified by canary probes (spec) - Everything else — the memory is plain markdown in your repo;
/memory-kit:setupoffers anAGENTS.mdprotocol block for hosts without hooks - Per-host truth lives in docs/specs/ — every claim labeled verified / documented-only / manual-check-needed
Also: README rewritten around the new positioning (~2,700 → ~1,100 words), full diagram sweep (five regenerated, four verified), Cursor central-marketplace manifests shipped.
Full history: docs/CHANGELOG.md
v6.2.0 — the project layer: where the work's own documents live
The kit was multi-project in its MEMORY and single-project in its PAPERWORK. Every artifact the
builder's layers produce had a root-level address — docs/qa/README.md, context/review-findings.md,
docs/decisions-log.md — so a workspace with five clients got one QA protocol, one findings
registry and one decision ledger for all of them. And the most load-bearing artifact of the whole
orchestration model, the spec an executor builds to, had no address at all: it lived in a prompt,
which meant it could not be re-read at merge, diffed against what was built, or found the next day.
Added
projects/<name>/is now the documented home of the work's own documents, and the first
thing in it isREADME.md— a map table of where this project's tasks, specs, research,
decisions, findings and QA records live. That table is the SSOT answering "where does a plan
go"; the default paths are a default, not a law.templates/workspace/project/— three new templates:README-TEMPLATE.md(the map),
SPEC-TEMPLATE.md(goal · non-goals · pre-registered acceptance · gates · slices ·
registered deviations — the contract an executor builds to), and a workingBACKLOG-TEMPLATE.md.reference/project-extensions.md— the decision table for when a repeated workflow earns a
project skill, hook, agent or rule, what each costs when idle, and the three questions to ask
before adding any of them. Previously the kit audited these layers (system-auditlens 4) while
never saying how to build one.
Changed
- The spec is a file, not a prompt.
parallel-development.mdgains Level 0: the contract is
written atprojects/<name>/plans/YYYY-MM-DD-<slug>.mdbefore any fan-out, and executor prompts
POINT at that path.agents/executor.mdnow says to read the spec file in full, treats its
Non-goals as binding, and forbids editing it — the integrator owns it and adjudicates deviations. - The agentic artifacts got project addressing: the QA protocol and run records
(docs/qa/→projects/<name>/qa/), the findings registry (context/review-findings.md→
projects/<name>/review-findings.md), the decision ledger (docs/decisions-log.md→
projects/<name>/decisions-log.md).context/audits/stays at the root — a system audit is
about the agent system, not about one client. reconnames what is worth filing, and the integrator files it under
projects/<name>/research/<topic>-YYYY-MM-DD/— dated, because an outside fact older than a week
is a hypothesis again./memory-kit:setupgains Step 1b and drops the rule that said not to createprojects/in a
code repository. That rule is why specs, backlogs and research had nowhere to go in exactly the
repos that run executors. A single-product repo now gets one project folder, named after the
product. OnlyREADME.mdandBACKLOG.mdare scaffolded; every other path appears on first use.- A repository that already has a
docs/keeps it. Setup maps it in the project README and
migrates nothing. context/identity.md(injected every session) now draws the line explicitly: four memory
layers, andprojects/<name>/which is not a fifth — memory is what the agent learned, a project
folder is what the work produced.templates/workspace/BACKLOG-TEMPLATE.md→ONBOARDING-BACKLOG.md. It was a five-task day-one
tutorial being handed out as the template for real project backlogs.
Fixed
docs/ARCHITECTURE.mdstill listedmemory-usageandmemory-lintas operators, ten
days after 6.1.0 removed them (2026-08-17) — the exact drift its owndoc-governance.mdR2
forbids, and it survived the 6.1.1 release in between.
Migration
Nothing breaks and nothing moves on its own. Existing repos keep their current paths; when you
next touch one of the relocated files, either move it into the project folder or leave it and
repoint the row in projects/<name>/README.md. /memory-kit:setup can be re-run safely — it
creates only what is missing — and is the easiest way to get the project README written for you.
v6.1.1 — the depth nobody could find
[6.1.1] — 2026-08-18 — The depth nobody could find
Fixed
-
reference/was unreachable. Six documents —orchestrator-fact-check,review-loop,
parallel-development,doc-governance,decisions-log,capability-map-sweep— were named
only in the README (not loaded), in/memory-kit:setup(only if invoked) and in
templates/rules/orchestration.md(only if the user copied it into.claude/rules/). Grepped
across the skills: every one of them exceptqa-PROTOCOL-TEMPLATEwas referenced zero times.
A user who installed the plugin and skipped setup never learned they exist.Now
context/identity.md— the one file injected into every session — names the operators and
thereference/directory, and each document is cited from the skill that needs it:
close-session→doc-governance+decisions-log;session-review→orchestrator-fact-check,
parallel-development,review-loop;second-opinion→orchestrator-fact-check;
system-auditlenses 2 and 3 →doc-governance,review-loop,parallel-development;
thereconagent →capability-map-sweep.The subtraction rule cuts both ways: a layer nobody can reach is decoration, whether it was
never written or merely never linked. -
A broken path in
agents/qa.md— it pointed atrules/orchestrator-fact-check.md, a v5
location. The file has lived inreference/since 6.0.0. -
close-sessionhad noallowed-tools. NowRead, Write, Edit, Grep, Glob, Bash. The
orchestrating skills (session-review,second-opinion,qa-sweep,system-audit)
deliberately keep inheriting the full set: they spawn subagents, and the spawn tool has been
renamed across Claude Code versions — pinning a list there would break the skill on the version
that calls it something else. Anallowed-toolsthat can silently disable a skill is worse than
none.
Nothing in a user's repository changes; /memory-kit:setup is not required after this upgrade.
v6.1.0 — two skills nobody ran
Removed
/memory-kit:memory-lint. It linted[[wikilink]]hygiene — broken links, orphan pages,
missing backlinks — for a convention the kit does not actually ship: nothing in the templates
emits wikilinks. It sat behind acpstep from v4.2.0 to v6.0.0 and never produced a report in
this repository's history. What was load-bearing in it (frontmatter coverage, references that
no longer resolve) the system-audit collector already gathers generically.
Changed
/memory-kit:memory-usagefolded into/memory-kit:system-audit. The transcript profiler
is real signal — it is the only thing that can answer "did this rule / skill / agent ever
actually fire?" — but that question belongs to the audit's layer-telemetry lens, which until
now described a telemetry table nobody generated. The script moved to
skills/system-audit/scripts/usage.pyand the lens invokes it. One fewer skill, one lens that
can finally be executed instead of aspired to.
The subtraction rule this follows: a layer that has never fired is not "available", it is
decoration. It was written into the audit's own lens 7 before it was applied here.
v6.0.0 — the kit becomes a plugin, and the hot cache is actually loaded
The kit stops being a repository you clone and becomes a plugin you install into a repository you already have. Every memory path is unchanged — .claude/memory/MEMORY.md, context/handoffs/, knowledge/concepts/, .claude/rules/ — so nothing you have accumulated needs to move.
/plugin marketplace add awrshift/claude-memory-kit
/plugin install memory-kit@memory-kit
/memory-kit:setupThe bug that made this release urgent
Since v3 the kit told the agent that .claude/memory/MEMORY.md was "always loaded (hot path)". It never was. Claude Code auto-loads CLAUDE.md, .claude/rules/ and its own auto-memory directory — never the kit's file. CLAUDE.md carried no @ import of it, and session-start.py only ever read the file to measure it. The ritual wrote, session after session, into a file the agent saw only if it happened to open it.
The hook now injects the body of the cache and re-injects it after compaction. Verified end-to-end rather than by reading code: a canary token placed in a test repo's hot cache came back from the model through the real plugin loader.
The lesson generalizes, and is now written into the docs: a claim that something is "in context" is verified by looking at the context.
Also fixed
- Permissions. The allowlist shipped
Bash(git *),Bash(npm *),Bash(node *),Bash(python3 *)with an emptydeny— auto-approving forced pushes, hard resets and arbitrary execution vianode -e./memory-kit:setupnow proposes real rails. - The test guard. Creating a test with Write was allowed, then every later Edit of it was hard-blocked, so a red→green loop was impossible and there was no escape hatch. It now asks instead of refusing, always allows a file the session created, and honours
CMK_ALLOW_TEST_EDITS=1. - Telemetry scripts derived the project root from
__file__, so inside a pluginmemory-usagemeasured the plugin's own transcripts. - SessionStart profiles by source:
startup/clear/forkget the full payload,compactgets exactly what compaction dropped,resumegets only nudges and stats. The session counter no longer counts resumes. .claude/state/is pruned at 30 days instead of growing forever.
New
/memory-kit:setup— adopts the kit in an existing repo and settles the question Claude Code's own auto memory now forces: two memory systems means two writers and two truths, so setup asks who owns it./memory-kit:memory-audit— the cap-trip surgery, split out of the daily ritual. A ritual that also has to perform surgery is a ritual people skip./memory-kit:system-audit— a periodic seven-lens sweep of the whole system, every finding evidence-backed.
Removed
periodic-save.sh— a Stop hook fires at the end of every turn, and this one parsed the whole transcript each time, to restate what PreCompact already enforces at the moment it matters.- The daily chronicle (
/close-day,daily/) — demoted to opt-in in v5 because it rotted when days were skipped; in practice nobody enabled it. .kit/advanced/as a distribution surface, and the three-plugin split the first cut of v6 introduced: skill bodies load only on invoke, so the split paid a real cost to save a memory-only user a handful of description lines.
Migration from v5
- Remove the copies the plugin replaces:
.claude/hooks/,.claude/skills/close-session,.claude/skills/tour,.claude/memory/scripts/, and the kit's hook block in.claude/settings.json. Keep.claude/memory/MEMORY.md,context/handoffs/,knowledge/,.claude/rules/and your ownCLAUDE.md. /plugin marketplace add awrshift/claude-memory-kit→/plugin install memory-kit@memory-kit./memory-kit:setup— it detects what exists and only fills gaps.- Run
/contextand confirm the hot cache is really there. That is the check v5 never made.
Full detail: docs/CHANGELOG.md · docs/ARCHITECTURE.md
v5.1.0 — Full-tree audit: real memory privacy, the orchestration layer, v4-rudiment sweep
A file-by-file audit (four independent review passes) plus the maintainers' multi-agent orchestration practice, generalized into an opt-in layer.
Added
- Orchestration layer (
.kit/advanced/orchestration-layer/, opt-in):executor/recon/idea-validatoragents,/session-review+/second-opinionskills, and four rules (orchestrator fact-check · parallel development + worktree isolation · doc governance · decisions log). Onecpset enables it. MEMORY-TEMPLATE.md+ hook self-heal:session-start.pycreatesMEMORY.mdfrom the template on first run.
Changed
MEMORY.mdis now actually gitignored — the README's privacy claim is finally true; your hot memory can't leak with a push.- v4-rudiment sweep: the default rule scaffold and the opt-in
/close-dayskill no longer reference the retired NSP /daily/-as-default. - Hook fixes:
periodic-savecounts real human turns only;pre-compactchecks all three caps;protect-testsparses JSON properly and never blocks notes. lint.pywikilinks resolve againstknowledge/concepts/;aggregate_usage.pyhandles dotted project paths;stale-refs.pycleaned of author-specific paths;settings.jsonno longer pre-approvesrm/mv/chmod.- ~16 MB of unreferenced social graphics removed from the tree.
Removed
- BREAKING:
/memory-query— asking the agent in conversation covers it. - Orphaned
knowledge/log.mdand dead config constants.
Migration notes: .kit/CHANGELOG.md § 5.1.0.
v5.0.0 — Lean core: handoffs replace the daily chronicle; three memory caps; stale-refs detector
The default is rebuilt around what survived long-running production use. The chronicle-shaped defaults — daily logs + the rolling next-session-prompt — were the parts that silently rotted (unclosed days; an NSP that froze while still looking authoritative; a MEMORY.md that packed 51.5 KB into 152 lines without tripping the old line check). v5 keeps the kit's soul — date-tagged memory, audit-driven promotion, "user only talks" — and swaps the fragile layer for one that fails loudly.
Breaking
/close-sessionreplaces/close-dayas the default close ritual: capture dated patterns → audit for 3+-date repetition → promote on your "yes" → REPLACE the MEMORY.md header → write the handoff.context/next-session-prompt.mdretired. "Where we left off" is now one immutable note per closed session incontext/handoffs/; the start hook injects the newest one.daily/journal +/close-daymoved to opt-in.kit/advanced/close-day-layer/— onecpre-enables it, and it composes with the v5 core.
Added
- Three independent MEMORY.md caps, hook-enforced (defaults 180 lines / 32 KB / 3000 chars per line; tunable via
CMK_MEMORY_*env). Line count alone lies — content densifies into ever-longer lines whilewc -lstays flat. - Stale-refs detector — every session start, file paths mentioned in memory are checked against disk; anything moved or deleted is flagged. The #1 memory failure is a stale belief that looks current.
- MEMORY.md header discipline — the header is "current state in 2-3 sentences", replaced at every close, never a chronicle.
context/handoffs/HANDOFF-TEMPLATE.md— the five-section session-close note.
Changed
session-start.pyrewritten: newest handoff + memory stats + projects/experiments overview + knowledge index; injection budget 50K → 20K chars.pre-compact.shnow requires MEMORY.md to be fresh AND under its line cap before allowing compaction.- README rewritten beginner-first (incl. the new "Why it doesn't rot" section); all docs + 4 README diagrams synced to v5.
Migration from v4.x
See .kit/CHANGELOG.md § [5.0.0] — or simplest: clone v5 fresh and tell Claude "I have a v4 kit at , help me migrate". Memory entries, knowledge articles, rules and projects carry over as-is.
v4.1.2 — tighten CLAUDE.md operational instructions
Close 3 operational gaps in the auto-loaded agent brain so Claude Code doesn't need to read .kit/ docs or guess for common operations. CLAUDE.md size unchanged (156 lines — replaced items with tighter versions).
- Experiment creation: mandate copying experiments/EXPERIMENT-TEMPLATE.md as starting structure (no invented schemas)
- Rule creation: explicit
created:+last-reviewed:frontmatter requirement (pointer to _example.md.disabled skeleton) - Concept creation: explicit reference to knowledge/index.md frontmatter spec
- Experiment closing: distill ritual essentials inlined (lessons → concepts/, code → projects/, then rm -rf folder)
Why: user feedback "the user won't read files — Claude Code must understand everything from auto-loaded context". Audit found 3 common operations had details only in non-auto-loaded files (.kit/, experiments/README, skill bodies, _example.md.disabled). v4.1.2 inlines the essentials in CLAUDE.md while keeping it under 200 lines per Anthropic project-memory guidance.
v4.1.1 — restore experiments/ + canonicalize date-tagging
Two corrections to v4.1.0 minimization.
-
experiments/ wrongly removed — restored as documented sandbox layer
- experiments/README.md: convention, lifecycle, agent triggers
- experiments/EXPERIMENT-TEMPLATE.md: hypothesis/method/result/lessons skeleton
- Naming: -YYYYMMDD (date-tagged)
- Distill-on-close: lessons → knowledge/concepts/, code → projects/, then delete folder
- /close-day flags experiments older than 30 days
-
Date-tagging promoted from implicit mechanic to documented load-bearing system invariant
- CLAUDE.md: now has TWO core invariants — "user only talks" + "every memory entry carries a date tag"
- .kit/ARCHITECTURE.md: new section "Date-tagging convention (load-bearing)" explaining where dates live and why
- .claude/rules/_example.md.disabled: frontmatter adds
created+last-reviewed, plus "Review history" section - knowledge/index.md: frontmatter adds
created; section-append convention## [YYYY-MM-DD] <title> - context/next-session-prompt.md: every Pick-up/Open-decisions/Recent-deliverables item must be
[YYYY-MM-DD]-prefixed; Active experiments section added - daily/TEMPLATE.md: clarifies date-in-filename + optional
[HH:MM]inline + audit candidates cite triggering dates - .claude/memory/MEMORY.md: "Why dates matter" section; entries without date declared a bug
- .claude/skills/close-day/SKILL.md: Phase 2 audit explicit date-arithmetic queries; Signal E for experiment hygiene; example proposals quote specific triggering dates as evidence
Other:
- README.md: "What's inside" tree adds experiments/ line; projects-vs-experiments paragraph below
- CLAUDE.md: projects/ vs experiments/ comparison table; agent-trigger guidance
- .kit/CHANGELOG.md: full v4.1.1 entry with migration notes
- .kit/VERSION: 4.1.0 → 4.1.1
No code changes — date-tagging machinery in lint.py/compile.py already worked. This release makes the convention explicit and restores experiments/.
Verified: lint.py 0 issues, zero Cyrillic in tracked files.
v4.1.0 — English rewrite + new README cheat-sheet graphics
Documentation rewrite:
- README.md: full English rewrite (was Russian post-9e2c68e); replaced "Memory accumulates" growth-curve section with two new sections "Memory layers" + "Promotion pipeline"; updated "What's inside" tree to reflect .kit/ subfolder; added "Hooks and operators" section
- CLAUDE.md: dropped role-guidance section, simplified hooks list (5 hooks accurate), all Russian dialogue examples replaced with English
- SKILL.md (root): description updated, English-only
- daily/README.md + new daily/TEMPLATE.md: explicit format for /close-day output, dropped role-guidance refs
- .claude/skills/close-day/SKILL.md: audit Phase 2 retargeted to knowledge/concepts/ + .claude/rules/ (was role-guidance), all examples in English
- .claude/skills/tour/SKILL.md: rewritten — drop role-guidance Stop, drop hooks deep-dive, English-only
- .claude/memory/MEMORY.md: clean template, no role-guidance refs, English examples
- context/next-session-prompt.md: pointer cleanup
- projects/my-first-project/BACKLOG.md: 5-task onboarding guide translated to English
New README cheat-sheet graphics (.github/assets/, Gemini Pro Image 16:9 2K):
- og-banner.png: refreshed — 4 isometric slabs with real file path labels (CLAUDE.md, MEMORY.md, rules/, concepts/), subtitle "Memory + Rules + Wiki + Hooks"
- 03-memory-layers.png: NEW — three-panel infographic showing HOT CACHE / WIKI / RULES with file paths and "WRITES: agent (...)" tags
- 04-promotion-pipeline.png: NEW — Liquid → Amber → Crystal (rules OR concepts) flow with real file paths
- 05-multi-project.png: NEW — folder tree with active scope highlight + "always loaded (shared)" cards
- 06-hooks-and-operators.png: NEW — two-column cheat-sheet (5 hooks + 5 slash operators)
- removed 03-knowledge-growth.png — abstract curve replaced with concrete pipeline diagram
Social media assets (untracked → tracked):
- .github/assets/social/{linkedin-.png, x-post-.png} — 7 marketing images for v4 launch posts
.gitignore: allow daily/TEMPLATE.md through alongside .gitkeep + README.md.
Verified: zero Cyrillic in tracked files, lint.py 0 issues.