Skill: Синхронизация документации при изменении кода
Цель
Поддерживать документацию в актуальном состоянии при изменении кода: file headers, docstrings, Markdown‑документацию и архитектурные описания.
Когда использовать
- •Пользователь говорит:
sync docs, «обнови документацию», «синхронизируй docs». - •Пользователь сообщает, что изменил конкретный файл и просит обновить документацию.
- •После серии изменений в коде перед подготовкой PR/merge.
Высокоуровневый алгоритм
- •Определить изменённые файлы.
- •Найти соответствующую им документацию.
- •Обновить элементы документации в коде и .md‑файлах.
- •Показать diff и запросить подтверждение перед внесением изменений.
Подробные шаги
Шаг 1. Найди изменённые файлы
- •
Если пользователь явно указал файлы — используй их.
- •
Иначе выполни в корне репозитория:
bashgit diff --cached --name-only | grep -E '\.(py|mq4|mqh|ipynb)$'
- •
Игнорируй файлы вне указанных расширений.
Шаг 2. Определи соответствующую документацию
Для каждого изменённого файла определи связанный .md/архитектурный файл:
- •processing/[script].py → docs/data_preprocessing/[script].md
- •statistics/[script].py → docs/data_analysis/[script].md
- •MT/MQL4/Include/[lib].mqh → docs/architecture.md (секция Pipeline)
Если соответствующий .md ещё не существует, предложи его создать.
Шаг 3. Обнови элементы документации
В коде:
- •В file header обнови поле Обновлён: на текущую дату в формате YYYY-MM-DD.
- •Обнови docstrings, если изменились сигнатуры функций, аргументы, возвращаемые значения или исключения.
В связанном .md‑файле (если существует):
- •Назначение — обнови, если изменилась функциональность.
- •Входные данные — обнови, если изменились форматы или источники.
- •Выходные данные — обнови, если изменились форматы или потребители.
- •Использование — обнови пример запуска и параметры, если они изменились.
- •Примечания — добавь новые ограничения или важные особенности.
В docs/architecture.md (если нужно):
- •Обнови секцию Pipeline, если изменились входы/выходы шагов конвейера или их связи.
Шаг 4. Покажи diff и запроси подтверждение
- •Сгенерируй сводку изменений в стиле:
Файл: docs/data_preprocessing/normalize.py.md + ## Входные данные + - **Файл**: `Nero.csv` (было: `data.csv`)
- •
Явно спроси пользователя: Применить изменения? (yes/no)
- •
Только после явного подтверждения внеси изменения в файлы.
Примеры использования
Пример 1 Пользователь: «Я изменил normalize.py, обнови документацию».
- •Действия:
- •Обновить header и docstrings в processing/normalize.py, отражая новые аргументы/поведение.
- •Обновить docs/data_preprocessing/normalize.py.md (назначение, входы/выходы, использование, примечания).
- •Показать diff и запросить подтверждение.
Пример 2 Пользователь: sync docs
- •Действия:
- •Найти все staged файлы через git diff --cached --name-only | grep -E '.(py|mq4|mqh|ipynb)$'.
- •Для каждого файла найти соответствующий .md/архитектурный документ.
- •Обновить документацию по правилам выше.
- •Показать сводный diff и запросить подтверждение перед применением.