| name | linter |
| description | Виконання лінтингу (Lint Workflow) та перевірки цілісності персональної бази знань LLM Wiki. Перевіряє узгодженість покажчика (індексу), внутрішні посилання, посилання на джерела, знаходить неопрацьовані джерела в raw та виявляє евристичні проблеми (логічні суперечності, сторінки-сироти). Запускайте цей скіл, коли користувач просить зробити лінтинг, перевірку (lint, check, audit) вікі. |
| metadata | {"version":"0.1.0","repository":"https://github.com/BogdanovychA/llm-wiki"} |
Скіл лінтингу вікі (Wiki Linter Skill)
Цей скіл призначений для перевірки цілісності та автоматичного виправлення детермінованих проблем у персональній базі знань LLM Wiki.
Робочий процес лінтингу (Lint Workflow)
Запускайте цю перевірку за запитом. Перевірки діляться на два типи:
1. Детерміновані перевірки (Автовиправлення)
Ці проблеми виправляйте автоматично:
-
Узгодженість індексу: Порівняйте файли у підкаталогах wiki/concepts/, wiki/entities/ та wiki/archives/ із записами в wiki/index.md:
- Сторінка існує, але її немає в індексі $\rightarrow$ додайте її у відповідну таблицю покажчика з тимчасовим описом
(немає опису) та датою updated з файлу.
- Запис в індексі посилається на відсутній файл $\rightarrow$ додайте помітку
[MISSING] біля посилання в індексі. Не видаляйте запис без дозволу користувача. Якщо файл знову з'явився (або помітка [MISSING] була додана помилково) $\rightarrow$ автоматично видаліть помітку [MISSING] біля посилання в індексі.
-
Внутрішні посилання: Для кожного посилання на іншу сторінку вікі:
- Перевірте, чи є шлях правильним відносно поточної сторінки (наприклад,
../entities/some-entity.md зі статті в concepts/).
- Якщо цільовий файл не існує $\rightarrow$ пошукайте файл із такою ж назвою в інших підкаталогах
wiki/ (concepts/, entities/, archives/). Якщо знайдено рівно один збіг $\rightarrow$ виправте шлях. Якщо нуль або більше ніж один (декілька) $\rightarrow$ додайте до звіту для користувача.
-
Посилання на джерела та медіа: Кожен відносний шлях у полі sources (для концепцій/сутностей) чи полі wiki (для архівних сторінок), а також кожне Markdown-посилання (включаючи посилання на медіафайли) у тілі файлів має вести на наявний файл за правильним відносним шляхом (наприклад, посилання на джерело в raw/ зі сторінки в concepts/ має бути ../../raw/YYYY-MM-DD/source.md, а посилання на концепцію зі сторінки архіву — ../concepts/concept-name.md).
Ця перевірка поширюється на сторінки в wiki/. Оскільки файл wiki/log.md є append-only, биті посилання в ньому не виправляються автоматично, а лише виводяться у звіті як помилки (типу broken_log_media, broken_log_source чи broken_log_link) для ручного контролю. Крім того, перевіряються також текстові документи в raw/ (файли .md поза каталогом raw/assets/) на наявність битих посилань (наприклад, на медіафайли чи інші джерела). Оскільки файли в raw/ після завершення імпорту стають архівними й незмінними, биті посилання в них не виправляються автоматично, а лише виводяться у звіті як помилки (наприклад, типу broken_raw_media чи broken_raw_source) для ручного виправлення головним агентом на етапі перевірки результатів імпорту.
Також перевіряйте, чи всі текстові джерела в raw/ (не враховуючи медіафайли та інші ресурси в каталозі raw/assets/) опрацьовані (тобто чи є на них посилання хоча б з однієї сторінки вікі — концепції, сутності або архіву). Посилання з файлу wiki/log.md при цьому не враховуються як опрацювання джерел чи зв'язування сторінок (сторінки чи джерела, на які посилається тільки лог, усе одно вважаються сиротами/неопрацьованими):
- Якщо посилання на джерело веде на відсутній файл $\rightarrow$ знайдіть файл із такою ж назвою в
raw/. Якщо знайдено рівно один збіг $\rightarrow$ виправте відносний шлях, інакше $\rightarrow$ додайте до звіту.
- Якщо знайдено текстовий файл у
raw/YYYY-MM-DD/, на який немає посилань з жодної сторінки вікі $\rightarrow$ повідомте користувача про неопрацьоване джерело.
2. Евристичні перевірки (Тільки звіт)
Ці перевірки базуються на аналізі вмісту. Лише повідомляйте про них користувачеві:
- Логічні та фактологічні суперечності між різними сторінками.
- Застарілі твердження, які спростовуються новішими джерелами.
- Відсутність анотацій конфліктів у місцях, де джерела суперечать одне одному.
- Сторінки-сироти (на які немає жодного посилання з інших сторінок вікі).
- Концепції або сутності, які часто згадуються в тексті, але не мають власної сторінки.
- Архівні сторінки відповідей, чиї першоджерела були суттєво оновлені з моменту архівації.
3. Звіт та завершення
- Складіть звіт для користувача з усіма знайденими та автовиправленими проблемами.
- Запишіть результати перевірки у
wiki/log.md, використовуючи такий формат. Увага: опційні рядки (що починаються з дефіса -) слід додавати тільки тоді, коли відповідна дія дійсно відбулася або була виявлена проблема. Якщо помилок не виявлено (N=0, M=0) і ніяких змін чи позначень не робилося, у лог записується тільки заголовок другого рівня (##), а опційні рядки взагалі не створюються (не пишіть рядки-заглушки на кшталт «помилок не виявлено», «немає» тощо):
## [YYYY-MM-DD] lint | Перевірка стану: знайдено помилок: <N> (автовиправлено: <M>)
- Виправлено: <опис виправлених проблем> (додавати тільки якщо M > 0)
- Виявлено (невиправлено): <опис невиправлених помилок, які потребують ручного втручання> (додавати тільки якщо N > M)
- Позначено: <опис виявлених евристичних проблем/суперечностей> (додавати тільки якщо виявлено такі проблеми)
- Оновлено: [index.md](index.md) (додавати тільки якщо файл index.md оновлювався)
Допоміжний скрипт лінтера (Helper Linter Script)
Для автоматизації детермінованих перевірок використовуйте Python-скрипт lint.py.
Скрипт аналізує базу даних вікі, перевіряє цілісність покажчика index.md, знаходить зламані посилання (внутрішні та на вихідні джерела), дублікати посилань у розділах «Джерела та посилання», виявляє сирітські сторінки та вихідні матеріали, на які немає посилань, і повертає результати у форматі JSON.