← ClaudeAtlas

hot-compactlisted

Compact an oversized `wiki-meta/hot.md` back to its cache contract (≤ 500 words / 6 KiB, compaction target ≤ 350 words / 4 KiB): verified full backup → thin state-first rewrite → traceability line in `journal.md`. Zero data loss by construction — the backup is byte-identical and kept in the vault. Invoked on demand, or when the hot-cache guard blocks a turn with "hot.md HORS LIMITE / OVER LIMIT". EN triggers: "compact the hot", "hot.md is over limit", "shrink the hot cache", "the hot cache is too big", "run hot-compact on vault X". FR triggers : "compacte le hot", "le hot est hors limite", "dégraisse le hot.md", "le cache hot est trop gros", "lance hot-compact sur le vault X". Example / Exemple: EN: "the guard says the tradingview hot is over limit — compact it" FR: "compacte le hot du vault tradingview"
tboome33/obsidian-mcp-router · ★ 1 · AI & Automation · score 74
Install: claude install-skill tboome33/obsidian-mcp-router
# hot-compact Compaction procédurale et transactionnelle du cache `wiki-meta/hot.md` d'un vault. Le hot est un **cache d'état** (« < 500 mots, écrasé à chaque mise à jour — c'est un cache, pas un journal ») ; quand il dérive en journal, ce skill le ramène au contrat **sans jamais rien perdre**. Les seuils font autorité dans `src/helpers/hot-size.mjs` (partagés avec `hot-cache-load` et le guard) : déclenchement > 500 mots OU > 6 Kio ; cible après compaction ≤ 350 mots ET ≤ 4 Kio ; override par vault via le frontmatter du hot (`hot-limit-words` / `hot-limit-bytes`, plafonnés 1000 mots / 12 Kio). ## Argument parsing from $ARGUMENTS - vide → vault courant (cwd-is-vault, lock, ou `OBSIDIAN_ROUTER_DEFAULT_VAULT`) - nom de vault → cible explicite - `--dry-run` → étapes 1-4 seulement (montrer la proposition, ne rien écrire) ## Procédure (ordre STRICT — le backup précède toujours l'écrasement) 1. **Mesurer sans polluer le contexte.** Si `get_file` sur `wiki-meta/hot.md` risque de dépasser le plafond de contexte (fichier > ~20 Kio), NE PAS le charger en entier dans la conversation : passer par un script (Node) qui importe les modules du router lui-même (`src/registry.mjs` → `loadRegistry`, `src/rest-client.mjs` → `getFileContent`) et ne remonte que taille, `contentSha256` et structure (titres, dates des entrées, N premiers blocs). **Jamais d'appel direct à l'API Local REST pour écrire, et jamais d'écriture filesystem** : une écriture qui contourne le router échappe à toutes ses g