Индекс знаний устарел
Что это
Канонические знания хранятся в неизменяемом реестре (ledger/CURRENT и поколения),
а из них материализуются производные артефакты: страницы Markdown в knowledge/,
полнотекстовый индекс FTS5 и графы. Если производная проекция отстала от текущего
поколения, query может вернуть устаревший результат, а lint — пожаловаться на
свежесть проекции (детерминированный LINT проверяет «projection freshness»,
docs/STATUS.md).
Когда использовать
queryвозвращает данные, не соответствующие текущему поколению;lintсообщает о несвежести проекции или расхождении индекса.
Предварительные условия
Рабочий каталог проекта; возможность запускать uv run raytsystem ....
Пошагово: симптом → причина → диагностика → решение
1. Подтвердите проблему свежести (безопасно, только чтение)
uv run raytsystem lint --json
LINT ничего не переписывает в каноне; он лишь сообщает о расхождениях, включая несвежесть проекции.
2. Пересоберите производный индекс
uv run raytsystem rebuild-index --json
FTS5, граф, страницы knowledge/, index.md и hot.md разделяют один
хэш-закрытый маркер проекции и пересобираются из канона. Каждый производный
артефакт можно удалить и пересобрать — это не трогает неизменяемый реестр.
3. Проверьте результат
uv run raytsystem lint --json
uv run raytsystem query "ваш запрос" --json
LINT должен вернуть ноль находок по свежести, а query — актуальную цитату,
привязанную к текущему поколению.
Ожидаемый результат
После rebuild-index проекция снова соответствует ledger/CURRENT; query
отдаёт актуальные, привязанные к поколению факты.
Ограничения и безопасность
- Никогда не редактируйте вручную
_raw/, объекты реестра/поколения или сгенерированные страницыknowledge/(AGENTS.md). Правильный путь восстановления — пересборка из канона. rebuild-indexпересобирает только производные артефакты; канон остаётся неизменным.
Частые ошибки
- Ручная правка сгенерированных страниц вместо пересборки — она будет затёрта и нарушает инварианты.
- Гонка
ledger/CURRENTво время запроса: один принудительный rebuild/retry допустим, смешивание поколений — нет.
Когда открыть issue
Если после rebuild-index LINT продолжает сообщать о несвежести проекции или
query по-прежнему отдаёт устаревшее поколение — откройте issue с выводом
lint --json (без секретов).
Связанные страницы
Источники истины
docs/STATUS.mdconfig/raytsystem.tomlAGENTS.md