Skip to content

Releases: awrshift/agent-memory-kit

v6.4.0 — One memory for every coding agent

Choose a tag to compare

@awrshift awrshift released this 31 Aug 11:17

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.md protocol chain verified by canary probes (spec)
  • Everything else — the memory is plain markdown in your repo; /memory-kit:setup offers an AGENTS.md protocol 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

Choose a tag to compare

@awrshift awrshift released this 27 Aug 12:19

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 is README.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 working BACKLOG-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-audit lens 4) while
    never saying how to build one.

Changed

  • The spec is a file, not a prompt. parallel-development.md gains Level 0: the contract is
    written at projects/<name>/plans/YYYY-MM-DD-<slug>.md before any fan-out, and executor prompts
    POINT at that path. agents/executor.md now 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.
  • recon names 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:setup gains Step 1b and drops the rule that said not to create projects/ 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. Only README.md and BACKLOG.md are 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, and projects/<name>/ which is not a fifth — memory is what the agent learned, a project
    folder is what the work produced.
  • templates/workspace/BACKLOG-TEMPLATE.mdONBOARDING-BACKLOG.md. It was a five-task day-one
    tutorial being handed out as the template for real project backlogs.

Fixed

  • docs/ARCHITECTURE.md still listed memory-usage and memory-lint as operators, ten
    days after 6.1.0 removed them (2026-08-17) — the exact drift its own doc-governance.md R2
    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

Choose a tag to compare

@awrshift awrshift released this 27 Aug 12:22

[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 except qa-PROTOCOL-TEMPLATE was 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
    the reference/ directory, and each document is cited from the skill that needs it:
    close-sessiondoc-governance + decisions-log; session-revieworchestrator-fact-check,
    parallel-development, review-loop; second-opinionorchestrator-fact-check;
    system-audit lenses 2 and 3 → doc-governance, review-loop, parallel-development;
    the recon agent → 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 at rules/orchestrator-fact-check.md, a v5
    location. The file has lived in reference/ since 6.0.0.

  • close-session had no allowed-tools. Now Read, 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. An allowed-tools that 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

Choose a tag to compare

@awrshift awrshift released this 17 Aug 12:17

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 a cp step 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-usage folded 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.py and 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

Choose a tag to compare

@awrshift awrshift released this 17 Aug 12:00
bf6e29e

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:setup

The 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 empty deny — auto-approving forced pushes, hard resets and arbitrary execution via node -e. /memory-kit:setup now 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 plugin memory-usage measured the plugin's own transcripts.
  • SessionStart profiles by source: startup/clear/fork get the full payload, compact gets exactly what compaction dropped, resume gets 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

  1. 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 own CLAUDE.md.
  2. /plugin marketplace add awrshift/claude-memory-kit/plugin install memory-kit@memory-kit.
  3. /memory-kit:setup — it detects what exists and only fills gaps.
  4. Run /context and 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

Choose a tag to compare

@awrshift awrshift released this 17 Jul 12:10

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-validator agents, /session-review + /second-opinion skills, and four rules (orchestrator fact-check · parallel development + worktree isolation · doc governance · decisions log). One cp set enables it.
  • MEMORY-TEMPLATE.md + hook self-heal: session-start.py creates MEMORY.md from the template on first run.

Changed

  • MEMORY.md is 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-day skill no longer reference the retired NSP / daily/-as-default.
  • Hook fixes: periodic-save counts real human turns only; pre-compact checks all three caps; protect-tests parses JSON properly and never blocks notes.
  • lint.py wikilinks resolve against knowledge/concepts/; aggregate_usage.py handles dotted project paths; stale-refs.py cleaned of author-specific paths; settings.json no longer pre-approves rm/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.md and 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

Choose a tag to compare

@awrshift awrshift released this 09 Jul 12:24

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-session replaces /close-day as 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.md retired. "Where we left off" is now one immutable note per closed session in context/handoffs/; the start hook injects the newest one.
  • daily/ journal + /close-day moved to opt-in .kit/advanced/close-day-layer/ — one cp re-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 while wc -l stays 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.py rewritten: newest handoff + memory stats + projects/experiments overview + knowledge index; injection budget 50K → 20K chars.
  • pre-compact.sh now 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

Choose a tag to compare

@awrshift awrshift released this 27 Apr 12:39

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

Choose a tag to compare

@awrshift awrshift released this 27 Apr 12:39

Two corrections to v4.1.0 minimization.

  1. 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
  2. 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

Choose a tag to compare

@awrshift awrshift released this 27 Apr 12:39

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.