ПОЛИТИКА — Стандарты многоразового кода
------------------------------------------

По состоянию на 23 января 2026 г.
Путь: docs/help/tools/policies.txt

ОПИСАНИЕ
------------
Политики представляют собой повторно используемые фрагменты кода стандартов BACH.
обеспечить соблюдение. Они участвуют в новых проектах и обеспечивают
последовательное обращение с:
  - Кодировка (UTF-8, консоль Windows)
  - JSON (безопасный для эмодзи, резервная кодировка)
  - Имена файлов (соглашение о префиксах)

РАСПОЛОЖЕНИЕ
-----------
  инструменты/_policies/
    кодирование_header.py UTF-8 и исправление консоли
    emoji_safe.py Преобразование эмодзи
    json_safe.py Безопасные операции JSON
    CONCEPT_naming_convention.md Соглашение об именах (Концепция)

ДОСТУПНЫЕ ПОЛИТИКИ
--------------------

1. coding_header (v1.0)
-------------------------
Заголовок кодировки UTF-8 и исправление консоли Windows.
Внедряется в начало файла.

ВНЕСЕН:
  - Шебанг: #!/usr/bin/env python3
  - Кодировка: # -*- кодировка: utf-8 --*-
  — Исправление кодировки консоли Windows

ТИПИЧНЫЙ КОД:
  #!/usr/bin/env python3
  # -*- кодировка: utf-8 --*-

  импортировать систему
  если sys.platform == 'win32':
      sys.stdout.reconfigure(encoding='utf-8', error='replace')

2. emoji_safe (v1.0)
--------------------
Безопасная обработка эмодзи для хранения/передачи.

ФУНКЦИИ:
  emoji_to_safe(text) Emoji -> ASCII-safe (для БД/файлов)
  emoji_to_display(текст) ASCII-безопасно -> Emoji (для отображения)

ИСПОЛЬЗОВАТЬ:
  из _policies.emoji_safe импортировать emoji_to_safe
  Safe_text = emoji_to_safe("Привет [ИНСТРУМЕНТ]") # -> "Привет :wrench:"

ЗАВИСИМОСТЬ:
  Обязательно: pip install emoji (необязательно, изящный запасной вариант)

3. json_safe (v1.0)
-------------------
Безопасные операции JSON с обработкой эмодзи/кодирования.

ФУНКЦИИ:
  json_load_safe(filepath) Загружается с резервной кодировкой
  json_save_safe(data, filepath) Сохраняет с преобразованием эмодзи.
  json_dumps_safe(данные) Сериализованный обеспечения_ascii=False

ИСПОЛЬЗОВАТЬ:
  из _policies.json_safe импортировать json_load_safe, json_save_safe

  # Загрузка (пробовал utf-8, utf-8-sig, latin-1, cp1252)
  данные = json_load_safe("config.json")

  # Сохранить (конвертирует смайлы в :shortcodes:)
  json_save_safe(data, "config.json", Convert_emojis=True)

ФОРМАТ ПОЛИТИКИ
-------------
Каждая политика имеет следующую структуру:

  #!/usr/bin/env python3
  # -*- кодировка: utf-8 -*-
  """
  ПОЛИТИКА: название
  ВЕРСИЯ: 1.0
  РАЗМЕР: маленький/средний/большой
  ОПИСАНИЕ: Что делает политика
  """

  # === ПОЛИТИКА:имя:версия ===
  ...код...
  # === END:name ===

РАЗМЕРНЫЕ КЛАССЫ:
  маленький -> встроенная инъекция (несколько строк)
  среда -> Внешний файл (собственный модуль)
  большой -> Несколько файлов

ЗАГРУЗКА ПРОЕКТА ATI
-------------------------
Политики вводятся в новые проекты загрузчиком ATI:

  bach ati bootstrap my-tool --template python-cli

СТАНДАРТНЫЕ ПОЛИТИКА для Python CLI:
  -coding_header (всегда)
  - json_safe (при использовании JSON)
  - emoji_safe (при выводе на консоль)

См.: Agents/ati/ATI_PROJECT_BOOTSTRAPPING.md

СОГЛАШЕНИЕ ИМЕНОВАНИЯ (концепция)
---------------------------
Планируемое соглашение об именах для файлов инструментов:

  c_ -> CLI, оптимизированный для ИИ (c_encoding_fixer.py)
  b_ -> ядро BACH (b_backup.py)
  a_ -> Агент-бегун (a_developer.py)
  t_ -> Инструменты тестирования (t_runner.py)
  m_ -> Поддерживать (m_cleanup.py)
  g_ -> Инструменты генератора (g_skill.py)

Статус: КОНЦЕПЦИЯ – еще не реализовано
См.: инструменты/_policies/CONCEPT_naming_convention.md

СОЗДАЙТЕ СВОЮ СОБСТВЕННУЮ ПОЛИТИКУ
-----------------------

1. Создайте файл в инструментах/_policies/.
2. Заголовок политики с ИМЯ, ВЕРСИЯ, РАЗМЕР, ОПИСАНИЕ.
3. Отметьте код между # === POLICY:имя:версия ===
4. Необязательно: зарегистрируйтесь в project_bootstrapper.py

ТИПИЧНОЕ ИСПОЛЬЗОВАНИЕ
-------------------------

1. НОВЫЙ ПРОЕКТ ПИТОН
   -> Автоматически вводить кодировку_заголовка

2. КОНФИГУРАЦИЯ JSON
   -> json_safe для безопасного хранения

3. КОНСОЛЬНОЕ ИЗДАНИЕ С EMOJIS
   -> emoji_safe для совместимости с Windows

4. СТАНДАРТИЗАЦИЯ СУЩЕСТВУЮЩЕГО КОДА
   -> c_standard_fixer использует внутренние политики

СМОТРИ ТАКЖЕ
----------
  bach --help tools/code_quality   Кодирование/JSON-Fixer
  bach --help ati                  Агент ATI и начальная загрузка
  bach --help tools                Обзор инструмента
