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


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

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

Офлайн-проверка завершена. Код, иерархию и размещение существующих 24 ТК
без необходимости больше не изменяй.

Текущая задача — выполнить полноценный браузерный прогон через SberBrowser
и закрыть два частично выполненных требования:

1. реальные атрибуты АС и ФП;
2. проверка и структурирование стендов.

Дополнительно подтвердить отсутствие или наличие:

- integration-flow;
- integration;
- самостоятельных технических ресурсов.

Не выполнять git commit и git push.

======================================================================
1. БЕЗОПАСНОСТЬ
======================================================================

META используется только в read-only режиме.

Запрещено:

- POST;
- PUT;
- PATCH;
- DELETE;
- вводить логин, пароль или токен программно;
- сохранять cookies;
- читать localStorage или sessionStorage;
- использовать API META;
- использовать requests, httpx, aiohttp или urllib для META;
- нажимать кнопки сохранения, создания, редактирования или отправки.

Разрешено:

- открыть URL;
- читать DOM;
- переходить по вкладкам;
- раскрывать безопасные секции;
- прокручивать таблицы;
- сохранять HTML.

Авторизацию выполняет пользователь вручную.

Если META требует авторизацию:

1. открыть SberBrowser;
2. остановиться;
3. вывести сообщение:
   «Выполните ручную авторизацию в META и подтвердите продолжение»;
4. продолжить только после подтверждения пользователя.

======================================================================
2. НЕ ПЕРЕЗАПИСЫВАТЬ КОРРЕКТНУЮ ИЕРАРХИЮ
======================================================================

Существующая структура подтверждена:

projects/SNL/meta/as/SberGeo/
└── fp/SberGeo.СНЛ/
    ├── module/
    ├── tk/
    └── integration-point/

24 ТК находятся на уровне ФП корректно.

Не переносить ТК в module/ или submodule/, если браузерный прогон не найдёт
прямую связь по:

- breadcrumb;
- META URL;
- META ID;
- структурной ссылке страницы.

Не создавать связи по похожим названиям.

======================================================================
3. ВЫПОЛНИТЬ ПОЛНЫЙ БРАУЗЕРНЫЙ ПРОГОН
======================================================================

Запустить основной экспорт проекта через SberBrowser.

Использовать существующую команду запуска из README.md или конфигурации
проекта.

Не ограничиваться запуском:

python scripts/regenerate_reports.py

Нужно запустить именно браузерный сборщик, который:

- открывает страницы META;
- раскрывает вкладки;
- прокручивает виртуальные таблицы;
- сохраняет полный DOM в temp_html/.

Для каждой страницы дождаться окончания загрузки.

Проверить, что вместо HTML-каркаса сохранены реальные строки таблиц.

======================================================================
4. АТРИБУТЫ АС
======================================================================

Открыть страницу АС SberGeo.

Перейти на вкладку «Атрибуты».

Полностью раскрыть и сохранить разделы:

- Карточка АС;
- Ответственность;
- Дополнительные атрибуты;
- Технические атрибуты.

Если таблицы виртуализированы:

- прокручивать каждую таблицу до конца;
- сохранять все строки;
- не ограничиваться видимыми строками;
- проверить количество строк до сохранения HTML.

После сбора сформировать:

projects/SNL/meta/as/SberGeo/attributes/README.md

Каждый раздел должен содержать Markdown-таблицу с реальными строками:

| Поле | Значение |
|---|---|

Не оставлять таблицы только с заголовком.

======================================================================
5. АТРИБУТЫ ФП
======================================================================

Открыть страницу ФП SberGeo.СНЛ.

Перейти на вкладку «Атрибуты».

Аналогично полностью выгрузить:

- Карточку объекта;
- Ответственность;
- Дополнительные атрибуты;
- Технические атрибуты.

Сохранить результат в:

projects/SNL/meta/as/SberGeo/fp/SberGeo.СНЛ/attributes/README.md

Данные АС и ФП не смешивать.

Каждую страницу обрабатывать независимо.

======================================================================
6. СТЕНДЫ
======================================================================

Открыть реальный раздел META, содержащий стенды.

Проверить строки:

- Major-GO;
- DEV;
- ПРОМ;
- Major-Check.

Для каждой строки определить:

- является ли она самостоятельным объектом META;
- является ли она значением поля;
- имеется ли META URL;
- имеется ли META ID;
- какой объект является родителем;
- имеются ли дополнительные поля.

Если это самостоятельные объекты, создать:

projects/SNL/meta/as/{AS}/stands/{NAME}/README.md

или:

projects/SNL/meta/as/{AS}/fp/{FP}/stands/{NAME}/README.md

в зависимости от подтверждённого родителя.

Если это не самостоятельные объекты, не создавать ложные каталоги.
Сохранить таблицу стендов в README родительского раздела и зафиксировать
результат в REQUIREMENTS_REPORT.md.

======================================================================
7. INTEGRATION-FLOW И INTEGRATION
======================================================================

Открыть страницы:

- интеграционных взаимодействий;
- технологических взаимодействий;
- информационных потоков;
- точек взаимодействия.

Полностью прокрутить таблицы.

Проверить, существуют ли реальные объекты:

- integration-flow;
- integration;
- integration-point.

Название страницы или раздела не является объектом.

Не создавать каталоги с именами:

- Интеграционные взаимодействия;
- Технологические взаимодействия;
- Точки взаимодействия;
- Инфопотоки;
- unknown;
- Наименование;
- В эксплуатации.

Если реальные integration-flow или integration существуют, создать отдельный
каталог для каждого объекта у подтверждённого родителя.

Если после полного просмотра объектов нет, сохранить статус:

«Не применимо: отдельные объекты отсутствуют в данных META».

Пять существующих interaction-point должны остаться только на уровне ФП.

======================================================================
8. ТЕХНИЧЕСКИЕ РЕСУРСЫ
======================================================================

Открыть раздел технических ресурсов.

Проверить, являются ли данные в output/TECH_RESOURCES.md:

- самостоятельными техническими ресурсами;
- повторным списком технических компонентов.

Не создавать дубли 24 ТК.

Если обнаружены самостоятельные ресурсы, создать README для каждого объекта
у подтверждённого родителя.

Если самостоятельных ресурсов нет, установить статус:

«Не применимо: самостоятельные технические ресурсы отсутствуют в META».

======================================================================
9. ОБНОВИТЬ ЦЕЛЕВУЮ СТРУКТУРУ
======================================================================

После браузерного сбора запустить штатную генерацию структуры:

projects/SNL/meta

Проверить:

- реальные атрибуты появились в attributes/README.md;
- строки таблиц не потерялись;
- стенды обработаны;
- integration-flow и integration проверены;
- технические ресурсы проверены;
- ТК не переместились без подтверждённых связей;
- дубли не появились.

======================================================================
10. ПРОВЕРКИ
======================================================================

Выполнить:

python -m py_compile run_exporter.py scripts/*.py

python scripts/regenerate_reports.py

Создать контрольные суммы:

find projects/SNL/meta -type f -print0 |
  sort -z |
  xargs -0 shasum > /tmp/meta-browser-first.sha

Повторно выполнить:

python scripts/regenerate_reports.py

Создать вторые контрольные суммы:

find projects/SNL/meta -type f -print0 |
  sort -z |
  xargs -0 shasum > /tmp/meta-browser-second.sha

Сравнить:

diff -u /tmp/meta-browser-first.sha /tmp/meta-browser-second.sha

Ожидаемый результат — пустой diff.

======================================================================
11. ОБНОВИТЬ ОТЧЁТЫ
======================================================================

Обновить:

output/TASK_COVERAGE.md
output/REQUIREMENTS_REPORT.md
output/UNMIGRATED_META_DATA.md

В TASK_COVERAGE:

- атрибуты отметить «Закрыто» только при наличии реальных строк;
- стенды отметить «Закрыто» или «Не применимо» по фактическому результату;
- integration-flow и integration отметить по результату полного просмотра;
- технические ресурсы отметить по результату полного просмотра;
- не учитывать Git-ветку;
- не считать индексный README реальным объектом.

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

В конце вывести:

# Результат браузерного прогона META

## Авторизация

## Запущенная команда

## Обработанные URL

## Сохранённые HTML

## Атрибуты АС

## Атрибуты ФП

## Стенды

## Integration-flow

## Integration

## Integration-point

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

## Иерархия ТК

## Результат py_compile

## Идемпотентность

## Обновлённые отчёты

## Итоговая таблица

Формат:

| Требование | Статус | Доказательство |
|---|---|---|

Отдельно указать:

- число строк каждой таблицы атрибутов;
- число обнаруженных стендов;
- число integration-flow;
- число integration;
- число integration-point;
- число самостоятельных технических ресурсов;
- какие URL были полностью обработаны;
- какие страницы не удалось загрузить;
- остались ли частично выполненные требования.

Не выполнять commit и push.

После завершения остановиться.