consolidate-memory scans for four problem types (SKILL.md:13,15,31): duplicates, stale entries,
unindexed orphans, and index orphans. None of them looks at [[wikilinks]] between memory files.
On a recent run the skill did exactly what it was asked: split an oversized memory file into two and
deleted the original. Two sibling files still carried [[original-name]] links, which were now
dangling. Nothing flagged it — the index was clean, so all four scans passed. It was found only by
grepping for the deleted name afterwards, by hand.
Splitting and deleting are the skill's own primary operations, so it is uniquely positioned to break
these links and uniquely unable to notice.
Ask:
- Add a fifth scan: for every
[[target]] across the memory directory, assert a file with that
name: exists. Run it as a post-operation check after any split, rename or delete, not only as a
standalone scan.
- On a split, rewrite inbound links to point at whichever half now carries the content, or at
minimum list them for the operator to resolve.
Secondary, same run: an edit target that is a symlink is refused outright by the harness's Edit
tool ("Refusing to write ... it is a symbolic link"). Since promotion targets are routinely symlinked
config files, the skill should resolve the link and edit the real path.
consolidate-memoryscans for four problem types (SKILL.md:13,15,31): duplicates, stale entries,unindexed orphans, and index orphans. None of them looks at
[[wikilinks]]between memory files.On a recent run the skill did exactly what it was asked: split an oversized memory file into two and
deleted the original. Two sibling files still carried
[[original-name]]links, which were nowdangling. Nothing flagged it — the index was clean, so all four scans passed. It was found only by
grepping for the deleted name afterwards, by hand.
Splitting and deleting are the skill's own primary operations, so it is uniquely positioned to break
these links and uniquely unable to notice.
Ask:
[[target]]across the memory directory, assert a file with thatname:exists. Run it as a post-operation check after any split, rename or delete, not only as astandalone scan.
minimum list them for the operator to resolve.
Secondary, same run: an edit target that is a symlink is refused outright by the harness's Edit
tool ("Refusing to write ... it is a symbolic link"). Since promotion targets are routinely symlinked
config files, the skill should resolve the link and edit the real path.