Загрузка данных


Ты работаешь только в проекте:

/Users/23865613/IdeaProjects/untitled/zadanie2/source_project

Успешно завершены:

- структурирование интеграций;
- устранение межуровневых дублей;
- офлайн-выгрузка четырёх разделов атрибутов АС и ФП;
- py_compile;
- идемпотентная регенерация.

Теперь начинается этап 3.0 — аудит архитектурных дублей, стендов,
технических ресурсов и старой плоской структуры.

На этом этапе ничего не изменяй.

Запрещено:

- запускать браузер;
- обращаться к META;
- запускать run_exporter.py;
- изменять Python-код;
- изменять Markdown;
- удалять или перемещать каталоги;
- выполнять Git-команды;
- выполнять очистку;
- создавать резервные копии, поскольку изменений пока не будет.

Работай только с существующими локальными файлами:

- projects/SNL/meta;
- output/*.md;
- temp_html/*.html;
- scripts/*.py.

======================================================================
1. ПОКАЗАТЬ ТЕКУЩУЮ ЦЕЛЕВУЮ ИЕРАРХИЮ
======================================================================

Покажи дерево:

projects/SNL/meta/as/SberGeo

с глубиной, достаточной для отображения:

- АС;
- ФП;
- модулей;
- подмодулей;
- ТК;
- integration-flow;
- integration;
- integration-point;
- attributes;
- стендов;
- технических ресурсов.

Использовать:

find projects/SNL/meta/as/SberGeo \
  -maxdepth 9 -print | sort

Отдельно подсчитать:

- количество АС;
- количество ФП;
- количество модулей;
- количество подмодулей;
- количество ТК;
- количество стендов;
- количество технических ресурсов.

======================================================================
2. НАЙТИ ДУБЛИ МОДУЛЕЙ И ПОДМОДУЛЕЙ
======================================================================

Проверить возможные дубли, возникающие из-за:

- русских и латинских букв;
- `SNL` и `СНЛ`;
- разных регистров;
- дефисов, точек и подчёркиваний;
- пробелов;
- полного и сокращённого названия;
- одинакового META URL;
- одинакового META ID.

Особенно проверить:

- SNL.AI и СНЛ.AI;
- SNL.Integrations и СНЛ.Интеграции;
- другие каталоги, различающиеся только алфавитом или нормализацией.

Для каждого объекта собрать:

| Тип | Каталог | Название в README | URL | META ID | Возможный дубль |
|---|---|---|---|---:|---|

Дубль подтверждать только по:

1. одинаковому META ID;
2. одинаковому нормализованному URL;
3. явно одинаковому объекту в исходном HTML.

Одного похожего имени недостаточно.

======================================================================
3. ПРОВЕРИТЬ РАЗМЕЩЕНИЕ ТК
======================================================================

Наставник допускает:

АС → ФП → ТК

АС → ФП → Модуль → ТК

АС → ФП → Модуль → Подмодуль → ТК

Проверить каждый ТК.

Для каждого показать:

| ТК | Текущий родитель | Источник связи | Подтверждённый родитель | Текущий путь | Статус |
|---|---|---|---|---|---|

Статусы:

- корректно размещён;
- размещён у ближайшего подтверждённого родителя;
- родитель не определён;
- вероятный дубль;
- ошибочно размещён.

Не придумывать связь Модуль → ТК или Подмодуль → ТК, если она отсутствует
в локальных данных.

======================================================================
4. ПРОВЕРИТЬ СТЕНДЫ
======================================================================

Найти все данные о стендах в:

- projects/SNL/meta;
- output/*.md;
- temp_html/*.html.

Показать текущие каталоги, включая возможные старые:

- stands/;
- hierarchy/...;
- другие места.

Для каждого найденного стенда показать:

| Стенд | Источник | Родитель | Текущий путь | Требуемый путь | Данные реальные |
|---|---|---|---|---|---:|

Определить:

- к какому объекту относится стенд;
- должен ли он находиться внутри АС, ФП, модуля, подмодуля или ТК;
- имеется ли подтверждение непосредственного родителя;
- является ли существующий README заглушкой.

Если требования наставника не задают точный каталог стендов, не выдумывать
новую схему. Отдельно указать это как нерешённый вопрос.

======================================================================
5. ПРОВЕРИТЬ ТЕХНИЧЕСКИЕ РЕСУРСЫ
======================================================================

Найти все данные о технических ресурсах в:

- tech_resources/;
- technical_components/;
- hierarchy/;
- output/*.md;
- temp_html/*.html;
- целевой структуре as/.

Не смешивать:

- технический компонент;
- технический ресурс;
- стенд.

Для каждого технического ресурса показать:

| Ресурс | Тип | Источник | Родитель | Текущий путь | Реальные данные |
|---|---|---|---|---|---:|

Определить:

- существуют ли реальные записи;
- где они должны находиться;
- созданы ли в целевой иерархии;
- остались ли только в старой плоской структуре;
- являются ли README пустыми заглушками.

======================================================================
6. НАЙТИ СТАРЫЕ ПЛОСКИЕ КАТАЛОГИ
======================================================================

Проверить наличие:

projects/SNL/meta/hierarchy
projects/SNL/meta/modules
projects/SNL/meta/submodules
projects/SNL/meta/technical_components
projects/SNL/meta/stands
projects/SNL/meta/tech_resources
projects/SNL/meta/integration_interactions
projects/SNL/meta/interaction_points
projects/SNL/meta/integration_points

Для каждого каталога показать:

| Каталог | Количество файлов | Уникальные данные | Уже перенесены в as/ | Можно удалить позже |
|---|---:|---|---:|---:|

Каталог нельзя считать лишним, пока не подтверждено, что все уникальные
данные из него существуют в целевой структуре.

======================================================================
7. ПРОВЕРИТЬ README НА УНИКАЛЬНОСТЬ ДАННЫХ
======================================================================

Для старых и новых README сравнить:

- URL;
- META ID;
- название объекта;
- таблицы;
- атрибуты;
- описание;
- связи;
- API;
- стенды;
- ресурсы.

Определить, есть ли данные, которые пока существуют только в старых каталогах.

Составить таблицу:

| Старый файл | Новый файл | Данные совпадают | Уникальные данные старого файла |
|---|---|---:|---|

======================================================================
8. ПРОВЕРИТЬ ССЫЛКИ
======================================================================

Проверить Markdown-ссылки внутри:

projects/SNL/meta/as/SberGeo

Определить:

- не ведут ли они в старые каталоги;
- существуют ли целевые файлы;
- нет ли ссылок на удалённые или несуществующие пути;
- нет ли ссылок между дублями одного объекта.

Показать список неработающих или устаревших ссылок.

Ничего не исправлять.

======================================================================
9. ПРОВЕРИТЬ STRUCTURED_META_WRITER
======================================================================

Прочитать:

scripts/structured_meta_writer.py

Определить:

- создаёт ли он при каждой регенерации старые плоские каталоги;
- какие каталоги являются управляемыми writer;
- какие каталоги остались от старой версии;
- создаёт ли writer стенды и технические ресурсы;
- может ли writer снова восстановить удалённые старые каталоги;
- где реализована нормализация имён модулей и ТК;
- почему могут появляться SNL и СНЛ как разные каталоги.

Показать функции и условия, требующие возможного изменения.

======================================================================
10. СОПОСТАВИТЬ С ТРЕБОВАНИЯМИ НАСТАВНИКА
======================================================================

Проверить:

1. АС → ФП → ТК.
2. АС → ФП → Модуль → ТК.
3. АС → ФП → Модуль → Подмодуль → ТК.
4. README каждого архитектурного объекта.
5. Таблицы атрибутов.
6. Integration-flow уровня АС и ФП.
7. Integration уровня АС и ФП.
8. Integration-point уровня АС и ФП.
9. Отсутствие выдуманных связей.
10. Отсутствие межуровневых дублей.

Составить таблицу:

| Требование | Фактический статус | Доказательство | Что осталось |
|---|---|---|---|

======================================================================
11. ПЛАН МИНИМАЛЬНОГО ИСПРАВЛЕНИЯ
======================================================================

Предложить план без реализации:

1. какие подтверждённые дубли объединить;
2. какие каталоги оставить;
3. какие старые каталоги можно удалить только после переноса данных;
4. какие уникальные данные сначала перенести;
5. какие функции structured_meta_writer.py изменить;
6. нужно ли менять regenerate_reports.py;
7. требуется ли браузерный прогон;
8. какие вопросы нельзя решить без уточнения наставника.

Не выполнять план.

======================================================================
ФИНАЛЬНЫЙ ОТЧЁТ
======================================================================

# Этап 3.0 — аудит целевой структуры и старых каталогов

## Текущая целевая иерархия

## Дубли модулей

## Размещение технических компонентов

## Стенды

## Технические ресурсы

## Старые плоские каталоги

## Уникальные данные старой структуры

## Неработающие ссылки

## Поведение structured_meta_writer.py

## Соответствие требованиям наставника

## Что можно исправить офлайн

## Что требует уточнения наставника

## Минимальный план следующего этапа

В конце явно указать:

- количество подтверждённых дублей;
- количество вероятных, но неподтверждённых дублей;
- количество ТК с подтверждённым родителем;
- количество ТК с неопределённым родителем;
- есть ли реальные стенды;
- есть ли реальные технические ресурсы;
- можно ли уже безопасно удалить старую плоскую структуру;
- нужен ли повторный браузерный прогон.

Ничего не изменять и остановиться.