# Portability: SYSTEM
# Last validated: 2026-05-17
# Next review: 2027-05-17
# Ресурсы: [data/schema_distribution.sql,hub/dist.py,hub/sync.py,db/schema.sql]

СИСТЕМА РАСПРЕДЕЛЕНИЯ
===================

По состоянию на 08.02.2026

Система распространения отделяет ядро системы от пользовательских данных и шаблонов выпуска.

4-УРОВНЕВАЯ МОДЕЛЬ (dist_type):
  dist_type = 0 ЯДРО Абсолютно неизменяемый (базовая система)
  dist_type = 1 системный файл CORE (только для чтения/резервная копия распространения)
  dist_type = 2 шаблона выпуска РАСШИРЕНИЯ (1x снимок для сброса)
  dist_type = 3 USER_DATA Отдельные пользовательские данные (нет в репозитории)

КОМАНДЫ CLI
-----------
  bach --dist status              Состояние системы (печать, режим, файлы)
  bach --dist verify              Проверить целостность печати
  bach --dist scan                Сканировать и зарегистрировать файлы
  bach --dist snapshot NAME       Создать снимок
  bach --dist release NAME        Создать релиз
  bach --dist restore ZIP         Восстановить из дистрибутива ZIP
  bach --dist install ZIP ZIEL    Установить дистрибутив в новую папку
  bach --dist list [snapshots]    Список снимков

РАБОЧЕЕ ПРОЦЕСС ВЫПУСКА
----------------
  1. Создайте снимок: `bach --dist snapshot "pre-release"`
  2. Создайте выпуск: `bach --dist Release "v1.2.0"`
  3. ZIP дистрибутива создается в dist/
  4. Сброс: `bach fs heel --all` восстанавливает файлы из снимков.
  5. Восстановление: `bach --dist restre bach_vanilla_1.2.0.zip`

ИНТЕГРАЦИЯ БАЗ ДАННЫХ И ФАЙЛОВОЙ СИСТЕМЫ
----------------------------------
  — Навыки и инструменты синхронизируются в двух направлениях («bach --synckills»).
  - Столбцы `dist_type` можно найти примерно в 60 таблицах (см. db/schema.sql).
  — Манифест файла в таблице `distribution_manifest`.
  - OneDrive/Git обеспечивает безопасность распространения, BACH обеспечивает целостность.

ПРИМЕЧАНИЕ О БАЗЕ ДАННЫХ
---------------------
Существует только один центральный `data/bach.db` (начиная с версии 2.0 в system/db/schema.sql).
Многие таблицы используют dist_type для логического разделения:
  - dist_type=0: данные ядра (абсолютно неизменяемые)
  - dist_type=1: основные данные (критичные для системы)
  - dist_type=2: данные расширения (сбрасываемые)
  - dist_type=3: Пользовательские данные (нет в программе установки)

СМОТРИ ТАКЖЕ
----------
  bach --sync help         Синхронизация навыков и инструментов
  bach fs help             Операции с файловой системой (исправление, проверка)
  docs/help/guidelines.txt Стандарты документации
  system/db/schema.sql Полная схема БД (более 210 таблиц)
