kg-maintainlisted
Install: claude install-skill mironmax/claudecode-plugins
# The Maintenance Pass
One graph per pass, hard-bounded, checkpointed through `kg_progress` so a cut
session loses nothing. The DEBT line is both the trigger and the scoreboard:
DEBT: HIGH (0.72) — 14 oversized gist(s), 7 unconnected, never maintained, active 4/7d
## 0 — Orient
`kg_read(session_id)` (dispatched subagent with no preload: `kg_read(cwd)`
first — the result carries your session_id). Read both DEBT lines; target the
higher-debt level unless the dispatch said otherwise. Announce:
"Maintenance pass: <level> graph, debt <score> — <factors>."
## 1 — Resume
`kg_progress(session_id, task_id="maintain", level=<target>)` → prior state.
If a previous pass left a cursor, continue where it stopped.
## 2 — Work the list (bounded per pass)
Work in this order — each category caps, so a pass ends instead of sprawling:
1. **Entity consolidation — exactly ONE smeared term** (only when the DEBT
line lists any, as `term×count→hub`). Smearing is many nodes re-describing
one entity in prose instead of edging to its owner — it is what makes
project-central vocabulary useless to search. Confirm the named hub (or
anoint a better undated node), move the durable entity facts satellites
carry into the hub, then rewrite the worst satellites' gists to their own
delta only and edge them to the hub. This is the biggest lever and may
take half the pass — let the later caps shrink accordingly.
2. **Oversized gists — up to 8, longest first.** Rewrite the gist as h