~/guides
Гайды
Узкие практические проблемы с конфигами и текстовыми форматами, разобранные конкретно, с примерами кода.
Сборникnpm v12 и волна supply chain атак 2026: полный разбор →- AI Agents
.cursorrules устарел: как перейти на .cursor/rules с несколькими .mdc файлами
Практическая миграция с плоского .cursorrules на папку .cursor/rules с glob-скоупингом по темам.
- .env
.env и mcp.json: как проверить, не утёк ли один и тот же секрет сразу в несколько файлов
Практический подход к поиску повторного использования одного значения между .env файлами и конфигами MCP-серверов перед ротацией.
- .env
.env vs Docker Secrets: когда переменных окружения уже недостаточно
Разница между хранением паролей в .env и через Docker Secrets, и с какого момента команде стоит перейти на второй вариант.
- Git
.gitattributes и line endings: почему Pull Request показывает весь файл измененным
Как CRLF и LF превращают однострочное изменение в диф на пятьсот строк, и как это лечится одним файлом конфига.
- JSON
Атака на AsyncAPI 14 июля 2026: как pwn request в GitHub Actions обошёл все защиты install-скриптов
Подробный таймлайн компрометации @asyncapi/generator — атака не использовала украденный npm-токен и не сработала бы install-script блокировкой, потому что вредоносный код выполнялся при импорте модуля, а не при установке.
- AI Agents
Аудит библиотеки SKILL.md: как проверить сразу всю папку skills на портируемость и размер
Практический подход к периодической проверке растущей библиотеки agent skills без прогона каждого файла по отдельности.
- Git
Аудит истории коммитов: почему один хороший коммит не спасает, если проект в целом не проходит проверку
Как оценить реальный процент соответствия репозитория формату Conventional Commits, а не полагаться на выборочные проверки.
- JSON
Год атак на npm: хроника от Axios до AsyncAPI, и что это значит для вашего package.json
Разбор волны supply chain атак 2026 года на npm-экосистему и практические выводы для конкретного проекта.
- CSV
Дрейф схемы CSV: как вовремя заметить, что экспорт из системы поменял структуру
Практический подход к мониторингу изменений структуры CSV-экспортов между несколькими выгрузками во времени.
- Docker Compose
Идемпотентность шагов pre_start в Docker Compose: почему нетранзакционность — не баг, а осознанный компромисс
Как спроектировать шаги pre_start так, чтобы повторный запуск после частичного сбоя не создавал дубли и не ломал состояние.
- Git
Как неверные permissions в GitHub Actions позволяют захватить весь релизный пайплайн
Разбор паттерна атаки на AsyncAPI 14 июля 2026 года и как избежать той же ошибки в собственных workflow.
- AI Agents
Как передать секреты из .env в конфиг MCP-сервера, не переписывая их руками
Практический способ собрать блок env для mcp.json прямо из существующего .env файла проекта.
- AI Agents
Когда часть AGENTS.md пора выносить в отдельный SKILL.md: практические признаки
Как отличить общее правило, которое должно остаться в AGENTS.md, от разовой процедуры-кандидата на отдельный SKILL.md.
- AI Agents
Конфиги Claude Desktop и Cursor — новая цель npm-малвари: что проверить прямо сейчас
Почему вредоносная версия jscrambler целенаправленно искала конфиги AI-коддинг инструментов, и как проверить свои файлы на секреты открытым текстом.
- YAML
Многодокументный YAML: как устроены Kubernetes-манифесты в одном файле
Как разделитель из трёх дефисов позволяет хранить Deployment, Service и ConfigMap в одном applyable.yaml, и как разобрать такой файл на части.
- .env
Порядок загрузки .env: почему Node, Docker Compose и Next.js видят разные значения
Пошаговый разбор приоритета переменных окружения в трех популярных системах и как отладить, откуда реально взялось значение.
- .env
После supply chain компрометации: как понять, какие секреты реально были в зоне риска
Практический подход к оценке масштаба ротации секретов после обнаружения скомпрометированной зависимости в проекте.
- JSON
Почему JSON.parse портит большие числа и что с этим делать
Разбор потери точности int64 идентификаторов при парсинге JSON в JavaScript и три рабочих способа обойти проблему.
- AI Agents
Почему MCP-сервер вдруг перестал запускаться после обновления npm до v12
Как блокировка install-скриптов в npm v12 незаметно ломает MCP-серверы, запускаемые через npx, и что с этим делать.
- Nginx
Приоритет location в Nginx: почему новый блок никогда не срабатывает, как ожидалось
Реальный порядок проверки location-блоков в Nginx: точное совпадение, регулярные выражения, префиксы — и почему порядок в файле почти не важен.
- AI Agents
AGENTS.md, CLAUDE.md, Cursor Rules: пять форматов инструкций для одного AI-агента
Как индустрия AI-коддинг-агентов пришла к пяти конкурирующим форматам конфигурации и что с этим сейчас практически делать.
- AI Agents
AGENTS.md, Cursor Rules и Copilot Instructions: таблица решений для конкретного проекта
Практическое сравнение трёх форматов инструкций для AI-агентов и рекомендации, какие использовать вместе.
- AI Agents
AGENTS.md, SKILL.md, MCP: что каждый решает и когда нужны все три сразу
Разбор трёх разных слоёв экосистемы AI-агентов — инструкции проекта, переиспользуемые процедуры и внешние инструменты — и как они сочетаются.
- JSON
allowScripts в монорепозитории: общий allowlist или отдельный на пакет
Как npm v12 применяет allowScripts к воркспейсам, и практический подход к слиянию разрешений из нескольких package.json.
- JSON
allowScripts diff: как отслеживать изменения allowlist между релизами проекта
Практика отслеживания изменений в allowScripts как элемент security review — что добавили и что удалили между версиями.
- JSON
allowScripts vs --ignore-scripts: два разных подхода к install-скриптам npm
В чём разница между новым allowlist-полем npm v12 и старым флагом полного отключения install-скриптов.
- AI Agents
applyTo в GitHub Copilot: путь-специфичные инструкции параллельно единому copilot-instructions.md
Как работает менее известный механизм .instructions.md с полем applyTo и чем он отличается от Cursor Rules по синтаксису.
- YAML
Batch-миграция init-контейнеров на Image Volumes в Kubernetes 1.35
Как найти всех кандидатов на замену init-контейнеров сразу в парке манифестов, а не проверять каждый вручную.
- Git
Conventional Commits в команде: как внедрить формат коммитов без бунта на корабле
Практическая стратегия перехода на единый формат сообщений коммитов, чтобы автоматический changelog действительно работал.
- CSV
CSV и Excel: почему номер телефона превращается в 1.23E+11
Разбор того, как Excel угадывает типы данных при открытии CSV, и три способа сохранить числовые строки числовыми строками.
- CSV
CSV с кириллицей превращается в квадратики после открытия в Excel: как это исправить
Почему Excel показывает кракозябры вместо кириллицы в CSV файле, и как кодировка и BOM-метка решают эту проблему раз и навсегда.
- Nginx
CVE-2026-42533 в nginx map: как быстро проверить парк из десятка серверов, а не один конфиг
Практический подход к пакетному аудиту множества nginx-конфигов на уязвимую regex-конструкцию в директиве map.
- JSON
Dependency cooldown в npm: почему GitHub теперь ждёт 3 дня перед обновлением зависимостей
Разбор новой дефолтной защиты Dependabot — окна ожидания перед автообновлением npm-пакетов — и как встроить ту же логику в свой CI, даже если вы не используете Dependabot.
- Docker Compose
Docker Compose depends_on и healthcheck: почему сервис стартует раньше базы
Как условие service_healthy решает race condition при старте контейнеров, и почему просто depends_on без него не работает.
- AI Agents
Frontmatter в .mdc: как работают globs и alwaysApply, и почему правило Cursor иногда не срабатывает
Разбор синтаксиса YAML frontmatter в Cursor Rules и самая частая причина, по которой правило молча не применяется к нужным файлам.
- AI Agents
GitHub Agentic Workflows: как markdown-файл компилируется в Actions YAML
Новый формат из публичного превью — автоматизация на естественном языке вместо YAML, и на что обратить внимание при первых экспериментах.
- Docker Compose
Healthcheck coverage в Docker Compose: как проверить весь парк сервисов, а не один файл
Почему отсутствие healthcheck у одного сервиса ломает надёжность всей цепочки depends_on, и как найти пробелы во множестве compose-файлов сразу.
- YAML
Image Volumes в Kubernetes 1.35: конец init-контейнерам ради статичных данных
Как стабильный в 1.35 тип volume позволяет монтировать OCI-образ напрямую в под, без bootstrap-скриптов и кастомных init-контейнеров.
- Nginx
Ingress NGINX Controller больше не поддерживается: практический план миграции на Gateway API
Что означает retirement проекта Ingress NGINX для существующих кластеров и как перенести аннотации в HTTPRoute.
- JSON
JSON Schema для начинающих: валидация структуры API за десять минут
Минимальный набор ключевых слов JSON Schema, которого хватает для практической валидации входящих запросов API.
- JSON
JSON.stringify, null и undefined: три способа полю исчезнуть из результата
Разбор того, куда пропадают undefined значения при сериализации JSON, и почему это архитектурное решение, а не баг.
- AI Agents
llms.txt: разбор синтаксиса нового стандарта и практика внедрения на сайте
Что такое llms.txt, чем он структурно отличается от robots.txt и sitemap.xml, и как его правильно написать для собственного сайта.
- Markdown
Markdown таблицы в GitHub README: почему все разъезжается
Частые причины сломанных таблиц в Markdown: неэкранированная вертикальная черта, лишние пробелы и путаница с выравниванием.
- AI Agents
MCP переходит на OAuth 2.1: что меняется в спецификации 2026-07-28
Разбор новой авторизационной модели MCP — Protected Resource Metadata, PKCE и enterprise-режим ID-JAG вместо статичных токенов в конфиге.
- AI Agents
mcp.json в Claude Desktop, VS Code, Cursor и Warp: одна идея, четыре немного разные схемы
Практическое сравнение схем конфигурации MCP-серверов между основными клиентами и типичные ошибки при переносе конфига между ними.
- AI Agents
mcp.json и npm v12: что стоит проверить в конфиге MCP-серверов перед обновлением npm
Практический разбор, какие поля mcp.json стоит пересмотреть перед переходом на npm v12, и как избежать неожиданных сбоев MCP-серверов.
- AI Agents
Nearest-file-wins в AGENTS.md: как правильно раскладывать инструкции по монорепозиторию
Как AGENTS.md разрешает конфликты между несколькими файлами на разных уровнях монорепозитория и практические паттерны организации.
- Nginx
Nginx rewrite vs return vs try_files: как устроить бесконечный редирект и найти его
Разбор трех похожих директив nginx, из-за путаницы между которыми получается ERR_TOO_MANY_REDIRECTS в браузере.
- JSON
npm v12 блокирует install-скрипты, но не спасает от AsyncAPI-style атак
Разница между install-time и import-time supply chain payload, и почему allowScripts не покрывает второй тип угрозы.
- JSON
npm v12 и allowScripts: как не сломать CI, когда install-скрипты перестают работать по умолчанию
Разбор нового поля allowScripts в package.json и практический чеклист миграции перед обновлением до npm v12.
- Docker Compose
pre_start + healthcheck + depends_on: как выстроить полную цепочку готовности без гонки
Три связанных звена надёжного старта Docker Compose стека и почему слабое звено в любом из них ломает всю цепочку.
- Docker Compose
pre_start в Docker Compose 5.3: нативные init-контейнеры без костылей с service_completed_successfully
Новая секция pre_start (Compose 5.3.0, июль 2026) заменяет паттерн с отдельным one-shot сервисом для миграций и подготовки томов перед стартом основного контейнера.
- TOML
required-environments в pyproject.toml: как ограничить платформы для пакетов без исходников
Разбор нового поля uv для проектов с зависимостями вроде PyTorch, которые публикуют только предсобранные wheel-дистрибутивы.
- Git
Semantic Versioning на практике: major, minor или всего лишь patch
Практические правила semver: когда ломать совместимость, а когда это просто исправление бага.
- AI Agents
SKILL.md в Codex CLI и Gemini CLI: одинаковый формат, разные допущения
Что происходит с Claude-специфичными полями SKILL.md вроде allowed-tools при использовании skill в других AI-агентах.
- AI Agents
SKILL.md и progressive disclosure: почему пятьдесят skills не тормозят агента, а один раздутый файл — да
Как экономика контекста работает в открытом стандарте Agent Skills и практический ориентир по размеру тела skill.
- JSON
Staged publishing в npm: как работает 2FA-подтверждение перед публикацией пакета
npm stage publish, npm stage approve и остальные команды staged publishing — пошагово, с примером CI-конфигурации и разбором, от какого именно вектора атаки это защищает.
- TOML
TOML и даты: почему валидный конфиг привозит время не в том часовом поясе
Разбор форматов дат по стандарту RFC 3339 в TOML и частых ошибок с локальным временем без явного часового пояса.
- TOML
TOML, YAML или JSON: какой формат выбрать для конфига нового проекта
Сравнение трех самых популярных форматов конфигурации по читаемости, строгости и экосистемной поддержке, без религиозных войн.
- .env
TOML, YAML, JSON или .env: где хранить секреты конфигурации
Сравнение форматов по безопасности хранения чувствительных данных и практическая рекомендация для разных сценариев.
- TOML
uv 0.12: uv init теперь создаёт src/-layout по умолчанию — что изменилось
Смена дефолтной структуры проекта в менеджере пакетов uv и практический подход к миграции существующих проектов.
- YAML
YAML anchors и merge keys: один docker compose на три окружения без копипасты
Как раздать конфиг на dev, staging и prod через якоря и ссылки YAML, не размножая одни и те же настройки по трем файлам.
- YAML
YAML-якоря в Kubernetes: как не копировать один и тот же env-блок в двадцать подов
Практическое применение &anchor и *alias в манифестах Kubernetes для DRY-конфигурации без внешних шаблонизаторов вроде Helm.