Exercise a live lcm install (installed plugin, real summarizer, the user's own data) and report a scorecard. Usage: /lcm-dogfood [health|capture|import|compact|sensitive|mcp|integrity]
Resources
1Install
npx skillscat add lossless-claude/lcm/lcm-dogfood Install via the SkillsCat registry.
lcm dogfood
Proves what only a live install can: the installed plugin, the configured summarizer and the user's own memory working together. Hook output shapes, daemon-down behaviour and command options stay out of this skill; test/e2e/ exercises them against an isolated daemon.
Run every phase, or only $0. The target is the real lcm home (LCM_HOME, default ~/.lossless-claude):
- Phases that write memory (
compact,sensitive,mcp) touch only the current project, or add and then remove their own entries. A run costs one project's summarization and keeps every existing summary;--alland--restartstay out of this skill. integrityonly reads, across the whole home.lcm doctor(inhealth, andlcm_doctorinmcp) writes outside the project: it repairs lcm's own setup when it finds it drifted: the hooks and MCP entries in~/.claude/settings.json,~/.claude/lcm.md, a stale daemon. Each repair prints as a fixed warning; record it in the scorecard as a finding, since a live install that needed one had drifted.
Binary: lcm on PATH. Record each check as PASS, FAIL or SKIP (with the reason), keep going on FAIL, and open an issue for each failure worth tracking. The daemon log is logs/daemon.log in the lcm home, one JSON record per line; docs/configuration.md ("Daemon log") names its events.
Phases
health: lcm --version, lcm status, lcm doctor. Done when the version equals package.json, the daemon is up on this project, and every doctor check passes or its warning (or repair) is recorded. The daemon-log check covers errors and continuity in the daemon log.
The running daemon's log level decides what capture and compact can find. The daemon reads daemon.logLevel from config.json in the lcm home only when it starts, so when that file is newer than the last daemon.start record, run lcm daemon restart first. The level in the file is then the running one; a missing or unrecognised value means info.
debugorinfo: every log check runs.warn: mark the checks forinforecords (the/prompt-searchrequest,compact.done,compact.skipped) SKIP with that reason;summarizer.fallbackis awarnrecord and is still checked.error: mark those and thesummarizer.fallbackcheck SKIP.
capture: the plugin's hooks reaching the daemon from this session. To find this session's id, echo a unique marker (such as dogfood- plus the epoch seconds) in one command, then, in the next, search this project's directory under ~/.claude/projects/ recursively for *.jsonl files containing it. The one file that holds it is this session's transcript, and its name without .jsonl is the session id. Done when the daemon log holds a request record for POST /prompt-search with status 200, cwd equal to this project and session_id equal to this session's id.
import: lcm import --dry-run --verbose. Done when it lists this project's sessions and lcm status shows the same message count before and after.
compact: note the time and the Summaries and Promoted counts lcm status shows for this project, then lcm compact, which compacts the current project and then promotes. The summarizer is an LLM call; allow five minutes. Done when:
- a second identical run creates nothing;
- either
lcm compactprinted that there was nothing to compact (it then sends no request, so the log has no record), or the daemon log holds acompact.doneorcompact.skippedrecord for this project written after the noted time; - every
summarizer.fallbackrecord from that interval is noted in the scorecard with itsreason; lcm statusafterwards shows this project'sSummariescount higher than before when the log holds acompact.donefor this run, and unchanged otherwise;Promotedis never lower than before.lcm statstotals every project, so it cannot confirm one project's counts.
sensitive: list, add, test and remove, from lcm help sensitive. It writes the real pattern list, so remove every pattern you add. purge deletes stored memory, so this skill never runs it. Done when a built-in secret and a pattern you added are both [REDACTED] by lcm sensitive test, and your pattern is gone from lcm sensitive list.
mcp: docs/agent-tools.md is the contract. Done when every tool it lists has been called with a documented parameter set and answered in the documented shape, including an lcm_store followed by an lcm_search that finds it. Skip lcm_expand and lcm_describe only when no summary id exists yet.
integrity: node .claude/skills/lcm-dogfood/scripts/db-integrity.js, which checks every project database read-only; on a large home it takes minutes. Done when it prints N of N project databases ok.
Scorecard
One row per phase run: checks, PASS, FAIL, SKIP. For each FAIL: the error, the daemon log records around it, the suggested fix. Done when every phase you ran has a row.