From 52107e793e89f2dcfc6ee55fa278e1a5aaeb5f97 Mon Sep 17 00:00:00 2001 From: Veronika Smirnova Date: Mon, 11 Aug 2025 16:37:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=84=D0=B5=D1=81=D1=81=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Новый раздел 1.3 в interaction-integrity-rules.md - Принципы профессионального подхода к настройке ESLint/линтеров - Запрет на "заметание под ковер" и широкие паттерны игнорирования - Алгоритм правильного решения проблем с конфигурацией - Примеры правильных и неправильных подходов - Обновлена краткая версия в CLAUDE.md Правило основано на опыте исправления .eslintignore → точной настройки 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- CLAUDE.md | 3 ++- interaction-integrity-rules.md | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index a639e63..26c1167 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -68,8 +68,9 @@ - **Pre-commit hooks существуют для защиты проекта** - никогда не обходить их - **Исправлять ошибки, а не обходить их** - каждая ошибка ESLint должна быть исправлена - **Обход проверок создает технический долг** - `--no-verify` использовать только в крайних случаях +- **Профессиональный подход к конфигурации** - точная настройка инструментов, не "заметание под ковер" -> 📋 **Подробные правила качества кода**: см. раздел 1.2 в [interaction-integrity-rules.md](./interaction-integrity-rules.md#12--принципы-качества-кода) +> 📋 **Подробные правила**: см. разделы 1.2-1.3 в [interaction-integrity-rules.md](./interaction-integrity-rules.md#12--принципы-качества-кода) ### Правила взаимодействия (кратко): diff --git a/interaction-integrity-rules.md b/interaction-integrity-rules.md index 49ec710..82919e4 100644 --- a/interaction-integrity-rules.md +++ b/interaction-integrity-rules.md @@ -48,6 +48,45 @@ 4. Обсудить с пользователем стратегию для остальных ошибок 5. Только после исправления делать коммит +### 1.3 🎯 ПРИНЦИПЫ ПРОФЕССИОНАЛЬНОЙ КОНФИГУРАЦИИ + +**КРИТИЧЕСКИ ВАЖНО**: Профессиональный подход важнее быстрых решений + +**ЗАПРЕЩЕННЫЕ ПРАКТИКИ:** + +- ❌ **Игнорирование по паттернам файлов** - не использовать `.eslintignore` с `*.js`, `check-*.js` и подобным +- ❌ **"Заметание под ковер"** - не игнорировать проблемы, а решать их +- ❌ **Создание конфигов для несуществующих файлов** - сначала проверить реальность проблемы + +**ПРОФЕССИОНАЛЬНЫЕ ПОДХОДЫ:** + +- ✅ **Точная настройка инструментов** - указывать конкретные файлы/папки в конфигах +- ✅ **Организация файловой структуры** - переносить временные файлы в `scripts/`, `tools/`, `debug/` +- ✅ **Удаление мусора** - удалять временные/отладочные файлы вместо их игнорирования +- ✅ **Принцип "files" вместо "ignores"** - лучше указать что проверять, чем что игнорировать +- ✅ **Конкретность конфигурации** - вместо `*.config.js` указать точные файлы + +**АЛГОРИТМ ПРИ ПРОБЛЕМАХ С ЛИНТЕРОМ:** + +1. **Проверить реальность проблемы** - существуют ли проблемные файлы? +2. **Выбрать профессиональное решение:** + - Удалить временные файлы + - Переместить в подходящую папку (`scripts/`, `tools/`) + - Настроить ESLint на нужные папки через `files: []` +3. **Избегать широких паттернов игнорирования** +4. **Документировать решение** если оно неочевидно + +**ПРИМЕРЫ ПРАВИЛЬНЫХ РЕШЕНИЙ:** + +```javascript +// ❌ Плохо - широкое игнорирование +ignores: ['check-*.js', 'debug-*.js', '*.temp.js'] + +// ✅ Хорошо - точная настройка +files: ['src/**/*.{js,ts,jsx,tsx}', 'scripts/**/*.{js,ts}'] +ignores: ['diagnostic-script.js', 'legacy-config.js'] // конкретные файлы +``` + ### 1.3 🛑 КОМАНДЫ ЭКСТРЕННОЙ ОСТАНОВКИ **"СТОП - ЧИТАЙ ПРАВИЛА"** - немедленно останавливает любую работу