--- name: 1c-feature-dev description: Этот скилл следует использовать, когда пользователь просит "создать доработку 1C", "реализовать функционал 1C", "добавить новую возможность в 1C", "разработать модуль 1C", "сделать доработку в 1С" или нуждается в полном цикле разработки 1C-доработок от анализа до реализации с валидацией плана и проверками приемки. --- ## Принципы работы - **Адаптивность**: количество агентов и глубина анализа зависят от сложности задачи - **Ранняя валидация**: ревью плана до реализации, а не после - **Уточнение требований**: выявление всех неоднозначностей до проектирования через вопросы пользователю - **Атомарные шаги**: этапы реализации с критериями приемки и проверками - **Отслеживание прогресса**: после завершения каждой фазы отмечай её как завершённую в списке задач --- ## Phase 0: Инициализация и оценка сложности **Цель**: понять масштаб задачи и создать структуру для работы Начальный запрос: $ARGUMENTS **Действия**: 1. Создай список задач со всеми фазами 2. Создай директорию `.tasks/task-[feature-name]/` для хранения артефактов 3. **Оцени сложность задачи** (простая/средняя/сложная/критичная): - **Простая**: небольшое изменение, очевидная реализация - **Средняя**: затрагивает несколько модулей, требует понимания архитектуры - **Сложная**: большая доработка, несколько подсистем, неочевидные решения - **Критичная**: архитектурные изменения, влияние на всю систему, высокие риски 4. Запиши оценку сложности в файл `.tasks/task-[feature-name]/phase0-complexity.md` --- ## Phase 1: Discovery **Цель**: понять, что нужно построить **Действия**: 1. Если доработка неясна, спроси пользователя: - Какую проблему они решают? - Что должна делать доработка? - Есть ли ограничения или требования? 2. Резюмируй понимание и получи подтверждение от пользователя 3. Сохрани подтвержденное понимание в файл `.tasks/task-[feature-name]/phase1-requirements.md`: - Исходный запрос из $ARGUMENTS - Уточняющие вопросы и ответы (если были) - Резюме понимания задачи - Ключевые требования и ограничения - Подтверждение пользователя --- ## Phase 2: Исследование кодовой базы 1C **Цель**: понять существующий код и паттерны **ПРИНЦИПЫ АДАПТИВНОГО ИССЛЕДОВАНИЯ**: ТЫ ПРИНИМАЕШЬ РЕШЕНИЕ о стратегии исследования на основе: - Оценки сложности из Phase 0 - Характера задачи (новая доработка vs расширение существующей) - Того, насколько понятна область кодовой базы **Ключевой принцип**: глубина важнее ширины - лучше запустить агентов последовательно для углубления, чем параллельно на одно и то же. **Твои решения**: 1. **Сколько агентов `1c-code-explorer` запустить?** (1-4+) - Для простых задач может хватить одного - Для сложных может понадобиться несколько с углублением 2. **Параллельно или последовательно?** - Параллельно - если нужно изучить разные независимые области - Последовательно - если нужно углубление: первый агент находит, второй копает глубже 3. **На какие аспекты фокусироваться?** - Похожие доработки и паттерны - Архитектура и слои абстракции - Интеграции и зависимости - Критичные компоненты, найденные предыдущими агентами 4. **Итеративное углубление** - Можешь запустить агента, посмотреть результаты, решить нужно ли ещё углубление - Каждый следующий агент может фокусироваться на находках предыдущих **Действия**: 1. Прими решение о стратегии исследования (обоснуй коротко) 2. Запусти агентов `1c-code-explorer` согласно своей стратегии: - Передай путь к требованиям: `phase1-requirements.md` - Укажи фокус исследования для каждого агента (паттерны, архитектура, похожие доработки и т.д.) 3. Каждый агент должен вернуть список нескольких ключевых файлов для чтения 4. Прочитай все указанные файлы для глубокого понимания 5. Оцени: достаточно ли понимания? Нужно ли ещё углубление? Если да - запусти ещё агентов 6. Представь полную сводку найденных паттернов 7. Сохрани сводку в файл `.tasks/task-[feature-name]/phase2-exploration.md`: - Найденные паттерны и соглашения - Похожие доработки с ссылками на файлы - Ключевые компоненты и их назначение - Архитектурные инсайты - Список всех прочитанных ключевых файлов --- ## Phase 3: Уточняющие вопросы **Цель**: заполнить пробелы и разрешить все неоднозначности ДО проектирования **Действия**: 1. Просмотри находки по кодовой базе и исходный запрос на доработку 2. Выяви недетализированные аспекты: граничные случаи, обработка ошибок, точки интеграции, границы области, предпочтения дизайна, обратная совместимость, потребности производительности 3. **Представь все вопросы пользователю в ясном, организованном списке** 4. **Жди ответов перед проектированием архитектуры** 5. Сохрани вопросы и ответы в файл `.tasks/task-[feature-name]/phase3-clarifications.md`: - Список вопросов с контекстом - Ответы пользователя на каждый вопрос - Принятые решения и рекомендации Если пользователь говорит "как считаешь нужным", предоставь свою рекомендацию и получи явное подтверждение. --- ## Phase 4: Проектирование архитектуры **Цель**: спроектировать архитектуру реализации **АДАПТИВНЫЙ ПОДХОД** - количество агентов зависит от сложности: ### Простая задача (1 агент): - Запусти 1 агента `1c-code-architect` - Создай один практичный план реализации ### Средняя задача (1 агент + опциональное мультисэмплинг): - **По умолчанию**: 1 агент с практичным планом - **Опционально**: если решение неочевидно, можешь запустить 2 агента с разными подходами и выбрать лучший ### Сложная/критичная задача (2-3 агента, мультисэмплинг): - Запусти 2-3 агента `1c-code-architect` параллельно с разным фокусом: - Минимальные изменения (наименьшее изменение, максимальное переиспользование) - Чистая архитектура (поддерживаемость, элегантные абстракции) - Прагматичный баланс (скорость + качество) - Сформируй мнение о лучшем подходе - Представь пользователю все подходы с твоей рекомендацией - **Спроси пользователя, какой подход он предпочитает** **Действия**: 1. Запусти агентов `1c-code-architect` согласно сложности задачи: - Передай пути к артефактам: `phase1-requirements.md`, `phase2-exploration.md`, `phase3-clarifications.md` - Для каждого агента укажи архитектурный подход (минимальные изменения / чистая архитектура / баланс) 2. После выбора подхода создай файл `.tasks/task-[feature-name]/phase4-architecture.md` с: - Постановкой задачи - Оценкой сложности из Phase 0 - Выбранным архитектурным подходом с обоснованием - Найденными паттернами и соглашениями из Phase 2 - Ответами на уточняющие вопросы из Phase 3 - **ЭТАПАМИ РЕАЛИЗАЦИИ** - разбей реализацию на логические этапы (чеклист в markdown): - **Гранулярность**: простая задача = 1 этап, средняя = 2-4, сложная = 4-8, критичная = 5-10+ (отталкивайся от атомарности) - **Атомарность**: этап завершается за 1 сессию агента, имеет проверяемый результат, не блокирует сам себя - **Формат**: `- [ ] **Этап N**: описание + файлы + критерии приемки + зависимости (если есть)` - Mermaid-диаграммами (архитектура, потоки данных) - План должен быть самодостаточным для понимания без контекста беседы --- ## Phase 5: Ревью плана **Цель**: валидировать план ДО реализации — ошибки в плане обходятся дорого, весь код придётся переписывать. **Действия**: 1. Запусти агента `1c-code-architect` для ревью плана: - Передай пути к артефактам: `phase1-requirements.md`, `phase2-exploration.md`, `phase3-clarifications.md`, `phase4-architecture.md` - Фокус ревью: - **Полнота**: все ли аспекты задачи покрыты? - **Корректность**: соответствуют ли решения найденным паттернам из Phase 2? - **Реалистичность**: можно ли реализовать план как описано? - **Соответствие требованиям**: покрывает ли план все требования из Phase 1 и ответы из Phase 3? - **Критерии приемки этапов**: достаточно ли чёткие и проверяемые? - **Зависимости**: правильно ли выстроена последовательность этапов? - **Технический долг**: есть ли известные проблемы, которые план усугубит? 2. Если агент находит проблемы: - Обнови план в `.tasks/task-[feature-name]/phase4-architecture.md` - **Повтори Phase 5** (ревью обновлённого плана) 3. Когда план одобрен агентом, сохрани результаты ревью в `.tasks/task-[feature-name]/phase5-plan-review.md`: - Что было проверено (полнота, корректность, реалистичность и т.д.) - Какие проблемы были найдены и исправлены (если были) - Итоговое заключение: план готов к реализации 4. **Представь план пользователю**: - Краткое резюме плана - Этапы реализации с критериями приемки - **Спроси явно: "План готов к реализации, можем начинать?"** **НЕ ПЕРЕХОДИ К PHASE 6 БЕЗ ЯВНОГО ОДОБРЕНИЯ ПОЛЬЗОВАТЕЛЯ** --- ## Phase 6: Реализация по этапам **Цель**: построить доработку атомарными шагами с проверками приемки **НЕ НАЧИНАЙ БЕЗ ОДОБРЕНИЯ ПОЛЬЗОВАТЕЛЯ** **Действия**: 1. Прочитай файл плана `.tasks/task-[feature-name]/phase4-architecture.md` 2. **Для каждого этапа реализации последовательно**: a. Отметь этап в плане как начатый (измени `- [ ]` на `- [🔄]` в файле плана) b. Запусти агента `1c-code-writer` для реализации этапа: - Передай путь к плану - Укажи конкретный этап для реализации - Напомни про критерии приемки c. Проверь критерии приемки этапа: - Все файлы созданы/изменены как описано? - Критерии приемки выполнены? - Код соответствует правилам из `1c-rules.md`? d. Если критерии не выполнены: - Запусти агента `1c-code-writer` для исправления: - Передай путь к плану и укажи этап - Опиши найденные проблемы и что нужно исправить - Повтори проверку критериев - Повторяй цикл исправления, пока критерии приемки не будут выполнены e. Отметь этап в плане как завершённый (измени `- [🔄]` на `- [x]` в файле плана) --- ## Phase 7: Ревью кода **Цель**: убедиться, что код корректен, элегантен и **соответствует плану** **Действия**: 1. Запусти ревьюеров согласно размеру задачи: - **Простая**: `1c-code-reviewer` - Передай путь к плану: `phase4-architecture.md` - Фокус: базовая корректность + беглая проверка соответствия плану - **Средняя/сложная**: - `1c-code-architect` для проверки соответствия плану: - Передай пути к артефактам: `phase1-requirements.md`, `phase4-architecture.md`, `phase5-plan-review.md` - Фокус: соответствие плану, архитектурным решениям, критериям приемки этапов - `1c-code-reviewer` для проверки качества кода: - Укажи путь к правилам: `~/.claude/rules/1c-rules.md` - Фокус: баги, читаемость, правила, DRY, элегантность - **Очень большая**: раздели код на логические модули/подсистемы, для каждого модуля запусти пару агентов (architect + reviewer) с теми же инструкциями 2. Консолидируй их ответы и выяви проблемы, требующие исправлений 3. Сохрани результаты ревью в `.tasks/task-[feature-name]/phase7-code-review.md`: - Что было проверено (соответствие плану, качество, баги и т.д.) - Найденные проблемы с severity и рекомендациями - Итоговая оценка готовности кода 4. **Представь выявленные проблемы пользователю и спроси, что он хочет сделать**: - Исправить сейчас - Исправить позже (добавить в TODO/технический долг) - Продолжить как есть 5. **Если "исправить сейчас"**: - Добавь проблемы в план в секцию "Исправления после ревью" - Запусти агента `1c-code-writer` для исправления: - Передай путь к плану: `phase4-architecture.md` - Опиши проблемы из ревью и что нужно исправить - **Вернись к началу Phase 7** (повторное ревью) - Повторяй итерации, пока ревьюеры не перестанут находить критические проблемы 6. **Если "исправить позже"**: - Добавь проблемы в план в секцию "Технический долг" - Отметь в плане как отложенные --- ## Phase 8: Итоги **Цель**: документировать выполненное **Действия**: 1. Отметь все задачи как завершённые 2. Сохрани резюме в файл `.tasks/task-[feature-name]/phase8-summary.md`: - Что было построено (ссылки на этапы реализации) - Ключевые принятые решения (ссылка на план) - Изменённые файлы (git diff --stat) - Оставшийся технический долг (если есть) - Предлагаемые следующие шаги 3. Представь резюме пользователю