| name | rdpi-1c |
| description | Методология RDPI для разработки в проекте 1С Swedbank. Используй когда: нужно реализовать новую задачу (feature), исправить баг (bug), провести исследование кодовой базы, спроектировать изменение, разбить задачу на фазы, написать код на BSL, отревьюировать BSL-код. Покрывает полный цикл: Research → Design → Plan → Implement. Включает готовые prompt-шаблоны для Copilot Chat, правила работы с mcp_1c, стандарты BSL-кода на русском языке, специфику разбора CSV Swedbank. |
| argument-hint | Опишите задачу: тип (feature/bug), название, краткое описание что нужно сделать |
RDPI для 1С Swedbank
Методология контекстной разработки: Research → Design → Plan → Implement.
Применяется ко всем задачам в проекте импорта выписок Swedbank в 1С.
Ключевые файлы проекта
Когда использовать
| Ситуация | Что сделать |
|---|
| Новая фича / задача | Все 4 фазы в полном объёме |
| Баг-фикс | Сокращённый процесс (см. раздел ниже) |
| Нужен только Research | Запусти фазу 1 изолированно |
| Нужно отревьюировать BSL-код | Используй prompt review-bsl-style.prompt.md |
| Нужно проверить соответствие дизайну | Используй prompt review-design-compliance.prompt.md |
Правила поведения агента
-
Один вариант, не несколько. Всегда выдавать одно лучшее решение с обоснованием — не «можно сделать так или так». Варианты перечислять только если пользователь явно попросил.
-
Не соглашаться при наличии фактических причин. Если предложение пользователя противоречит фактам из кода, метаданным конфигурации или стандартам BSL — возразить прямо, назвать конкретную причину со ссылкой на объект/строку/правило. Додуманные или гипотетические риски — не основание для возражения.
Шаг 0: Заполни конфиг задачи
Перед запуском любой фазы создай _config.md по шаблону:
## Проект
- **Название задачи**: <ИМЯ-ЗАДАЧИ> ← используется как имя папки (латиница, kebab-case)
- **Тип**: feature | bug
- **Описание**: <2-3 предложения что нужно сделать>
## Технологии
- **Язык**: 1С (BSL)
- **Платформа**: 1С:Предприятие 8.2
- **Язык именования**: русский
## Файлы кода
src/faktoring-auto/ИмпортИзСведбанк.bsl — основная логика импорта CSV и XML
src/faktoring-auto/ПлатежноеПоручениеВходящее_Форма_Модуль.bsl — форма документа
## MCP-инструменты
> ⚠️ **Обязательно**: перед Research изучи полный справочник всех инструментов:
> `C:\Users\user\.copilot\skills\dev-1c\references\mcp-1c-tools.md`
> Ниже — только типичные случаи для этого проекта.
mcp_1c-mcp_search_code — полнотекстовый поиск по конфигурации
mcp_1c-mcp_get_object_metadata — метаданные объектов (реквизиты, ТЧ)
mcp_1c-mcp_get_module_code — получение кода модуля
mcp_1c-mcp_get_form_context — структура форм
mcp_1c-mcp_find_function — поиск функции по имени
mcp_1c-mcp_analyze_dependencies — анализ зависимостей
mcp_1c-mcp_get_function_code — код конкретной функции
## Пути артефактов
research: docs/research/<ИМЯ-ЗАДАЧИ>/research.md
design: docs/design/<ИМЯ-ЗАДАЧИ>/
plan: docs/plan/<ИМЯ-ЗАДАЧИ>/
## Дополнительный контекст
docs/swedbank_format.md — спецификация полей CSV, особенности парсинга
docs/bsl_style.md — стандарты кода BSL (именование, форматирование)
Фаза 1: Research
Цель: Собрать факты AS-IS. Никаких советов и рефакторинга — только факты со ссылками на файл и строку.
Артефакт: docs/research/<задача>/research.md
Запустить prompt: /faktoring-1-research или запусти 1-research.prompt.md вручную.
Правила для агента-исследователя
- Используй
mcp_1c для анализа. Не угадывай структуру.
- Каждый факт — ссылка на файл и номер строки.
- Изучи: объекты 1С (реквизиты, ТЧ), модули, формы, общие модули.
- Зафиксируй открытые вопросы отдельным разделом.
Структура research.md
# Исследование: <Название задачи> — AS-IS
## 1. Затронутые компоненты
## 2. Ключевые функции и процедуры (имя | файл:строка | назначение)
## 3. Потоки данных
## 4. Точки входа и интеграции
## 5. Текущие ограничения (где сейчас требуется ручное действие)
## 6. Открытые вопросы
Gate: Переход к Design разрешён если
Фаза 2: Design
Цель: Архитектурное решение. Визуализация. Gate-ревью глазами до написания кода.
Артефакт: docs/design/<задача>/ (6 файлов)
Запустить prompt: /faktoring-2-design или 2-design.prompt.md.
Создаваемые файлы
| Файл | Содержание |
|---|
architecture.puml | C4 компонентная диаграмма (PlantUML) |
sequence.puml | Sequence-диаграмма вызовов BSL процедур |
data-flow.puml | Поток: поля CSV → реквизиты документа 1С |
decisions.md | ADR: решения, альтернативы, риски |
contracts.md | Сигнатуры новых/изменённых процедур BSL |
testing.md | Тест-кейсы для ручной проверки |
Gate: Переход к Plan разрешён если
Фаза 3: Plan
Цель: Разбить дизайн на атомарные фазы. Одна фаза = один логически завершённый коммит.
Артефакт: docs/plan/<задача>/ (overview.md + phase-N.md)
Запустить prompt: /faktoring-3-plan или 3-plan.prompt.md.
Правила разбивки
- Первые фазы: только добавление нового кода, существующий не трогаем
- Предпоследняя фаза: интеграция нового со старым
- Последняя фаза: финальный тест на
data/statement.csv
Шаблон phase-N.md
# Фаза N: <Название>
## Цель
## Изменяемые файлы
| Файл | Тип изменения | Примечание |
## Новый код (сигнатуры из contracts.md)
## Критерии завершённости (DoD)
- [ ] Код соответствует bsl_style.md
- [ ] Нет хардкода и магических строк
- [ ] Все изменения в рамках contracts.md
## Quality Gate
- [ ] Ревью BSL-стиля пройдено
- [ ] Ревью соответствия дизайну пройдено
- [ ] Ручная проверка на statement.csv
Фаза 4: Implement
Цель: Реализовать по одной фазе плана. Проходить Quality Gates перед каждым переходом.
Цепочка агентов для каждой фазы:
Кодер → Ревьюер BSL-стиля → Ревьюер соответствия плану
Запустить кодера
Используй промпты из .github/prompts/phase-N.prompt.md для соответствующей фазы.
Запустить ревью BSL-стиля
Промпт: /review-bsl-style или review-bsl-style.prompt.md.
Ожидаемый ответ: список замечаний с строками кода, или GATE PASSED: BSL Style.
Запустить ревью соответствия дизайну
Промпт: /review-design-compliance или review-design-compliance.prompt.md.
Ожидаемый ответ: список отклонений, или GATE PASSED: Design Compliance.
Quality Gates сводная таблица
| Gate | Метод | Инструмент |
|---|
| BSL-стиль | Ревьюер по bsl_style.md | Copilot Chat |
| Соответствие дизайну | Сравнение с contracts.md | Copilot Chat |
| Безопасность | SQL-инъекции, открытые запросы | Copilot Chat |
| Ручной тест | Импорт на data/statement.csv | 1С вручную |
Если хотя бы один Gate не пройден — фаза возвращается на доработку.
Сокращённый процесс для баг-фикса
| Фаза | Содержание |
|---|
| Research | Найти точку бага (файл, строка, условие). Минимальный сценарий воспроизведения. |
| Design | Только decisions.md: почему возник, минимальное исправление, риски регрессии. |
| Plan | Одна фаза: конкретное изменение + тест-кейс для воспроизведения бага. |
| Implement | Минимальное исправление + проверка на data/statement.csv. |
Правило: баг-фикс не содержит рефакторинг и новую функциональность.
Специфика проекта: BSL и mcp_1c
Обязательные правила кода
- Имена процедур, переменных, комментарии — русский язык
- Именование:
ПарсерСтрокиCSV, ОбработатьКомиссию (CamelCase)
- Перед преобразованием суммы:
СтрЗаменить(Сумма, " ", "") затем СтрЗаменить(..., ",", ".")
- Формат дат:
DD.MM.YYYY
- Запросы 1С для чтения данных — не объектное чтение в цикле
Как читать код через mcp_1c
1. mcp_1c-mcp_search_code("<ключевое слово>") — найти где используется
2. mcp_1c-mcp_get_function_code("<ИмяФункции>") — получить код функции
3. mcp_1c-mcp_get_object_metadata("Документ.<Имя>") — реквизиты и ТЧ документа
4. mcp_1c-mcp_analyze_dependencies("<Модуль>") — зависимости модуля
Формат CSV Swedbank (ключевые поля)
| # | Колонка | Особенность |
|---|
| 2 | Тип записи | Коды: 10, 20 и др. |
| 3 | Дата | DD.MM.YYYY |
| 4 | Контрагент | Разделитель | → СтрРазделить(Значение, "|") |
| 6 | Сумма | Может содержать пробелы и запятые |
| 8 | D/K | D=Дебет (расход), K=Кредит (приход) |
Структура артефактов после полного RDPI-цикла
docs/
├── research/<задача>/research.md
├── design/<задача>/
│ ├── architecture.puml
│ ├── sequence.puml
│ ├── data-flow.puml
│ ├── decisions.md
│ ├── contracts.md
│ └── testing.md
└── plan/<задача>/
├── overview.md
├── phase-1.md
└── phase-N.md