# Порядок действий при изменении кода **Читать перед ЛЮБОЙ правкой.** --- ## ⛔ ЗАПРЕЩЕНО 1. Менять код без «делай» 2. Действовать по догадкам («я бы сделал так», «можно попробовать») 3. Удалять файлы/папки без разрешения 4. «Улучшать» рабочий код без прямого разрешения 5. Использовать `sed` 6. Откладывать commit/push «на потом» 7. Игнорировать проверку синтаксиса перед push --- ## ✅ ПОРЯДОК ПРИ ЛЮБОМ ИЗМЕНЕНИИ ### Шаг 1 — План ``` Описать что меняем → получить «делай» ``` ### Шаг 2 — Правка Вносим изменения. Только то, что обговорено. Никакой самодеятельности. ### Шаг 3 — Проверка синтаксиса ```bash python3 -c "import py_compile; py_compile.compile('путь/к/файлу.py', doraise=True)" ``` **КАЖДЫЙ изменённый .py файл.** ### Шаг 4 — Проверка импорта ```bash cd /home/naeel/nubes/drhider && python3 -c "from drhider import obfuscate_files, LLMClient; print('OK')" ``` ### Шаг 5 — Проверить соседей После `replace_string_in_file` — прочитать соседние строки, убедиться что не затёр соседнюю функцию/класс. ### Шаг 6 — commit + push (СРАЗУ) ```bash cd /home/naeel/nubes/drhider git add -A git commit -m "подробное описание что и зачем" git push ``` **Без исключений. Никаких накоплений.** ### Шаг 7 — Документировать Записать в `History/` что сделано: - Отдельный `.md` файл - Что планировалось → что сделано → в чём ошибся ### Шаг 8 — Redeploy Зайти в UI Штурвала → Redeploy `drhider`. --- ## 🔧 Команды в терминале — всегда с таймаутами ```bash curl --max-time 30 ... ssh -o ConnectTimeout=10 ... timeout 10 grep ... file.txt ``` --- ## 📦 Проверка ВСЕХ файлов разом ```bash cd /home/naeel/nubes/drhider python3 -c " import py_compile, os for root, dirs, files in os.walk('.'): for f in files: if f.endswith('.py'): py_compile.compile(os.path.join(root, f), doraise=True) print(f'OK: {os.path.join(root, f)}') " ``` --- ## 🏷️ Версионирование Версия в `site/app.py` (переменная `VERSION`). Менять при любом изменении кода, влияющем на поведение. --- ## 📝 Пример хорошего коммита ``` git commit -m "generators: добавил generate_snils — генератор фиктивных СНИЛС - Новый файл drhider/generators/snils.py - Добавлен паттерн в config.py → ENTITY_PATTERNS - Добавлен в generators/__init__.py → ENTITY_GENERATORS - bump VERSION 2.0.0 → 2.0.1" ```