Llm wiki maintain
PM knowledge base skill for Claude Code. Karpathy's LLM Wiki pattern with supersession, privacy, crystallize, and qmd hybrid search.
npx -y skills add anh-chu/llm-wiki-pm --skill llm-wiki-maintainAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Orchestrates the recurring daily-maintenance loop for the PM wiki — registry-driven multi-source sweep, ingest, daily brief, brief rotation, and a health check — with explicit interactive-vs-autonomous mode handling.
SKILL.md
5.0 KB, as published. Nobody here has run it
LLM Wiki Maintain
The recurring maintenance loop, as one defined operation. "Every day: sweep all sources → ingest what's new → produce a brief → keep the wiki tidy" was previously improvised step-by-step on faith; this skill makes the order, the brief lifecycle, and the autonomous-mode behavior explicit.
This skill orchestrates — it does not reimplement. The actual work is done
by the core llm-wiki-pm skill (orient, ingest, lint) and llm-wiki-brief
(brief generation). Route to them at each step. If a sub-skill isn't installed,
fall back to the core skill's matching operation.
Mode: interactive vs autonomous (decide first)
The skill's proactive behaviors (ambient "want me to add that?", per-step confirmations, post-task offers) assume a human is watching. In a scheduled or autonomous run nobody answers them — they stall or force a guess. So classify the run before doing anything:
- Interactive — a human invoked this in a live chat. Normal behavior: surface takeaways, ask before mass updates (10+ pages), offer follow-ups.
- Autonomous — a scheduled/cron/loop run with no human in the loop (no one
to answer a prompt). Then:
- Suppress interactive prompts. Do not ask "want me to add this?" or wait on confirmations. Act on the clear cases.
- Act-then-report, never block. Anything that would need a human decision (a risky mass update, an ambiguous create-vs-update, a possible contradiction) goes into a Needs Review queue in the brief instead of halting the run.
- Stay within safe bounds. Never delete or supersede without a human; queue those. Snapshot before any overwrite (core rule still applies).
If you can't tell which mode you're in, ask once ("interactive or autonomous run?") and proceed on the answer; default to interactive.
The loop (ordered)
① Orient. Run the core Pre-Flight + orient (SCHEMA, index, log, overview,
_status.md). Do not skip — every write still requires orient.
② Registry-driven sweep. Read the ## Sweep Registry in
$WIKI/MY-INTEGRATIONS.md and sweep every source listed, under the core
Source-completeness guard (≥2 varied queries, classify
hits/empty-after-retries/failed, bound output — concise/limit≤15/narrow
scope first). One batch sweep up front satisfies freshness-first for the whole
run (see the Freshness↔batch rule); do NOT re-sweep per page. If no registry
exists, build it from connected tools + Active Sources, confirm (interactive)
or queue for review (autonomous), and write it before sweeping.
③ Ingest findings. For each new/changed signal, route to the core ingest
flow (capture raw → thresholds → write/update → backlinks → log →
MY-INTEGRATIONS). Pages are private by default; never mark a digest
shareable. Stamp lifecycle: stub-intentional on by-design thin stubs.
④ Daily brief. Route to llm-wiki-brief (daily brief). If filing it as a
page, write briefings/YYYY-MM-DD.md with lifecycle: dated-digest (keeps
it out of the orphan count). The brief MUST include the Source Coverage
ledger (one row per registered source) and, in autonomous mode, a Needs
Review section.
⑤ Brief rotation. Keep the last 7 days in briefings/; move older briefs to
_archive/briefings/. Use git mv if the file is tracked, plain mv if not
(check first — don't let an untracked file abort the run).
⑥ Health check. Run scripts/lint.py $WIKI. Surface the tiered summary,
the export-surface (shareable) audit, and any new orphans/broken links.
Optionally lint.py $WIKI --auto-fix to backfill+sort the index (interactive:
offer it; autonomous: run it — it's non-destructive).
⑦ Report. One consolidated summary: sweep coverage ledger, pages created/updated, brief link, lint health delta, and the Needs Review queue.
Brief lifecycle convention
briefings/YYYY-MM-DD.md— current briefs,lifecycle: dated-digest._archive/briefings/— briefs older than 7 days.- Briefs are orphans by design; the
dated-digestflag keeps them out of lint's orphan count. Never link-spam pages just to de-orphan a brief.
What this skill does NOT do
Single ingests, ad-hoc queries, updates, persona/PRD/research/CRM work — route to the core skill or the matching sub-skill. This skill is the daily loop only.