Skip to content
Back to skills

Memory Recompact

ASecurity

Recompact a whole .agents/memory/ store — rebuild the node map from project structure, merge event-shaped records into subsystem nodes, deduplicate, enforce caps, regenerate the MEMORY.md index, and fold in memory records kept anywhere else. Use when a store degrades into event logs, when indexes bloat or conflict, or when scattered records have to become one store.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
ai-agentsgonodegit

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add owlmeans/common --skill memory-recompact --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memory Recompact?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memory Recompact
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/owlmeans-memory-recompact-common/badge)](https://www.skillsdirectory.com/skills/owlmeans-memory-recompact-common)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: memory-recompact
description: Recompact a whole .agents/memory/ store — rebuild the node map from project structure, merge event-shaped records into subsystem nodes, deduplicate, enforce caps, regenerate the MEMORY.md index, and fold in memory records kept anywhere else. Use when a store degrades into event logs, when indexes bloat or conflict, or when scattered records have to become one store.
disable-model-invocation: true
metadata:
  scope: general
---
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->

# Memory recompaction

Whole-store maintenance for `.agents/memory/` (protocol: `agent-memory`), and the procedure for
folding records kept anywhere else into it. Store-wide rewrite — propose it when triggers appear;
the operator invokes it.

## When

- An index entry runs longer than one line, or the index exceeds 50 lines.
- Nodes keyed by event/date/phase/task, or bodies reading as session narratives.
- The same fact stated in two or more nodes.
- More than ~20% of a node is stale `Status` content.
- A node's `updated:` is months behind commits touching its scope.
- Memory records live outside `.agents/memory/` — a second store, a per-agent directory, a stray
  notes file → fold them in with the merge pass below.

## Build the target node map first

Before reading any record bodies, derive the node set from **project structure**: workspaces
array / top-level dirs → subsystem nodes; then the cross-cutting concerns and external
integrations actually present. Write the map down (old file/section → target node). Every
existing record must land in exactly one node — or split into atoms landing in several. Only
then process records.

## Per-record pass

For each old file or section:

1. Apply the `agent-memory` extraction rule — keep invariants, cause→effect, counter-moves,
   symptom fingerprints; drop narratives, dates, attempt logs, anything code/git already states.
2. Route each surviving atom to its node's section (Facts / Invariants / Gotchas / Pointers;
   genuinely in-flight state → `Status`, dated).
3. On conflict between records, the version consistent with **current code** wins — check the
   code, don't average.
4. Procedure-shaped survivors do not enter nodes — route them to `memory-promotion`. Routing
   means distilling them into general rules, never handing the text over verbatim.

## Folding in an outside store

1. Union every source. Two same-named files are two drifted sources of ONE node — merge both;
   the code-consistent version wins.
2. Index-only entries with no backing file: extract the fact into its node, or drop if stale.
3. `## Skills` / "Key Files" index sections are dropped — skills self-describe; harness layout belongs to `AGENTS.md`; a genuinely non-obvious dispatch hint goes into the
   owning skill's `description:`, never into `AGENTS.md`.
4. When the new store verifies (below), delete every merged source entirely.

## Regenerate the index

Rebuild `MEMORY.md` from the resulting nodes per the `agent-memory` format — never edit the old
index incrementally.

## Verify

- Every node file is listed in the index; every listed node exists; every wiki-link resolves.
- All caps met (index ≤ 50 lines; nodes ≤ 120; entries ≤ 3 lines; Status ≤ 5 dated lines).
- No dates outside `Status` and `updated:`; no event-keyed filenames.
- The root `AGENTS.md` Memory section points at `.agents/memory/`.
- `.agents/memory/` is the only memory store left: every merged source directory or file is
  deleted, and nothing in the harness still points at one.

## Report

One table: **Node** | **Sources merged** | **Lines before → after**. Follow the Reporting rule
(what, not why).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…