Copies 8 standalone skills (active-platform, caveman, project-discipline, pulling-before-work, setup-tasks, setup-wiki, using-tasks, using-wiki) from ~/projects/claude-skills/skills/ and all 14 superpowers sub-skills from the installed plugin cache into factory/skills/superpowers/. Adds skills install step to bootstrap.ps1: copies all factory/skills/ directories to ~/.claude/skills/ so users get the skill set automatically without manual plugin install for the baseline set. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.3 KiB
using-wiki
Runtime policy for an LLM Wiki built on the Karpathy LLM Wiki pattern. Knowledge is compiled once and kept current across three layers, via three named operations, with strict file formats that keep the wiki parseable and grep-friendly.
using-wiki governs usage of an existing .wiki/. Initial creation and
migration to canon are owned by setup-wiki.
Renamed from
wiki-maintainerat v1.0.0.
When it triggers
- User says: "use project wiki", "query the wiki", "ingest this", or the Russian equivalents ("обнови вики", "проверь вики", "запроси вики", "заингесть").
- Any time the agent modifies a file under
.wiki/— the workflow and formats below are mandatory. - If
.wiki/is missing or non-canonical, this skill delegates tosetup-wikibefore doing anything else.
Three layers (do not blur)
- Raw sources —
.wiki/raw/(or external paths registered inraw/README.md). Immutable. Read, never edit. The only exception is appending a> Statusblockquote when the user explicitly asks for a status audit. - Wiki — everything else under
.wiki/. Agent-owned. Entity / concept / package / source summary pages. - Schema —
.wiki/CLAUDE.md. Project-specific conventions (what entities, what packages, naming). Always read it first; it overrides this skill on conflict.
Three operations
Ingest
«заингесть X» — pull a raw source into the wiki.
- Read the raw source fully.
- Extract: entities, concepts, packages, cross-cutting patterns.
- Create
sources/<slug>.md(one summary page per source, ~50–150 lines). - For each affected entity / concept / package page: update if exists,
create if not. Flag contradictions explicitly with
> **Противоречие:** источник A говорит X, источник B — Y. Never silently overwrite. - Update
index.md. - Append one line to
log.md. - Report: what was created, updated, contradicted.
One ingest may touch 10–15 pages. That's normal — that's why an LLM does it.
Query
A question answered from the wiki.
- Read
index.mdfirst, drill into relevant pages. - Answer with citations as markdown links.
- Compound the wiki. If the answer is a real synthesis, ask the user:
"Сохранить как страницу wiki?" Good queries become durable pages under
concepts/oranalyses/. - Append one line to
log.md.
Lint
«проверь wiki» — health check.
Scan for:
- Contradictions between pages.
- Orphans (pages with no inbound links).
- Stale claims (raw source updated after the summary's
ingested:date — check viagit log -p). - Concepts mentioned in prose but missing their own page.
- Empty / TODO sections.
Report as a punch list. Don't delete anything automatically. Append one
line to log.md with the findings.
File formats (mandatory)
Page frontmatter
---
title: Человекочитаемое имя
type: entity | concept | package | source | contradiction | open-question | overview
tags: [short, tokens]
sources: [../sources/foo.md, ../sources/bar.md]
updated: 2026-04-21
---
Source pages also carry ingested: YYYY-MM-DD and raw_path: ../raw/....
Contradiction pages also carry status: open | resolved | accepted-divergence and affects: [../entities/x.md, ../concepts/y.md].
Open-question pages also carry status: open | answered | obsolete and touches: [../entities/x.md, ../sources/z.md].
File naming
kebab-case.md, Latin only. Transliterate Cyrillic / non-Latin in filenames; keep the original title in H1 + frontmatter.entities/<name>.md,concepts/<name>.md,packages/<name>.md(no@org/prefix),sources/<slug>.md,contradictions/<slug>.md,open-questions/<slug>.md.
log.md — append-only, grep-parseable
Every entry must start with:
## [YYYY-MM-DD] <operation> | <short description>
Operations: ingest, query, lint, refactor, decision, init.
Parse with: grep "^## \[" .wiki/log.md | tail -20.
index.md
Catalog, not narrative. One line per page: - [Title](path) — hook.
Sections by type. Update on every ingest.
Cross-references
- Wiki → wiki: relative markdown links —
[Name](../entities/x.md). - Wiki → code: relative path from repo root —
[foo.js](../../packages/api/foo.js). - Wiki → raw:
../raw/<file>. - URL-encode spaces (
%20) and Cyrillic when needed.
Quick reference
| Situation | Files touched |
|---|---|
| Ingest one doc | sources/<slug>.md (new) + 3–15 entity/concept/package pages + index.md + log.md |
| Query | (read only) + optionally a new wiki page + log.md |
| Lint | (read only) + log.md |
| Bootstrap / migrate | (delegated to setup-wiki) |
Common mistakes
- Editing
raw/. Don't. Only allowed change: status blockquote on explicit request. - Dumping raw content into
sources/. Summaries are summaries. Link to raw, don't copy. - Silent overwrites on contradictions. Flag them with a
> **Противоречие:**block. - Narrative
log.md. "Today I added…" is wrong. Use## [YYYY-MM-DD] ingest | <what>. - Non-ASCII filenames. Breaks greppability and cross-platform. Transliterate.
- Forgetting
index.md. Pages not listed there are invisible to future queries. - Improvising layout when canon files are missing. Hand off to
setup-wikiinstead of patching ad-hoc.
When NOT to use
- The project has CLAUDE.md / AGENTS.md docs but no
.wiki/— that's regular documentation, not an LLM Wiki. - The user wants a single-file README or ADR — this skill is for persistent, interlinked knowledge bases.
- One-off questions about code — read files directly, no wiki workflow needed.
Install
From the repo root:
bash scripts/install.sh using-wiki
Works on Windows under git-bash, Linux, macOS.
See also
setup-wiki— companion, owns.wiki/creation and canon migration.project-bootstrap— invokessetup-wikifor new projects.- Karpathy's LLM Wiki gist: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f