project-wiki — скилл для Claude Code: что делает и как установить
Организует внутри репозитория вики по методике Карпатого: агент сам создаёт страницы, ведёт перекрёстные ссылки и проверяет целостность.
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a claude-codeЧто делает project-wiki
Скилл разворачивает вики-систему прямо в репозитории проекта по архитектуре Андрея Карпатого. База делится на три слоя: неизменяемые исходники в папке raw/, рабочие markdown-страницы агента и файл SCHEMA.md с правилами. Человек выбирает один из двух пресетов: журнал разработки (project record) или исследовательское хранилище (research vault). Это определяет состав страниц.
В начале сессии агент изучает схему и index.md. Новые данные сохраняются в raw/ с вычислением хеша sha256 для защиты от изменений. Страницы связываются через [[wikilinks]], а найденные разногласия помечаются флагом contested: true. Чекпоинты фиксируются в log.md. Без установленного python3 встроенный скрипт tools/lint.py не проверит битые ссылки и структуру перед коммитом. Готовая база публикуется через Quartz на GitHub Pages при пуше в репозиторий.
Какие задачи решает
- Зафиксировать технические решения и статус задач в структурированном журнале проекта
- Сохранить внешние источники в
raw/с контролем хеша sha256 без риска перезаписи - Собрать базу знаний по исследованию темы со сквозными ссылками
[[wikilinks]] - Проверить целостность связей, отсутствие сирот и валидность фронтметтера через линтер
Примеры запросов агенту
- Изучи документ из
raw/specs/api.md, обнови связанные страницы вики и зафиксируй правки вlog.md - Выполни чекпоинт сессии: обнови статус текущего плана, перепиши страницу синтеза и запусти линтер
- Найди в базе все страницы с меткой
contested: trueи выведи список противоречий
Как установить project-wiki
1Через Skills CLI (Vercel)
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a claude-code2Вручную: положить файлы
~/.claude/skills/project-wiki/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/project-wiki/
1Через Skills CLI (Vercel)
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a codex2Вручную: положить файлы
.agents/skills/project-wiki/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a cursor2Вручную: положить файлы
.cursor/skills/project-wiki/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install robertguss/claude-code-toolkit project-wiki2Вручную: положить файлы
.github/skills/project-wiki/SKILL.md1Через Skills CLI (Vercel)
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a gemini-cli2Командой платформы
gemini skills install https://github.com/robertguss/claude-code-toolkit --path skills/project-wikiВручную: положить файлы
.devin/skills/project-wiki/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add robertguss/claude-code-toolkit --skill project-wiki -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о project-wiki
Как установить project-wiki в Claude Code?
Выполните команду npx skills add robertguss/claude-code-toolkit --skill project-wiki -a claude-code. Также можно вручную поместить файл навыка по пути ~/.claude/skills/project-wiki/SKILL.md.
В чём разница между пресетами project record и research vault?
Пресет project record ориентирован на ведение разработки и хранит планы, историю сессий, решения и карту проекта. Режим research vault предназначен для изучения темы: он собирает выжимки источников, понятия и сравнительные таблицы.
Что проверяет встроенный линтер?
Скрипт python3 <wiki>/tools/lint.py находит битые вики-ссылки, изолированные страницы, незарегистрированные теги, ошибки во фронтметтере и файлы длиннее 200 строк.
Исходный текст
SKILL.md · MIT
--- name: project-wiki description: Build and keep a Karpathy-style LLM wiki inside a repo, as a project record or a research vault, with a schema, an index, a log, a lint, and a Quartz site on GitHub Pages. disable-model-invocation: true --- # Project wiki A wiki is a persistent, compounding record: interlinked markdown pages the agent writes and maintains and the human reads. Knowledge is compiled once and kept current, so every page already carries its cross-references, its contradictions, and its place in the whole. The pattern is Karpathy's ([`references/karpathy-llm-wiki.md`](references/karpathy-llm-wiki.md)); this skill is its shape for a repo. Three layers, all inside the repo: - **Raw sources** (`raw/`): immutable. Read, never edited. Corrections go on wiki pages. - **The wiki**: the pages. Written by the agent only. In a project run by the `lead` skill, the lead writes them and the worker never does. - **The schema** (`SCHEMA.md`): the page types, frontmatter, tag taxonomy, and conventions. The agent and the human co-evolve it; a convention changes there first, then on the pages. Two presets, chosen at init: **project record** (plans, sessions, decisions, a roadmap board, a standing synthesis, maps) for a repo being built, and **research vault** (sources, entities, concepts, comparisons, filed queries) for a topic being studied. Both share the operations below. ## Start of session Read, in order: `SCHEMA.md` whole, `index.md`, the last 20 entries of `log.md` (`grep "^## \[" log.md | tail -20` finds them). In a project record, also the synthesis page and the roadmap board. Only then touch a page. No `SCHEMA.md` in the repo means the wiki does not exist yet: follow [`references/init.md`](references/init.md). ## Operations ### Ingest A source arrives (a URL, a file, a pasted transcript, a worker's report). 1. Save it under `raw/<kind>/` with frontmatter (`source_url`, `ingested`, and `sha256` of the body), named by what it is and when. 2. Find what already exists: search `index.md` and the pages for every entity, concept, or step the source names. This is the difference between a wiki and a pile of duplicates. 3. Write or update pages by the schema's thresholds: a page when a thing appears in two sources or is central to one, an update when it is already covered, nothing for a passing mention. Every page carries frontmatter from the schema, two or more outbound `[[wikilinks]]`, and a `## Related` list. New information that contradicts a page keeps both claims with dates, marks `contested: true` and `contradictions:` on both, and names the pair for the human. 4. Update `index.md` for new pages and append one `log.md` entry naming every file touched. Done when every page the source bears on has been read and either updated or left with a reason. ### Query A question about the domain. 1. Read `index.md` to pick the pages; past a hundred pages, search the text too. 2. Read them, answer, and cite the pages. 3. File an answer worth keeping (a comparison, a synthesis, a connection) as a page of the schema's type for it; leave a lookup unfiled. 4. Append a `log.md` entry either way. ### Checkpoint The project-record preset's unit of work, run at every acceptance, every pause, and every closed topic. 1. Edit the pages the event touches: the plan's status and Result, the decision rows, the session page, the changelog, the roadmap board. 2. Bump `updated:` on each, add new pages to `index.md`, append one `log.md` entry. 3. At a pause, rewrite the synthesis page whole and the maps a landed page belongs on. 4. Run the lint and commit by path (`git commit -m <msg> -- <paths>`). Done when the lint reports no broken links, no missing index entries, and no frontmatter faults, and the log's last entry is this checkpoint. ### Lint `python3 <wiki>/tools/lint.py` from the repo root: broken wikilinks, orphans, index completeness, required frontmatter, tags outside the taxonomy, raw drift, contested or low-confidence pages, pages over 200 lines, log size. Run it at every checkpoint and at the end of every session, and record the count in `log.md`. Issues the human owns stay listed and are named as theirs. ## Publishing The wiki reads as a site with Quartz and GitHub Pages, built on every push to the default branch. Setup is one branch of init: [`references/publish.md`](references/publish.md). ## Conventions that hold in every preset - File names lowercase with hyphens; a numbered page keeps its number forever. - `created:` never changes; `updated:` is bumped on every edit. - `raw/` is immutable; the `sha256` in its frontmatter is how drift shows. - `index.md` lists every page with one line; `log.md` is append-only with the prefix `## [YYYY-MM-DD] action | subject`. - Tags come from the taxonomy in `SCHEMA.md`; add the tag there first. - Who said what stays visible: the human's words are quoted as theirs, the agent's recommendations are marked as recommendations. - Prose the human reads comfortably: short paragraphs, narrow tables, snippets under 20 lines.
© robertguss · MIT · robertguss/claude-code-toolkit