Как мы привели AI Salebot в порядок перед первой публикацией

Проект AI Agents Salebot собирал функционал долгие месяцы — 94 файла, почти 30 000 строк кода, 17 модулей на Python, работающие тесты. Но перед публикацией на GitLab встал вопрос, который не обсуждали: что вообще уходит в репозиторий, а что нет.
Начали с философии. Проект носил MIT-лицензию, но это казалось недостаточным. Решили перейти на GPL-3.0 — нужна была копилефт защита. Если кто-то будет строить на нашем коде, пусть открывает свои улучшения. Два клика в файле LICENSE, обновили README с указанием авторства (Pink Elephant) — и интеллектуальная собственность защищена.
Дальше пошла чистка. .gitignore был неполным, и мы случайно отслеживали:
docs/archive/— внутренние записи о фиксах и экспериментах, которые нужны только разработчикамdata/— базы данных и логи, живущие в локальной средеvosk-model-*— модели распознавания речи весом в мегабайты (не место в Git)- Окружение без шаблона для новичков
Расширили .gitignore, исключили ненужное, оставили .env.example как шаблон. Проект структурировался сам собой: src/ с модулями, tests/ с проверками, scripts/ с утилитами, документация отдельно.
Инициализировали свежий репозиторий с явной установкой SHA-1 (стандарт для совместимости с GitLab):
git init --initial-branch=main --object-format=sha1
Настроили remote на корпоративный GitLab, создали первый коммит. Ничего лишнего — только essential код. Хеш коммита 4ef013c сохранили в истории.
Попытались отправить на сервер gitlab.dev.borisovai.ru, но DNS не резолвился. Сервер был недоступен на момент работы — это временная задержка. Когда GitLab вернётся в сеть, достаточно одной команды:
git push --set-upstream origin main
Интересный момент: когда пробовали обновить файлы через Claude API, система заблокировала запрос (ошибка 400, content filtering policy). Пришлось работать с файлами напрямую через Python и Git.
Результат: репозиторий, готовый к публикации. Все файлы отслеживаются, лицензия правильная, документация актуальна, мусор исключён. Мигрировать настройки вроде Tailwind CSS на новый сервер будет проще, чем чистить хаос в стартовом коммите 😄
Метаданные
- Session ID:
- grouped_C--projects-bot-social-publisher_20260225_1119
- Branch:
- main
- Dev Joke
- Мигрировать с Tailwind CSS — всё равно что менять колёса на ходу. На самолёте.