plugins/memory-palace/skills/palace-index-curator/SKILL.md
Curate the web-capture index. Use when the capture backlog grows, captures sit unprocessed at seedling/pending, or to surface stored research during work.
npx skillsauth add athola/claude-night-market palace-index-curatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The web-research hooks auto-capture every WebFetch and WebSearch into
hooks/memory-palace-index.yaml, storing each as a markdown file and an
index entry. Captures land at the defaults routing_type: pending,
maturity: seedling, importance_score: 50, and nothing advances them.
Left alone, the index becomes a write-only graveyard: the majority of
entries are never incorporated, analyzed, or surfaced.
This skill drains that backlog and keeps it drained. It wires the
capture index to the corpus tooling the plugin already ships
(decay_model, keyword_index, marginal_value) through three
commands: a read-only report, a dry-run-first promotion engine, and a
SessionStart surfacing hook.
pending.knowledge-intake.knowledge-locator.digital-garden-cultivator.uv run python scripts/memory_palace_cli.py index report
Reports total entries, the inert ratio, orphaned captures (entries whose backing file is gone), the largest topic clusters by domain, and the top promotion candidates. Writes nothing.
# Dry run: prints promote/archive proposals, writes nothing.
uv run python scripts/memory_palace_cli.py index promote
# Apply: backs up the index under data/backups/, then persists.
uv run python scripts/memory_palace_cli.py index promote --apply
Each pending entry is classified into one action:
seedling -> growing.archived rather than promoted, following the
principle that unused captures should drain, not accumulate.pending with no change.Applying is idempotent: promoted and archived entries are no longer
pending, so a second run proposes nothing new. The dry-run diff is
always shown before --apply writes.
A SessionStart hook (hooks/index_surfacer.py) names the highest-value
promoted captures at the start of a session. It is disabled by default.
Enable it in memory-palace-config.yaml:
feature_flags:
context_injection: true
The hook only speaks when promoted entries clear the importance floor, and it exits silently on any error so it can never block a session.
cache_lookup / keyword_index);
embeddings are not required at the current corpus scale. BM25 is the
workhorse up to ~5000 documents; embeddings add value only for
vocabulary-mismatch discovery.content_hash) then MinHash with k-shingling for near-duplicates
(Broder, 1997). SimHash is preferable only at tens of thousands of
documents.relevance = w1 * centrality + w2 * decay(t) + w3 * usage. The plugin ships all three terms (graph_analyzer
PageRank, decay_model, usage_tracker).index report runs and prints the inert ratio and orphan count
for the live index.index promote (no flag) prints proposals and writes nothing
(the index file is byte-identical afterward).index promote --apply creates a timestamped backup under
data/backups/ before persisting, and a re-run proposes nothing.context_injection: true, a SessionStart event surfaces the
top promoted captures; with the flag off, it stays silent.tools
Detect friction signals; graduate patterns into rules. Use for session retrospectives.
testing
Use when you need a diff-derived test plan for an MR — reads the diff, groups changes by area, runs targeted verifications, and proves revert-tests are genuine guards, not dead assertions.
testing
Probe memory/summary clarity via dual anchor questions: task progress, info gaps. Use when verifying session state or summary before handoff or compression.
testing
Runs parallel prose and craft review agents against a voice profile. Use when checking generated content for AI patterns and voice drift before publishing.