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


Ты работаешь на корпоративном MacBook.

Исходный рабочий проект находится здесь:

/Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp

Нужно создать отдельную копию проекта:

/Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp2

Цель:
В копии mvp2 доработать проект так, чтобы он максимально полно соответствовал второму заданию стажировки:

Скилл должен уметь выгружать в markdown-файлы текущую архитектуру АС:

1. Иерархию:
   АС > ФП > Модуль > Подмодуль > Тех-компонент

2. Точки взаимодействия + API

3. Интеграционные взаимодействия + API

4. Стенды

5. Технические ресурсы

Важно:
- Не изменяй исходный проект adt-markdownify-meta-mvp.
- Работай только в новой копии adt-markdownify-meta-mvp2.
- Не переписывай проект с нуля.
- Не удаляй уже работающие функции.
- Не ломай запуск через SberBrowser/Playwright.
- Не используй API META.
- Не используй requests/httpx/aiohttp/urllib.
- Не добавляй token/cookie/login/password.
- Не сохраняй cookies/sessionStorage/localStorage.
- Не делай авторизацию в коде.
- Авторизация только вручную через браузер.
- Не удаляй уже существующие отчеты.
- Не запускай старый проект.
- Все изменения делай только в mvp2.

Сначала сделай копию:

cp -R /Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp /Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp2

Затем перейди в копию:

cd /Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp2

Перед изменениями проанализируй текущую структуру проекта:

find . -maxdepth 3 -type f | sort

Обязательно изучи файлы:

- README.md
- SKILL.md
- DEMO.md
- meta_urls.txt
- meta_exporter.yaml
- meta_exporter.yaml.example
- run_exporter.py
- scripts/config_loader.py
- scripts/scrape_meta.py
- scripts/html_to_markdown.py
- scripts/markdown_writer.py
- output/HIERARCHY.md
- output/INTERACTION_POINTS.md
- output/INTEGRATION_INTERACTIONS.md
- output/API.md
- output/STANDS.md
- output/TECH_RESOURCES.md
- output/ARCHITECTURE_TREE.md
- output/INTERACTIONS.md
- output/LINK_DISCOVERY_REPORT.md
- output/EXPORT_REPORT.md
- output/README.md

Сначала напиши короткий отчет:

1. Какие требования задания уже закрыты.
2. Какие требования закрыты частично.
3. Что нужно доработать в mvp2.
4. Какие файлы будешь менять.
5. Какие файлы не будешь трогать.

После анализа выполни доработки.

---

## Часть 1. Улучшить meta_urls.txt

Нужно сделать так, чтобы meta_urls.txt был не черновым списком, а аккуратным списком страниц для полной архитектурной выгрузки.

В meta_urls.txt должны быть отдельные секции с комментариями:

# 1. Автоматизированная система
# 2. Функциональная подсистема
# 3. Модули
# 4. Подмодули
# 5. Точки взаимодействия + API
# 6. Интеграционные взаимодействия + API
# 7. Стенды
# 8. Технические ресурсы

Если точный URL раздела неизвестен, не выдумывай его. Оставь TODO-комментарий:

# TODO: вручную открыть раздел "Точки взаимодействия + API" в META и добавить URL
# TODO: вручную открыть раздел "Интеграционные взаимодействия + API" в META и добавить URL
# TODO: вручную открыть раздел "Стенды" в META и добавить URL
# TODO: вручную открыть раздел "Технические ресурсы" в META и добавить URL

Важно:
- Не добавляй шумные строки технических компонентов вида snl-..., DB..., Vault..., Proxy... как отдельные URL, если они уже извлекаются из страниц АС/ФП.
- Не добавляй URL без https://.
- Не добавляй неполные URL.
- Не добавляй дубликаты.
- Перед правкой создай резервную копию:

meta_urls.txt.before-mvp2.bak

---

## Часть 2. Добавить проверку полноты задания

Добавь новый отчет:

output/TASK_COVERAGE.md

Этот отчет должен создаваться при каждом запуске проекта.

В нем должна быть таблица:

| Требование задания | Статус | Откуда берутся данные | Комментарий |
|---|---|---|---|

Строки:

1. Иерархия АС > ФП > Модуль > Подмодуль > ТК
2. Точки взаимодействия + API
3. Интеграционные взаимодействия + API
4. Стенды
5. Технические ресурсы
6. Безопасность: нет API
7. Безопасность: нет token/cookie/login/password
8. Выгрузка HTML
9. Выгрузка Markdown
10. Индекс README.md
11. Отчет EXPORT_REPORT.md

Статусы:
- "Закрыто" — если данные реально найдены и отчет не пустой.
- "Частично" — если отчет создан, но данные получены только из общей страницы или есть TODO по точному URL.
- "Не закрыто" — если нет данных и нет URL.

Логика должна быть простой и надежной:
- если файл output/HIERARCHY.md существует и не пустой — иерархия закрыта;
- если output/INTERACTION_POINTS.md существует и содержит не только заголовки — ТчВ частично или закрыто;
- если output/INTEGRATION_INTERACTIONS.md существует и содержит не только заголовки — ИВ частично или закрыто;
- если output/STANDS.md существует и содержит данные — стенды частично или закрыто;
- если output/TECH_RESOURCES.md существует и содержит данные — техресурсы закрыты или частично;
- если в meta_urls.txt есть TODO по разделу — статус "Частично" или "Не закрыто" с комментарием "Нужен ручной URL".

Добавь функцию в scripts/markdown_writer.py:

write_task_coverage_report(output_dir: str, meta_urls_file: str) -> Path

И вызови ее после основного экспорта в scripts/scrape_meta.py.

---

## Часть 3. Разделить “извлечено автоматически” и “требует ручного URL”

Сейчас проект может создавать файлы INTERACTION_POINTS.md, INTEGRATION_INTERACTIONS.md, API.md, STANDS.md, TECH_RESOURCES.md даже если точная страница не была добавлена.

Нужно сделать так, чтобы внутри каждого такого отчета было понятно:

1. Что реально найдено автоматически.
2. Что не найдено.
3. Что нужно добавить вручную в meta_urls.txt.

Для файлов:

- output/INTERACTION_POINTS.md
- output/INTEGRATION_INTERACTIONS.md
- output/API.md
- output/STANDS.md
- output/TECH_RESOURCES.md

добавь в конец каждого отчета блок:

---

## Ограничение MVP

Этот отчет сформирован на основе уже выгруженных страниц META.

Для полной детализации нужно добавить в meta_urls.txt точный URL соответствующего раздела META, если он доступен в интерфейсе:

- Точки взаимодействия + API
- Интеграционные взаимодействия + API
- API
- Стенды
- Технические ресурсы

Если отдельная страница раздела не найдена автоматически, открой ее вручную в META, скопируй URL из адресной строки и добавь в meta_urls.txt.

Но не добавляй этот текст в каждый файл грубо руками. Лучше сделай общую функцию, например:

append_mvp_limitation(markdown: str, section_name: str) -> str

или добавь это в функции генерации отчетов в markdown_writer.py.

---

## Часть 4. Улучшить HIERARCHY.md

Файл output/HIERARCHY.md должен явно показывать структуру:

# Иерархия архитектуры META

## Автоматизированная система

- Геоинформационная система SberGeo

## Функциональные подсистемы

- SberGeo.СНЛ

## Модули

- СНЛ.Sowa SIGMA
- СНЛ.AI
- СНЛ.Запросы
- СНЛ.Расчеты
- СНЛ.Интеграции
- СНЛ.Интерфейс оператора данных
- СНЛ.Пользовательский интерфейс

## Подмодули

Если подмодули не найдены, явно написать:

- Не найдены в выгруженных страницах. Для полной выгрузки нужно добавить URL страниц модулей/подмодулей в meta_urls.txt.

## Технические компоненты

Список найденных технических компонентов.

Важно:
- Не выдумывай объекты.
- Используй только данные, которые уже реально извлекаются из HTML/Markdown.
- Если данных нет — честно пиши "Не найдено в выгруженных страницах".

---

## Часть 5. Улучшить LINK_DISCOVERY_REPORT.md

Файл output/LINK_DISCOVERY_REPORT.md должен помогать пользователю руками добрать недостающие ссылки.

Добавь в него раздел:

## Какие ссылки нужно найти вручную

Список:

1. Точки взаимодействия + API
   Где искать: левая панель META → Интеграции → Точки взаимодействия / API, если такой раздел есть.
   Что сделать: открыть раздел, скопировать URL из адресной строки, добавить в meta_urls.txt.

2. Интеграционные взаимодействия + API
   Где искать: левая панель META → Интеграции.
   Что сделать: открыть раздел, скопировать URL из адресной строки, добавить в meta_urls.txt.

3. Стенды
   Где искать: левая панель META → Стенды.
   Что сделать: открыть раздел, скопировать URL из адресной строки, добавить в meta_urls.txt.

4. Технические ресурсы
   Где искать: структура ФП/АС или карточки технических компонентов.
   Что сделать: если нужен детальный уровень ТК, добавить только важные URL ТК, а не все подряд.

Также добавь раздел:

## Найденные ссылки

Сгруппируй найденные ссылки по типам:
- АС
- ФП
- Модули
- ТК
- GAC/соответствие стандартам
- прочее

---

## Часть 6. Улучшить EXPORT_REPORT.md

В output/EXPORT_REPORT.md нужно добавить блок:

## Соответствие заданию

Таблица:

| Блок задания | Файл результата | Статус |
|---|---|---|
| Иерархия АС > ФП > Модуль > Подмодуль > ТК | HIERARCHY.md | ... |
| Точки взаимодействия + API | INTERACTION_POINTS.md | ... |
| Интеграционные взаимодействия + API | INTEGRATION_INTERACTIONS.md | ... |
| API | API.md | ... |
| Стенды | STANDS.md | ... |
| Технические ресурсы | TECH_RESOURCES.md | ... |

Статус должен быть честным:
- "Закрыто"
- "Частично"
- "Требует ручного URL"

---

## Часть 7. Обновить README.md

README.md должен выглядеть как README готового MVP, а не черновика.

Добавь или обнови разделы:

# adt-markdownify-meta-mvp2

## Назначение

Скилл выгружает страницы META через браузер и формирует Markdown-отчеты по архитектуре АС.

## Что выгружается

- Иерархия АС > ФП > Модуль > Подмодуль > ТК
- Точки взаимодействия + API
- Интеграционные взаимодействия + API
- API
- Стенды
- Технические ресурсы

## Как работает

1. Пользователь вручную авторизуется в SberBrowser.
2. Скрипт открывает URL из meta_urls.txt.
3. Получает HTML через Playwright.
4. Сохраняет HTML в temp_html/.
5. Конвертирует HTML в Markdown.
6. Формирует отчеты в output/.

## Безопасность

- API не используется.
- Токены не используются.
- Cookies не сохраняются.
- Логины/пароли не сохраняются.
- Авторизация выполняется вручную в браузере.

## Ограничения MVP

- Полнота выгрузки зависит от URL в meta_urls.txt.
- Если отдельные разделы META не найдены автоматически, их нужно открыть вручную и добавить URL.
- Некоторые данные могут извлекаться из общей страницы ФП/АС, а не из отдельной страницы раздела.

## Файлы результата

Опиши каждый файл:

- output/HIERARCHY.md
- output/INTERACTION_POINTS.md
- output/INTEGRATION_INTERACTIONS.md
- output/API.md
- output/STANDS.md
- output/TECH_RESOURCES.md
- output/TASK_COVERAGE.md
- output/LINK_DISCOVERY_REPORT.md
- output/EXPORT_REPORT.md
- output/README.md

## Запуск

Оставь команды:

cd /Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp2
source .venv/bin/activate
python run_exporter.py

## Проверка

python -m py_compile run_exporter.py scripts/config_loader.py scripts/scrape_meta.py scripts/html_to_markdown.py scripts/markdown_writer.py

---

## Часть 8. Обновить SKILL.md

SKILL.md должен описывать именно skill для GigaCode.

Добавь:

# adt-markdownify-meta-mvp2

## Назначение skill-а

Выгрузка архитектуры АС из META в Markdown.

## Входные данные

- meta_urls.txt
- meta_exporter.yaml

## Выходные данные

- output/HIERARCHY.md
- output/INTERACTION_POINTS.md
- output/INTEGRATION_INTERACTIONS.md
- output/API.md
- output/STANDS.md
- output/TECH_RESOURCES.md
- output/TASK_COVERAGE.md
- output/EXPORT_REPORT.md
- output/README.md

## Правила безопасности

- Не использовать API.
- Не использовать токены.
- Не использовать cookies.
- Не сохранять авторизационные данные.
- Не выполнять login/password в коде.

## Алгоритм

1. Прочитать конфиг.
2. Прочитать meta_urls.txt.
3. Открыть страницы через SberBrowser/Playwright.
4. Получить HTML.
5. Сохранить HTML.
6. Конвертировать в Markdown.
7. Построить отчеты.
8. Сформировать отчет покрытия задания.

## Ограничения

- Если нет точного URL раздела META, отчет создается как частичный.
- Для полной выгрузки пользователь должен добавить URL вручную.

---

## Часть 9. Добавить DEMO_MVP2.md

Создай файл:

DEMO_MVP2.md

В нем должен быть сценарий демонстрации наставнику:

# Демонстрация adt-markdownify-meta-mvp2

## 1. Что показать

1. meta_urls.txt
2. README.md
3. SKILL.md
4. Запуск python run_exporter.py
5. output/EXPORT_REPORT.md
6. output/TASK_COVERAGE.md
7. output/HIERARCHY.md
8. output/INTERACTION_POINTS.md
9. output/INTEGRATION_INTERACTIONS.md
10. output/STANDS.md
11. output/TECH_RESOURCES.md

## 2. Что сказать

Текст:

Это MVP skill-а для выгрузки архитектуры из META в Markdown. Он работает через браузер, не использует API и не хранит авторизационные данные. Полнота выгрузки зависит от списка URL в meta_urls.txt. Если отдельные разделы META не найдены автоматически, их URL можно добавить вручную.

## 3. Что уже закрыто

- Иерархия архитектуры
- Технические компоненты
- Markdown-выгрузка
- HTML-архив
- Отчеты по взаимодействиям/API/стендам/техресурсам
- Отчет покрытия задания

## 4. Что является ограничением MVP

- Ручное добавление URL для некоторых разделов META.
- Нет API-доступа.
- Нет автоматической авторизации.

---

## Часть 10. Проверка

После всех изменений выполни:

python -m py_compile run_exporter.py scripts/config_loader.py scripts/scrape_meta.py scripts/html_to_markdown.py scripts/markdown_writer.py

После py_compile выполни тестовый запуск:

source .venv/bin/activate
python run_exporter.py

После запуска проверь наличие файлов:

ls -la output
ls -la temp_html

Проверь, что появились или обновились:

- output/HIERARCHY.md
- output/INTERACTION_POINTS.md
- output/INTEGRATION_INTERACTIONS.md
- output/API.md
- output/STANDS.md
- output/TECH_RESOURCES.md
- output/TASK_COVERAGE.md
- output/LINK_DISCOVERY_REPORT.md
- output/EXPORT_REPORT.md
- output/README.md

---

## Финальный ответ

В конце покажи отчет:

# adt-markdownify-meta-mvp2 — итог

## 1. Где создана копия

Путь к mvp2.

## 2. Какие файлы изменены

Список.

## 3. Какие файлы добавлены

Список.

## 4. Какие требования задания закрыты

Таблица:

| Требование | Статус | Файл |
|---|---|---|

## 5. Какие ограничения остались

Список.

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

Коротко.

## 7. Результат тестового запуска

Сколько URL было, сколько успешно, сколько ошибок.

## 8. Команды для ручного запуска

cd /Users/23865613/IdeaProjects/untitled/adt-markdownify-meta-mvp2
source .venv/bin/activate
python run_exporter.py

Главная цель:
Сделать mvp2 максимально похожим на полноценный skill для GigaCode, который можно показать наставнику как завершенный MVP по второму заданию стажировки.