fix(using-wiki): v2.1.0 — оп-лог автоматический (таблица logs, ратификация 2026-08-24), log-страница и ручной каталог убраны; каталог = entity_search (#983)

This commit is contained in:
2026-08-24 17:48:01 +03:00
parent c53ed66ba5
commit 46724e2c88
2 changed files with 35 additions and 27 deletions

BIN
dist/using-wiki.skill vendored

Binary file not shown.

View File

@@ -1,7 +1,7 @@
---
name: using-wiki
author: ours
version: 2.0.0
version: 2.1.0
description: >
Policy skill for working with the project wiki in Mappa (Karpathy LLM Wiki
pattern, channel = mappa-сущности, решения 14/15 спеки mappa). Use when the
@@ -36,7 +36,9 @@ Body = frontmatter + markdown как есть (content-модель сохран
Файловый `.wiki/` в репозиториях — легаси: источник истины — сервис.
Если вики проекта пуста (нет сущностей) — **ничего настраивать не надо**
(setup-wiki умер): первый ingest сам создаёт `CLAUDE`, `index`, `log` (см. Ingest).
(setup-wiki умер): первый ingest сам создаёт `CLAUDE` (+ опционально `index`);
оп-лог вести не нужно — сервис пишет его в таблицу `logs` автоматически
(решение 12, ратификация 2026-08-24).
## MCP-поверхность
@@ -76,7 +78,8 @@ Body = frontmatter + markdown как есть (content-модель сохран
3. Только потом действуй.
Если `CLAUDE` нет — вики либо новая, либо неухоженная: не импровизируй
структуру, создай `CLAUDE`/`index`/`log` при первом ingest (см. ниже).
структуру, создай `CLAUDE` при первом ingest (см. ниже). Каталог — через
`entity_search` (решение 1); `index`-страница опциональна (для ориентации).
## Три операции
@@ -91,9 +94,14 @@ Body = frontmatter + markdown как есть (content-модель сохран
помечай явно** блоком `> **Противоречие:** источник A говорит X, источник B — Y`.
Не затирай молча.
- нет → создай (`wiki_create`).
5. Обнови `index` (каталог: одна строка на страницу).
6. Допиши одну строку в `log` (формат ниже).
7. Отчитайся пользователю: что создано, что обновлено, какие противоречия.
5. Обнови `index` (каталог: одна строка на страницу) — опционально; каталог
по умолчанию — `entity_search` (решение 1).
6. Отчитайся пользователю: что создано, что обновлено, какие противоречия.
**Оп-лог — автоматический.** Каждая write-операция уже пишется сервисом в
таблицу `logs` (component=тип сущности, message=slug+operation; смотреть —
`mcp__mappa__admin_logs`). Ручную `log`-страницу НЕ веди — это дубль,
аудит-след живёт в сервисе (решение 12, ратификация 2026-08-24).
**Один ingest может затронуть 1015 страниц. Это нормально — для того LLM и нужны.**
@@ -109,7 +117,8 @@ Body = frontmatter + markdown как есть (content-модель сохран
3. **Компаундируй вики.** Если ответ — реальный синтез (сравнение, анализ,
новая связь) — спроси пользователя: «Сохранить как страницу wiki?» Хорошие
вопросы становятся страницами в `concepts/`.
4. Допиши строку в `log`.
Оп-лог в query — автоматический (logs-таблица); строку вручную не дописывай.
### Lint — «проверь вики»
@@ -123,7 +132,7 @@ Body = frontmatter + markdown как есть (content-модель сохран
- **Пустые/TODO-секции.**
Отчёт — панч-лист. Ничего не удаляй автоматически.
Допиши строку в `log` с итогом.
Оп-лог в lint — автоматический (logs-таблица); строку вручную не дописывай.
## Форматы страниц (ОБЯЗАТЕЛЬНО)
@@ -150,30 +159,28 @@ updated: 2026-08-24
- `entities/<name>`, `concepts/<name>`, `packages/<name>`, `sources/<slug>`,
`contradictions/<slug>`, `open-questions/<slug>`.
### `log` — append-only, grep-parseable
### Оп-лог — таблица `logs`, не страница
Каждая запись **обязана** начинаться с:
File-based `log.md` мёртв (решение 12/15, ратификация 2026-08-24). Сервис пишет
оп-лог сам при каждой write-операции: `mcp__mappa__admin_logs` (фильтры
level/since/component/entity, retention 14d). Ручную `log`-страницу не заводи,
не дописывай, не парси.
```
## [YYYY-MM-DD] <operation> | <short description>
```
### `index` — каталог через поиск
Операции: `ingest`, `query`, `lint`, `refactor`, `decision`, `init`.
Парсится: `entity_search(q="## [", type="wiki", project=…)` по сущности `log`.
### `index`
Каталог, не нарратив. Одна строка на страницу: `- [Title](concepts/foo.md) — hook.`
Секции по типам. Обновляется на каждом ingest.
Каталог = `entity_search(q, type='wiki', project)` (решение 1). `index`-страница
— опциональная опора для ориентации: одна строка на страницу
`- [Title](concepts/foo.md) — hook.`, секции по типам. Обновляй только если
страница уже существует; не плоди каталог-дубли.
## Quick reference
| Ситуация | Что трогаем |
|---|---|
| Ingest одного документа | `sources/<slug>` (новая) + 315 entities/concepts/packages + `index` + `log` |
| Query | (чтение) + возможно новая страница + `log` |
| Lint | (чтение) + `log` |
| Новая вики проекта | первый ingest создаёт `CLAUDE`/`index`/`log` + контент |
| Ingest одного документа | `sources/<slug>` (новая) + 315 entities/concepts/packages (+ опционально `index`) |
| Query | (чтение) + возможно новая страница |
| Lint | (чтение) |
| Новая вики проекта | первый ingest создаёт `CLAUDE` (+ опционально `index`); оп-лог — автоматический |
## Частые ошибки
@@ -181,10 +188,11 @@ updated: 2026-08-24
- **Дамп сырья в `sources/`.** Резюме — это резюме. Ссылайся на raw, не копируй.
- **Молчаливые перезаписи.** Новый источник противоречит странице — пометь
блоком `> **Противоречие:**`; не затирай.
- **Нарративный `log`.** «Сегодня я добавил…» — неверно. Формат:
`## [YYYY-MM-DD] ingest | <что>`.
- **Нарративный оп-лог.** Не веди его руками: сервис пишет logs сам (admin.logs).
«Сегодня я добавил…» — даже вручную писать не надо.
- **Не-ASCII слаги.** Ломают grep и кросс-платформенность. Транслитерируй.
- **Забытый `index`.** Страницы без записи в каталоге невидимы для будущих query.
- **Забытый `index`.** Страницы без записи в каталоге невидимы для будущих query
(если index-страница ведётся; дефолтный каталог — entity_search).
- **Пропущенные противоречия в lint.** Ценность вики — в вскрытых напряжениях,
а не в ложном консенсусе.
- **Запись без лиза.** Wiki-мутации без `claim_token` → 422 busy; не пытайся