Отчёты
Archora собирает три отчёта из одного скана. У каждого свой вопрос, поэтому выбирайте формат по аудитории.
Что можно экспортировать
| Формат | Аудитория | На какой вопрос отвечает |
|---|---|---|
| HTML | Ревьюер, тех-лид, code owner | «Как сейчас выглядит архитектура и что чинить первым?» |
| Fix-plan JSON | Автоматизация, внутренние инструменты, планирование | «Дай очередь починки с reason / action / verify по каждому пункту.» |
| Полный JSON | Интеграции, дашборды, кастомные срезы | «Дай весь скан-конверт, я сам построю срез.» |
| JUnit | CI / вкладки тестов | «Покажи каждый цикл и нарушение как failed test case.» |
| Markdown | PR-комментарии | «Положи компактное summary в код-ревью.» |
Любой формат можно получить из меню Export в десктоп-приложении или из CLI: archora report . --format html|fix-plan|json|junit|md.
HTML-отчёт
HTML-бриф — один файл без JS, без graph runtime и без внешних ассетов. Открывается в любом браузере, его можно положить в репозиторий.
Внутри:
- Repair brief — grade, score, modules, edges, число generated-модулей, если включена соответствующая политика.
- Fix first — главный finding с разбивкой Action / Why / Verify.
- Top priority — таблица следующих 9 пунктов с типом и списком целей.
- Cycles — топ-20 циклов: severity, длина, suggested breakpoint и пример модулей.
- Hotspots — топ-20 модулей по hotness с fan-in/out и флагом «in cycle».
- Rule violations — отдельно layer и contracts.
- Impact summary — модули с самой большой группой прямых импортёров — где изменение распространится дальше всего.
- Verification plan — короткий упорядоченный список проверок перед закрытием задачи.
Подвал отсылает обратно к десктоп-приложению — HTML это бриф, а не замена интерактивного workspace.
Fix-plan JSON
Стабильный versioned-конверт для внутренних инструментов:
{
"kind": "archora-fix-plan",
"version": 1,
"exportedAt": "2026-05-12T00:00:00.000Z",
"appVersion": "archora",
"project": { "id": "...", "name": "...", "rootPath": "...", "detectedFramework": "vue" },
"architectureDebt": { "score": 13, "grade": "A", "breakdown": { ... } },
"summary": {
"cycles": 7,
"layerViolations": 1,
"contractViolations": 0,
"hotZones": 4,
"generatedModules": 12
},
"priorityFindings": [
{
"type": "cycle",
"id": "cycle:abcdef12",
"title": "Direct dependency cycle",
"weight": 100,
"targets": ["src/a.ts", "src/b.ts"],
"reason": "2 modules close a dependency cycle.",
"action": "Break the import from src/b.ts -> src/a.ts.",
"verify": "Open Cycles and confirm this cycle disappeared after re-scan.",
"params": { "severity": "direct" }
}
],
"evidence": {
"cycles": [...],
"layerViolations": [...],
"contractViolations": [...],
"hotZones": [...],
"generatedModules": [...]
},
"verificationOrder": ["Verify cycle breakpoints first", "Verify layer boundary fixes"]
}Что гарантируется:
kindиversionстабильны. Изменение формы — это bumpversion.priorityFindingsотсортирован поweightпо убыванию. Findings, у которых все targets generated, помеченыgenerated: trueи сильно понижены — они не попадают в верх очереди.- В каждом finding всегда есть
reason,action,verify— тулза может показать их как есть. - В
evidenceлежат базовые cycles / violations / hotspots и список generated-модулей (с лимитом), чтобы потребителю не нужен второй вызов.
Полный JSON
Versioned-обёртка над целым ScanResult:
{
"schema": 1,
"app": "archora",
"exportedAt": "2026-05-12T00:00:00.000Z",
"scan": {
/* полный ScanResult: modules, edges, cycles, metrics, ... */
}
}Полезно для diff'ов через archora diff, для baseline'ов в CI и для кастомных дашбордов. Файл существенно тяжелее fix-plan'а — на больших монорепо это сотни мегабайт. Если нужна только очередь починки, выбирайте fix-plan.
Re-export
Каждый успешный экспорт сохраняется в History → Exported reports. Кнопка Re-export рядом с записью повторит тот же scope/format на текущем скане с новым timestamp в имени файла. Кнопка отключена, если активный скан принадлежит другому проекту — откройте проект, отсканируйте, потом re-export.
Имена файлов
archora-<project-slug>-<scope>-<iso-stamp>.<ext>
<scope>—report,fix-planилиcurrent-view.- Slug проекта — это санитизированное имя. Диакритика, пробелы и пунктуация сворачиваются в
-, имя безопасно для любой ФС.
Обработка ошибок
Пайплайн экспорта различает отмену и реальную ошибку:
- Отмена системного «Save» (десктоп) — тихий abort: ни тоста, ни записи в history.
- Ошибки записи в браузере или в Tauri выводятся как
danger-toast с сообщением. - Запись в history создаётся только после того, как файл оказался на диске.