Files
Skald-Circle/commands/memory-cleanup/COMMAND.md
T
2026-07-10 15:02:09 +01:00

6.0 KiB
Raw Blame History

You have been invoked with /memory-cleanup.

Your task is to restore data/memory/ to a clean, well-structured state: repair the index, remove dead and stale references, surface orphan files, split a bloated index, and rebalance the directory tree when it has grown disorganised. You do not know the user — learn the language and conventions from the files themselves.

Scope

Structural integrity only. Your unit of work is references and paths, not the merit of each note. You are not doing a per-file content review, not writing a profile summary, and not editing note bodies. The goal is an index the user can trust and a tree that is easy to navigate.

Workflow

1. Discover conventions

Read the root data/memory/index.md and skim 12 subdirectory indexes if present. Infer and record:

  • Language — match it for all replies and for any text you write into files.
  • Header block — whatever sits at the top of an index before the link sections (e.g. _Updated: date, a profile/about line, a title). Preserve it byte-for-byte; only bump the _Updated: date at the very end.
  • Section style — how sections are headed (emoji + title? plain markdown ##?), how links are listed (bullet with a gloss?). Mirror this style in any index you create or edit.
  • Naming convention — kebab-case, snake_case, etc. Note any drift between files.
  • Subdirectory convention — do subdirectories carry their own index.md? Follow the same pattern for new ones.

2. Integrity scan

Scan every .md file under data/memory/ (not just indexes). Report findings grouped by severity. Use compact tables.

A. Dead links — every internal Markdown link (relative path resolving inside data/memory/) whose target file does not exist on disk. Output [source file] → [missing target].

B. Orphan files — every note file under data/memory/ that no .md anywhere in the tree links to. Exclude index.md files themselves and anything already under archived/.

C. Stale references — index entries whose target file signals it is no longer active: clear completion / superseded markers (, done, completed, finito, terminé, archived, superseded by, migrated to), or a last-updated date inside the file far older than the index's own _Updated:. These are candidates for moving the entry (and optionally the file) into archived/. Do not delete the file.

D. Duplicate / conflicting entries — the same file linked twice in an index, or two index entries pointing to files with overlapping purpose.

3. Structure analysis

Assess the tree shape and flag what is structurally unhealthy:

  • Index bloat — if root index.md exceeds ~150 lines or ~40 link entries, or any single section is markedly larger than the others, propose splitting that section out: move its links into the relevant subdirectory's index.md and leave a single pointer line in the root. Apply the same test recursively to subdirectory indexes.
  • Flatness — too many loose files at level-1 (rule of thumb: more than ~8) → propose grouping into themed subdirectories. Cluster by name and topic; only create a subdirectory when 3+ sibling files share a clear theme. Never create a subdirectory for a single file.
  • Imbalance — existing subdirectories containing a single file → propose folding the file back into the parent, or merging with a sibling subdirectory of the same theme.
  • Naming drift — mixed casing/separator conventions within the same level → propose a unification pass that renames files and rewrites every link pointing to them.

4. Propose a target layout

Present one concrete target: the final tree (directories + which files land where), the repaired index outline (entries added, removed, moved to a sub-index), and the full list of dead links to drop. Group every action under one of:

  • 🔧 Repair (mechanical, safe) — drop dead links, add discovered orphans to the appropriate section, fix path typos, normalise names + their inbound links.
  • 📦 Archive — move stale-reference entries into archived/index.md with a dated one-line reason; optionally move the file under archived/ too.
  • ♻️ Restructure — split a bloated index, create or merge subdirectories, relocate files between levels.
  • Confirm — anything genuinely ambiguous (an orphan that may be intentionally unlinked; a rename of a well-known path; a file whose staleness is uncertain).

Wait for explicit user approval of the plan before touching anything. items always require a per-item answer; 🔧/📦/♻️ can be approved wholesale ("yes, do all repairs").

5. Execute

Apply the approved plan in this order to keep paths consistent at every step:

  1. Moves and renames first — relocate files into their target directories; rename for convention consistency.
  2. Rewrite link targets across every .md that pointed at a moved/renamed file, so no new dead links are introduced.
  3. Create/rewrite subdirectory index.md files for any new or restructured subdirectory, in the user's detected section style.
  4. Rewrite root index.md: drop dead links, fold split-out sections into single pointer lines, add pointers to any new subdirectory indexes, and add one pointer to archived/index.md if it was created.
  5. Append dated entries to data/memory/archived/index.md (create the directory and file if missing) for every archived file, with a one-line reason.
  6. Bump _Updated: to today's date in every index you touched.

Rules

  • Never delete a file without explicit confirmation. Prefer archiving.
  • Never edit note bodies — you move files and rewrite indexes/links only.
  • Preserve the header block of each index unchanged (only the _Updated: date moves).
  • Reply in the user's detected language, not English, unless the user writes to you in English.
  • Trust the user's conventions over imposing your own; propose unification only where drift is actually causing broken links or confusion.
  • Be concise — compact tables and lists, no narration of individual tool calls.