# автодобавление в wiki-news

# руководство по испоьлзованию

# Руководство пользователя: wiki-news

## Что это

Личный глобальный инструмент — публикует новости об изменениях на wiki (`wiki.sociometer.ru`, книга «История обновлений»). Установлен один раз на этой машине, работает из любого проекта, не привязан к конкретному репозиторию.

- Код: `/Users/igor/Файлы и папки/_jobs/skills/wiki-news`
- Репозиторий: `gitlab.com/MiroScopeGroup/skills`
- Доступен как скилл `/wiki-news` в любой сессии Claude Code (глобально, через `~/.claude/skills/`)

## 1. Обычный способ — попросить в чате

Из любого проекта (frontV3, APPV3 или другого) — просто:

> «Опубликуй новость про \[фичу\] в wiki»

Claude сам соберёт данные об изменениях, покажет черновик текста на согласование и опубликует после вашего «ок». Ниже — что происходит под капотом и как вызвать вручную.

## 2. Куда публикуется — определяется автоматически

Wiki устроена так: книга **«История обновлений»**, внутри неё — глава на каждый продукт, внутри главы — одна страница с новостями.

Раздел определяется по имени папки репозитория, в котором вы стоите:

<table id="bkmrk-%D0%9F%D0%B0%D0%BF%D0%BA%D0%B0-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F-%D0%A0%D0%B0"><thead><tr><th>Папка репозитория</th><th>Раздел wiki</th></tr></thead><tbody><tr><td>`frontV3`</td><td>Глава «Редактор анкет»</td></tr><tr><td>`APPV3`</td><td>Глава «Мобильное приложение»</td></tr></tbody></table>

Спрашивать раздел не нужно — если вы (или Claude) стоите внутри одного из этих проектов, `--page` можно не указывать. Список соответствий — в `wiki-news/projects.json`, список известных разделов и их id — в `wiki-news/pages.json`.

Если работаете с другим проектом, не входящим в список — нужно либо передать `--page <алиас>` явно, либо сначала добавить новый проект в конфиг (см. раздел «Новый проект» ниже).

## 3. Команды CLI (для ручного/отладочного запуска)

Все вызываются по абсолютному пути:

```
node "/Users/igor/Файлы и папки/_jobs/skills/wiki-news/src/cli.js" <команда> ...

```

### `gather` — собрать данные об изменениях

```
cd <репозиторий>   # frontV3, APPV3 или любой другой
node ".../wiki-news/src/cli.js" gather --path <путь> [--page <алиас>] [--range a..b] [--since дата]

```

<table id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%9E%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%BD-"><thead><tr><th>Параметр</th><th>Обязателен</th><th>Что делает</th></tr></thead><tbody><tr><td>`--path`</td><td>да</td><td>Директория/файл в репозитории, изменения в которой анализируем</td></tr><tr><td>`--page`</td><td>нет</td><td>Алиас раздела wiki. Если не указан — определяется автоматически по имени папки</td></tr><tr><td>`--range`</td><td>нет</td><td>Явный диапазон `<sha1>..<sha2>`</td></tr><tr><td>`--since`</td><td>нет</td><td>Дата `YYYY-MM-DD` — взять всё после неё</td></tr><tr><td>`--repo`</td><td>нет</td><td>Путь к репозиторию, если не хотите/не можете `cd` перед вызовом</td></tr></tbody></table>

Если `--range`/`--since` не переданы — команда сама определит диапазон по дате последней публикации на wiki-странице.

**Пример (из frontV3, авто-определение раздела):**

```
cd frontV3
node "/Users/igor/Файлы и папки/_jobs/skills/wiki-news/src/cli.js" gather --path src/pages/redaktor

```

Вернёт JSON: `page` (какой раздел определился), `commits`, `stat`, `matchedDocs`, текущий текст wiki-страницы. Ничего не публикует — безопасно вызывать многократно.

### `publish` — опубликовать финальный текст

```
node ".../wiki-news/src/cli.js" publish --file <путь-к-тексту> [--page <алиас>] [--repo <путь>]

```

Дописывает файл **в начало** существующей wiki-страницы (не затирает её). `--page`/`--repo` работают так же, как в `gather` — авто-определение по текущей папке, если не указаны явно.

**Пример:**

```
node "/Users/igor/Файлы и папки/_jobs/skills/wiki-news/src/cli.js" publish --file /tmp/draft.md

```

### `resolve-page` — настройка нового раздела (обычно не нужна вручную)

```
node ".../wiki-news/src/cli.js" resolve-page [--page <алиас>]

```

Нужна только при добавлении нового раздела в `pages.json` с `pageId: null`. Находит главу по `bookSlug`/`chapterSlug`, ищет в ней существующую страницу с новостями — а если такой ещё нет, **создаёт новую автоматически** через BookStack API и сохраняет её id.

## 4. Добавить новый проект/раздел

1. Добавить в `wiki-news/pages.json` новую запись: `{"bookSlug": "istoriya-obnovlenii", "chapterSlug": "<slug-главы-в-wiki>", "pageId": null}`.
2. Если у проекта есть репозиторий с понятным именем папки — добавить строку в `wiki-news/projects.json`: `"ИмяПапки": "новый-алиас"`.
3. Один раз выполнить `resolve-page --page <новый-алиас>` — создаст страницу, если её ещё нет.

## 5. Типичный ручной цикл целиком

```
cd frontV3
node "/Users/igor/Файлы и папки/_jobs/skills/wiki-news/src/cli.js" gather --path src/pages/redaktor
# → пишете черновик по правилам AI_What_News/README.md (если есть в репозитории)
node "/Users/igor/Файлы и папки/_jobs/skills/wiki-news/src/cli.js" publish --file draft.md

```