| name | lint |
| description | Навичка перевірки цілісності бази даних, виявлення та виправлення технічних помилок у покажчиках та звітах, а також повідомлення про логічні прогалини. |
| metadata | {"version":"0.1.0","repository":"https://github.com/BogdanovychA/mental-health"} |
Навичка: Перевірка бази даних (Lint)
Ця навичка використовується для автоматизованої перевірки цілісності, консистентності та логічної коректності всієї бази даних ментального здоров'я користувача за допомогою вбудованого Python-скрипту, автоматичного виправлення технічних помилок та фіксації результатів у журналі.
Робочий процес
Коли користувач або розклад ініціює перевірку бази даних, Агент виконує наступні кроки:
Крок 1. Запуск перевірки бази даних
Агент запускає Python-скрипт перевірки без параметрів для виявлення всіх технічних помилок та логічних прогалин: .agents/skills/lint/scripts/lint.py
Скрипт виконує такі перевірки:
- Цілісність файлової структури:
- Пошук битих посилань у покажчику
data/index.md (посилання є, але файлу немає на диску).
- Пошук файлів-одинаків (файл є в папці
data/raw/ чи data/reports/, але на нього немає посилань в data/index.md).
- Логічна валідація балів:
- Перевірка відповідності балансу балів у покажчику фактичним сумам балів у файлах raw та звітів.
- Валідація правильної суми добових балів усередині самих raw-файлів та звітів.
- Аналіз прогалин та неврахованих джерел:
- Пошук прогалин між періодами звітів (тижні, за які немає звітів).
- Виявлення raw-файлів за минулі періоди, які не потрапили у відповідні звіти.
Крок 2. Автоматичне виправлення технічних помилок та ручний пошук Агента
-
Автоматичне виправлення: Якщо скрипт виявив помилки, які можна виправити автоматично (файли-одинаки, розбіжності балів в індексі, биті посилання, які мають схожі файли на диску), Агент запускає скрипт із прапорцем --fix: .agents/skills/lint/scripts/lint.py --fix
- Увага: Скрипт автоматично додасть файли-одинаки до покажчика та виправить бали відповідно до фактичного вмісту файлів.
- Блокування видалення: Якщо файл посилання не існує на диску і його неможливо знайти (файл втрачено), скрипт не буде видаляти рядок з покажчика. Видаляти записи або посилання з покажчика без явного підтвердження користувача ЗАБОРОНЕНО.
-
Ручне розслідування Агентом: Якщо після роботи скрипту з --fix у звіті все ще залишаються невирішені технічні помилки (наприклад, биті посилання з серйозними помилками друку типу 03-inox-1.md), Агент зобов'язаний спробувати знайти правильний файл самостійно:
- Перевірити дату джерела, вказану в покажчику
data/index.md.
- Просканувати відповідну директорію на диску (наприклад,
data/raw/YYYY/MM/) на наявність файлів за цю дату або з подібними назвами.
- Якщо Агент самостійно виявив правильний файл (наприклад,
03-inbox-1.md замість помилкового 03-inox-1.md), він повинен вручну відредагувати покажчик data/index.md та прописати правильний шлях.
- Після ручного виправлення обов'язково перезапустити перевірку скриптом без параметрів для перевірки.
- Тільки якщо файл дійсно неможливо знайти або ідентифікувати, Агент залишає цю помилку невирішеною для користувача.
Крок 3. Запис результатів у журнал активності
Після виконання перевірки та виправлень Агент копіює звіт, згенерований скриптом, та дописує його в кінець журналу data/log.md за наступною структурою:
## YYYY-MM-DD lint | Перевірка бази даних: виявлено проблеми / виконано виправлення
- Оновлено: [index](index.md), [log](log.md)
### Звіт про результати перевірки (Lint Report)
- **Технічні виправлення (виконано)**:
- [Список виправлень з виводу скрипту, наприклад: "Додано файл-одинак raw/2026/07/15-inbox-1.md до індексу"]
- Якщо виправлень не було: "Технічних помилок для виправлення не знайдено"
- **Технічні помилки (невирішені, потребують ручної дії)**:
- [Список невирішених помилок, наприклад: "Битe посилання на raw джерело: raw/2025/12/22-inbox-1.md (файл не знайдено)"]
- Якщо невирішених помилок немає: "Невирішених технічних помилок не виявлено"
- **Логічні прогалини та зауваження (потрібна дія користувача)**:
- [Опис прогалин з виводу скрипту, наприклад: "Прогалина в даних: період 2026-01-12 — 2026-06-28 не містить ні raw файлів, ні звітів"]
- Якщо прогалин не було: "Логічних прогалин не виявлено"
Де YYYY-MM-DD у заголовку — поточна дата виконання перевірки.
Крок 4. Повідомлення користувача
Агент повідомляє користувача про завершення перевірки, надає список автоматично виконаних виправлень та окремо виводить невирішені технічні помилки (якщо є) або логічні прогалини, які вимагають його уваги чи ручного втручання.