diff
Сканирует проект и отдаёт ScanDiff против ранее сохранённого baseline.
Полезно для PR-комментариев «что изменилось с main» и для трендовых дашбордов.
Синопсис
archora diff [path] --base <baseline.json> [options]Опции
| Опция | Значение |
|---|---|
--base <file> | Обязателен. Baseline JSON-снапшот для сравнения. |
--output, -o <file> | Запись diff JSON в файл вместо stdout. |
--quiet | Глушит сводку дифа в stderr. |
--help, -h | Показать справку. |
Вывод
JSON-документ ScanDiff — схему см. в packages/core/src/diff. Верхнеуровневые поля:
summary— счётчики добавленных / удалённых / изменённых модулей и циклов.addedModules,removedModules,changedModules— записи по модулям.newCycles,resolvedCycles— полные записи циклов.metricDeltas— before/after по fan-in, fan-out, coupling, hotness для каждого модуля.
Однострочная сводка пишется в stderr:
Diff: +N / -M modules, K changed, +A / -B cycles.Примеры
bash
# Сохранить baseline сегодня, диффнуть через неделю
archora analyze . > baseline.json
# … неделя рефакторов …
archora diff . --base baseline.json -o diff.json
# Прямо в jq
archora diff . --base baseline.json --quiet \
| jq '{addedModules: (.addedModules | length), newCycles: (.newCycles | length)}'Когда diff, а когда report --base
diff— машинно-читаемый JSON только из изменений. Для пайпинга, кастомных дашбордов, архивирования.report --base— человеко-читаемый Markdown, включающий секцию диффа. Для PR-комментариев.