Состав проверен 17 сентября 2026 года. Реестр определяет границу сборки сайта после разделения каталогов разработки, сборки и поставки. Целевая поставка описана в delivery-target.md.
Это инвентаризация текущей реализации, а не новая структура каталогов. «Не требуется для сборки сайта» не означает «не нужно проекту» или «удалить». Согласованные перемещения выполнены; текущее размещение и оставшиеся работы описаны в плане.
Сборка текущего сайта из контента и шаблонов на машине разработчика, без
MCP-сервера, VPS, Docker и CI. Входная команда — scripts/zensical_docs.sh.
Результат — site/; для разработки предусмотрена команда serve.
Это отличается от сборки поставляемого Docker-образа локального сайта.
Пути указаны относительно корня репозитория. Каталоги перечислены как группы входов: это список для сборки всего сайта, а не одной выбранной страницы.
| Файл или группа | Зачем нужны |
|---|---|
Отслеживаемые Git файлы docs/ |
Публикуемый контент: страницы, изображения, CSS, JavaScript и прочие статические ресурсы; 1762 существующих отслеживаемых файла на дату проверки |
zensical.toml |
Настройки сайта, навигация, тема, Markdown-расширения |
overrides/home.html |
Шаблон главной страницы |
overrides/main.html |
Общий шаблон сайта |
overrides/partials/social_meta.html |
Метаданные страниц |
data/diagnostic-sources.json, data/acc-diagnostics.json |
Каталоги диагностик для дополнения sitemap |
retrieval-rules.yml |
Правила и псевдонимы для создаваемого AI-корпуса |
LICENSES/EPL-2.0.txt |
Публикуемый текст лицензии |
LICENSES/GPL-3.0.txt |
Публикуемый текст лицензии |
LICENSES/LGPL-3.0.txt |
Публикуемый текст лицензии |
В docs/ необходимы и изображения логотипов, включая
docs/assets/images/logo-social.png: их используют настройки и генератор карточек.
Готовые статьи находятся в docs/, но два перечисленных каталога из data/
также читаются при сборке sitemap. Остальные файлы data в этот маршрут не входят.
Файл в scripts/ |
Роль |
|---|---|
zensical_docs.sh |
Запускает генераторы, Zensical и обработку результата; поддерживает build и serve |
zensical-version.sh |
Закреплённая версия Zensical: 0.0.47 |
generate_social_cards.py |
Карточки, метаданные страниц и robots.txt |
generate_ai_artifacts.py |
AI-корпус, llms-файлы и Markdown-копии страниц |
generate_search_vectors.py |
Поисковые векторы |
v8std_retrieval_rules.py |
Чтение retrieval-rules.yml и токенизация |
v8std_search_features.py |
Формирование поисковых псевдонимов |
v8std_mcp_chunks.py |
Разбиение страниц для поисковых векторов; нужен сборке, несмотря на MCP в имени |
atomic_files.py |
Запись результатов генерации |
v8std_markdown.py |
Markdown-расширение, подключённое в zensical.toml |
check_article_html.py |
Проверка HTML, обязательная внутри текущей команды build |
diagnostic_inventory.py |
Читает два каталога data для построения адресов диагностик |
publish_diagnostic_sitemap.py |
Обработка sitemap после сборки |
publish_license_texts.py |
Копирование и проверка текстов лицензий |
Это минимальный набор зависимостей существующего маршрута, выявленный по вызовам и импортам. Он сохраняет его поведение целиком. Теоретический минимум для вывода HTML без AI-файлов и карточек потребует изменения самого маршрута.
- Python 3.12+, Bash и установленные Python-зависимости сборки.
requirements-build.lock— закреплённые зависимости сборки, включая Zensical. Для отдельного окружения достаточно установки этого файла; MCP-зависимости не требуются.- Альтернативный существующий установщик:
scripts/install_zensical.sh,scripts/zensical-version.shиrequirements.txt. Он устанавливает Zensical отдельно, остальные зависимости — через requirements.txt. Это альтернативный путь установки, а не дополнительные обязательные входы установленной сборки. - Шрифт для социальных карточек: генератор ищет системные DejaVu/Arial. Воспроизводимый внешний вид требует одинаковых шрифтов; контейнер CI закрепляет DejaVu, локальная macOS-сборка может использовать Arial.
После подготовки окружения, из корня проекта:
VIRTUAL_ENV="$PWD/.venv" bash scripts/zensical_docs.sh build --strict
VIRTUAL_ENV="$PWD/.venv" bash scripts/zensical_docs.sh serve --dev-addr=127.0.0.1:8000serve запускает предварительную генерацию и наблюдение за результатом сборки.
Полнота обновления всех AI-файлов при каждом редактировании отдельно не проверена.
| Путь | Кто создаёт |
|---|---|
docs/assets/social/ |
generate_social_cards.py |
docs/robots.txt |
generate_social_cards.py |
overrides/partials/page_meta.html |
generate_social_cards.py |
docs/llms.txt, docs/llms-full.txt, docs/ai/ |
AI-генератор и генератор векторов |
.cache/site-markdown-pages.jsonl |
Кэш для переноса Markdown-страниц в результат |
.cache/ и site/ |
Кэши инструментов и собранный сайт |
.venv/, __pycache__/ |
Локальное окружение и кэш Python |
Сейчас генерация пишет часть результатов внутрь docs/ и overrides/.
Это фактическое смешение исходников и результатов, которое надо учесть при
будущем разделении каталогов. Кэши и готовый site/ не должны быть необходимы
для первой сборки из исходников.
| Группа | Назначение и дальнейшее решение |
|---|---|
tests/, dev/requirements-test.lock, benchmark/check-скрипты вне списка выше |
Проверка качества и разработка; находятся вне обязательных входов сборки |
spec/, AGENTS.md, README.md |
Внутренние описания; не нужны для генерации сайта |
dev/content/, включая dev/content/data/ |
Подготовка и обновление контента; отделены от сборки уже подготовленного контента |
| MCP-сервер, runtime, snapshot consumer, release controller, MCP-зависимости | Выполнение MCP и управление поставкой; не нужны для сборки сайта |
.github/workflows/, delivery/ci/Dockerfile, публикация и настройки VPS |
Автоматизация проверки и поставки |
delivery/site/Dockerfile, delivery/site/site.conf, delivery/site/build_local_site.py |
Упаковка локального сайта для пользователя; это часть целевой поставки |
delivery/index/generate_mcp_snapshot.py, runtime/v8std_mcp_snapshot_format.py, runtime/v8std_mcp_presentation.py |
Дополнительные зависимости упаковки индекса для локального образа сайта |
delivery/mcp/Dockerfile, delivery/local/compose.yaml |
Поставляемый MCP и совместный запуск контейнеров |
LICENSE, .gitignore, .dockerignore |
Лицензирование проекта и управление содержимым репозитория/контекста Docker; сохранять по назначению, даже если команда HTML-сборки их не читает |
- Генерация всё ещё пишет производные файлы в docs/ и overrides/. Вынос выходов сборки выполняется отдельным этапом; набор исходных входов при этом должен остаться проверяемым.
delivery/site/build_local_site.pyпринимает подготовленные AI-файлы, меняет настройки на локальный адрес и упаковывает snapshot индекса. Передача одного готового артефакта индекса на VPS и в образ сайта ещё требует отдельного изменения этого маршрута.delivery/local/compose.yamlсвязывает MCP с сайтом через depends_on и выводит MCP наружу через контейнер сайта. Самостоятельный Compose MCP ещё надо отделить от совместного режима.scripts/v8std_mcp_chunks.pyостаётся общей зависимостью создания индекса и runtime. MCP в имени не означает, что этот файл нужен только серверу.
Код уже разнесён по назначению согласно плану. Файлы вне минимума HTML-сборки сохранены для остальных результатов поставки.
При составлении реестра 16 сентября достаточность набора проверена strict-сборкой во временном каталоге только с перечисленными входами. Использовалось установленное Python-окружение рабочего checkout; установка зависимостей с нуля, Docker и интерактивный просмотр в эту проверку не входили.
17 сентября пути и состав реестра повторно сверены с текущим рабочим деревом.
После удаления внутренней инструкции контейнерной установки из docs/ число
отслеживаемых файлов контента уменьшилось на один. Прежний прогон подтверждает
проверенный тогда набор, а не готовность текущего кандидата к выпуску.
Входы из основного реестра остаются на месте. Остальные исходники распределены между runtime, delivery и dev; четыре вспомогательных data-файла находятся в dev/content/data. Старые инструменты и документы удалены после согласования атомарных правил. Docker-окружение разработки удалено; сайт разрабатывается в нативном Python-окружении. Описанные выше смешение выходов с исходниками и ограничение самостоятельного Compose MCP пока сохраняются.