Загрузка данных
Ты работаешь только в проекте:
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project
Предыдущий этап создал отдельные каталоги интеграционных объектов, но аудит
результата выявил ложные объекты, дубли и каталог unknown.
Не запускай браузер.
Не обращайся к META.
Не выполняй Git-команды.
Не изменяй иерархию АС, ФП, модулей, подмодулей и ТК.
Не удаляй старые плоские каталоги projects/SNL/meta.
Работай только с существующими output/*.md, temp_html/*.html и кодом проекта.
Цель:
исправить качество структурированных интеграционных объектов, чтобы каталог
создавался только для реальной строки таблицы или реального объекта META,
но не для заголовка страницы, названия раздела или имени исходного файла.
======================================================================
1. СОЗДАТЬ РЕЗЕРВНУЮ КОПИЮ
======================================================================
Создай резервную копию текущей структуры:
projects/SNL/meta.before-integration-cleanup
Если она уже существует, используй имя с timestamp.
Создай резервные копии изменяемых файлов:
scripts/structured_meta_writer.py.before-integration-cleanup
scripts/regenerate_reports.py.before-integration-cleanup
Если потребуется менять parser:
scripts/integration_interactions_parser.py.before-integration-cleanup
======================================================================
2. ОПРЕДЕЛИТЬ ЛОЖНЫЕ ОБЪЕКТЫ
======================================================================
Не считать отдельным интеграционным объектом названия страниц и разделов:
- ФП SberGeo.СНЛ — Интеграционные взаимодействия
- ФП SberGeo.СНЛ — Технологические взаимодействия
- ФП SberGeo.СНЛ — Точки взаимодействия
- ФП SberGeo.СНЛ — Стенды
- Интеграционные взаимодействия
- Технологические взаимодействия
- Точки взаимодействия
- Стенды
- Данные не найдены
- unknown
- пустое имя
Не создавать каталог из:
- заголовка Markdown;
- имени файла;
- названия страницы META;
- breadcrumb;
- общего названия раздела;
- пустой строки;
- строки статуса без имени объекта.
Реальный объект должен быть подтверждён хотя бы одним из признаков:
1. отдельная строка таблицы с непустым названием;
2. отдельный URL объекта;
3. ID META;
4. подтверждённая запись из parser-а;
5. строка с набором предметных атрибутов объекта.
======================================================================
3. КАНОНИЧЕСКИЙ КЛЮЧ И ДЕДУПЛИКАЦИЯ
======================================================================
Для каждого объекта сформировать canonical_key со следующим приоритетом:
1. type + META ID;
2. type + нормализованный URL;
3. type + parent + нормализованное исходное название.
Если два объекта имеют одинаковый ID или URL, это один объект.
При объединении:
- создать только один каталог;
- выбрать наиболее полное исходное название;
- сохранить остальные варианты в README.md в разделе «Альтернативные названия»;
- объединить непустые атрибуты;
- не дублировать одинаковые строки и ссылки.
Отдельно проверить вероятные дубли:
- СНЛ_IAM_Proxy_SIGMA;
- Точка взаимодействия СНЛ IAM Proxy SIGMA (Интеграционная);
- повторяющиеся «Технологические взаимодействия»;
- SNL.AI и СНЛ.AI.
Модули SNL.AI и СНЛ.AI не изменять на этом этапе, но добавить их в отдельный
отчёт как вероятный дубль с URL/ID для последующей проверки.
======================================================================
4. ПРАВИЛА ДЛЯ ТИПОВ
======================================================================
Создавать:
integration-flow/{NAME}/README.md
только для реального инфопотока.
Создавать:
integration/{NAME}/README.md
только для реального интеграционного или технологического взаимодействия.
Создавать:
integration-point/{NAME}/README.md
только для реальной точки взаимодействия.
Если в локальных данных реальные integration-flow не найдены:
- не создавать ложные дочерние каталоги;
- создать только индексный README.md;
- честно написать, что отдельные инфопотоки не были распознаны в доступной
локальной выгрузке;
- указать просмотренные источники.
======================================================================
5. ИНДЕКСНЫЕ README.md
======================================================================
Файлы:
integration-flow/README.md
integration/README.md
integration-point/README.md
должны быть индексами.
Если дочерние объекты существуют, индекс должен содержать таблицу:
| Название | Тип | Родитель | Путь | Источник |
|---|---|---|---|---|
И ссылки на дочерние README.md.
В этом случае индекс не должен содержать заглушку «Данные не найдены».
Если дочерних объектов нет, индекс должен содержать честное пояснение,
какие источники проверены и почему объекты не созданы.
======================================================================
6. ОЧИСТИТЬ ТОЛЬКО ЛОЖНЫЙ РЕЗУЛЬТАТ
======================================================================
После формирования корректного набора удалить из новой структуры только
подтверждённо ложные каталоги:
- integration-flow/unknown;
- каталоги, созданные из названий страниц и разделов;
- подтверждённые дубли одного и того же объекта.
Перед удалением для каждого каталога показать:
- путь;
- почему он ложный или дублирующий;
- какой источник это подтверждает;
- куда перенесена полезная информация, если она была.
Не удалять старые каталоги:
- hierarchy;
- modules;
- submodules;
- technical_components;
- integration_interactions;
- interaction_points;
- stands;
- tech_resources.
======================================================================
7. ОТЧЁТЫ
======================================================================
Создать:
output/INTEGRATION_OBJECTS_REPORT.md
Со структурой:
# Отчёт по интеграционным объектам
## Реальные объекты
| Тип | Исходное название | Родитель | ID | URL | Созданный путь |
|---|---|---|---|---|---|
## Объединённые дубли
| Основной объект | Альтернативное название | Основание объединения |
|---|---|---|
## Отклонённые кандидаты
| Кандидат | Причина отклонения | Источник |
|---|---|---|
## Неразмещённые объекты
| Объект | Причина | Источник |
|---|---|---|
## Вероятные дубли вне текущего этапа
Включить SNL.AI / СНЛ.AI с URL или ID.
======================================================================
8. ПРОВЕРКИ
======================================================================
Выполнить:
python -m py_compile run_exporter.py scripts/*.py
python scripts/regenerate_reports.py
Не запускать run_exporter.py.
После регенерации проверить:
find projects/SNL/meta/as -type f | sort
Проверить, что отсутствуют:
- */unknown/README.md;
- каталоги с именем раздела «Стенды» внутри integration-flow;
- каталоги с общим именем «Интеграционные взаимодействия»;
- каталоги с общим именем «Точки взаимодействия»;
- два каталога для одного ID или URL.
Показать точные количества:
| Тип | Реальных объектов | Дублей объединено | Ложных отклонено | Неразмещённых |
|---|---:|---:|---:|---:|
| integration-flow | ... | ... | ... | ... |
| integration | ... | ... | ... | ... |
| integration-point | ... | ... | ... | ... |
Выборочно показать полный текст README.md:
- одного integration;
- двух integration-point;
- индекса integration/README.md;
- индекса integration-point/README.md;
- integration-flow/README.md.
======================================================================
ФИНАЛЬНЫЙ ОТЧЁТ
======================================================================
# Этап 1.1 — очистка интеграционных объектов
## Изменённые файлы
## Удалённые ложные каталоги
## Объединённые дубли
## Реальные integration-flow
## Реальные integration
## Реальные integration-point
## Неразмещённые объекты
## Результат py_compile
## Результат regenerate_reports.py
## Количество файлов до и после
## Оставшиеся проблемы
После выполнения остановиться.
Не переходить к атрибутам.