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


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

Сейчас задача НЕ дорабатывать функциональность, а привести папку zadanie2 в полностью рабочее состояние.

Текущая папка задания:

/Users/23865613/IdeaProjects/untitled/zadanie2

Рабочий проект сейчас найден здесь:

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

По итогам проверки:
- Git-ветка features/adt-markdownify-meta создана
- remote подключен: ssh://sc@api.sc-ci.sber.ru:7998/snl/snl-ai-spec.git
- py_compile прошел
- meta_exporter.yaml создан из example
- SberBrowser указан в конфиге
- но .venv отсутствует
- зависимости не установлены
- output/ и temp_html/ не созданы
- тестовый запуск не выполнен
- значит папка zadanie2 еще не полностью готова к дальнейшей работе

Нужно аккуратно довести папку zadanie2 до рабочего состояния.

Важно:
- Не переписывай проект с нуля.
- Не меняй логику выгрузки.
- Не начинай Этап 2 по структурированной выгрузке.
- Не используй API META.
- Не используй requests/httpx/aiohttp/urllib для обращения к META.
- Не добавляй token/cookie/login/password.
- Не сохраняй cookies/sessionStorage/localStorage.
- Не создавай и не редактируй объекты META.
- Skill остается read-only.
- Ничего не пушь в git.
- Работай только внутри /Users/23865613/IdeaProjects/untitled/zadanie2/source_project.

Что нужно сделать:

1. Перейти в рабочий проект:

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

2. Проверить структуру:

pwd
find . -maxdepth 4 -type f | sort

3. Убедиться, что есть обязательные файлы:

- run_exporter.py
- requirements.txt
- README.md
- SKILL.md
- meta_urls.txt
- meta_exporter.yaml
- meta_exporter.yaml.example
- scripts/config_loader.py
- scripts/scrape_meta.py
- scripts/html_to_markdown.py
- scripts/markdown_writer.py

Если каких-то обязательных файлов нет, найти их в старом рабочем проекте:

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

и скопировать в source_project, сохранив структуру.

4. Проверить, есть ли готовый skill:

source_project/.gigacode/skills/adt-markdownify-meta/

Если папки нет, создать ее и положить туда все файлы skill-а, которые нужны для публикации:

.gigacode/skills/adt-markdownify-meta/
├── README.md
├── SKILL.md
├── meta_exporter.yaml.example
├── meta_urls.txt
├── requirements.txt
├── run_exporter.py
└── scripts/

В scripts должны попасть все Python-файлы, которые реально нужны для запуска:

- config_loader.py
- scrape_meta.py
- html_to_markdown.py
- markdown_writer.py
- link_discovery.py, если используется
- integration_interactions_parser.py, если используется
- structured_meta_writer.py, если уже есть и используется
- любые другие scripts/*.py, которые импортируются проектом

Важно:
не копируй туда:
- .venv
- output
- temp_html
- *.bak
- *.log
- __pycache__
- локальный meta_exporter.yaml, если он содержит пользовательские пути

5. Создать .gitignore в source_project, если его нет.

В .gitignore должны быть:

.venv/
output/
temp_html/
__pycache__/
*.pyc
*.pyo
*.bak
*.bak2
*.log
.DS_Store
meta_exporter.yaml
final_run.log
run_export_output.txt

6. Создать виртуальное окружение, если его нет:

python3 -m venv .venv

7. Активировать окружение:

source .venv/bin/activate

8. Установить зависимости:

python -m pip install --upgrade pip
python -m pip install -r requirements.txt

Если установка зависимостей падает из-за корпоративного pip/сертификата/прокси, не пытайся бесконечно чинить. Сразу выведи:
- точную ошибку;
- какой пакет не установился;
- какую команду нужно выполнить вручную;
- что нужно спросить у наставника или админа.

9. После установки зависимостей проверить импорты:

python - <<'PY'
import yaml
import bs4
import html2text
import playwright
print("IMPORTS OK")
PY

10. Выполнить py_compile:

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

11. Создать пустые папки, если их нет:

mkdir -p output
mkdir -p temp_html

12. Проверить SberBrowser в конфиге:

cat meta_exporter.yaml

Убедиться, что там указан:

browser:
  type: "sberbrowser"

Если в конфиге Chromium — заменить на SberBrowser.

13. Проверить путь к SberBrowser.

Нужно проверить возможные стандартные пути:

ls -la /Applications/SberBrowser.app
ls -la /Applications/SberBrowser.app/Contents/MacOS/SberBrowser

Если путь другой — попробовать найти:

find /Applications -maxdepth 3 -iname "*Sber*" 2>/dev/null

Если SberBrowser найден, указать путь в отчете.
Если не найден — честно написать, что SberBrowser не найден и запуск через браузер невозможен до установки.

14. Если зависимости установлены и SberBrowser найден, выполнить тестовый запуск:

python run_exporter.py

Если запуск требует ручной авторизации, открыть браузер и дождаться ручного входа пользователя.
Если запуск зависает из-за авторизации — остановить и написать, что нужна ручная авторизация в SberBrowser.

15. После запуска проверить:

ls -la output
ls -la temp_html

Проверить наличие ключевых файлов:

output/HIERARCHY.md
output/INTERACTION_POINTS.md
output/INTEGRATION_INTERACTIONS.md
output/STANDS.md
output/TECH_RESOURCES.md
output/TASK_COVERAGE.md
output/EXPORT_REPORT.md

16. Проверить git status:

git status

17. В конце дать отчет:

# Подготовка zadanie2 завершена

## 1. Где находится рабочий проект

Путь.

## 2. Какая ветка активна

Название ветки.

## 3. Какие обязательные файлы есть

Таблица:
| Файл | Статус |
|---|---|

## 4. Что было докопировано из старого проекта

Список.

## 5. Готов ли .gigacode/skills/adt-markdownify-meta

Да/нет и список файлов внутри.

## 6. Создано ли виртуальное окружение

Да/нет.

## 7. Установлены ли зависимости

Да/нет.

## 8. Результат проверки импортов

Коротко.

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

Коротко.

## 10. Найден ли SberBrowser

Путь или причина, почему не найден.

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

- выполнен / не выполнен;
- если выполнен: сколько страниц выгружено, сколько ошибок;
- если не выполнен: точная причина.

## 12. Какие output-файлы появились

Список.

## 13. Готов ли проект к Этапу 2

Честно:
- Да, если зависимости установлены, py_compile прошел, структура полная.
- Нет, если не установлен SberBrowser или зависимости.

Главная цель:
Сделать так, чтобы /Users/23865613/IdeaProjects/untitled/zadanie2/source_project был полноценной рабочей копией проекта, а не неполным набором файлов.