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


Продолжаем адаптацию Ralph Loop для skill-а adt-markdownify-meta.

Локальный репозиторий:

/Users/23865613/snl-ai-spec

Skill:

/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta

Ralph Loop:

/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta/ralph-loop

Сейчас нужно адаптировать:

- MAIN_GOAL.md
- AGENTS.md
- run-gigacode.sh

Ralph Loop пока не запускать.

Не выполнять:

- git add;
- git commit;
- git push;
- git pull;
- git fetch;
- запуск run_exporter.py;
- запуск браузера;
- изменение META;
- удаление файлов;
- создание goal_done.md;
- создание progress-файлов.

Перед изменениями создай резервные копии трёх файлов с суффиксом `.before-meta`.

======================================================================
1. ПЕРЕПИСАТЬ MAIN_GOAL.md
======================================================================

Полностью замени старую задачу service-doc-generator на следующую цель.

Содержимое MAIN_GOAL.md должно быть таким:

# Инструкция для Ralph Loop: завершение adt-markdownify-meta

## Цель

Довести GigaCode skill `adt-markdownify-meta` до состояния, в котором он
воспроизводимо выполняет read-only выгрузку существующей архитектуры из
META в Markdown через вручную авторизованный SberBrowser и Playwright.

Skill расположен в:

`/Users/23865613/snl-ai-spec/.gigacode/skills/adt-markdownify-meta`

Результат структурированной выгрузки должен сохраняться в:

`/Users/23865613/snl-ai-spec/projects/SNL/meta`

## Источники данных

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

- `meta_urls.txt`;
- `meta_exporter.yaml`;
- существующие HTML-файлы в `temp_html`, если они доступны;
- страницы META, открываемые через SberBrowser/Playwright;
- существующие отчёты и Markdown-файлы проекта.

Сейчас в `meta_urls.txt` содержится 41 URL.

## Основной алгоритм

На каждой итерации:

1. Прочитать этот файл.
2. Прочитать предыдущие `progress/*.done.md`.
3. Проанализировать текущее состояние skill-а.
4. Выбрать только одно незакрытое требование.
5. Внести минимальное изменение.
6. Проверить синтаксис Python.
7. Выполнить доступные локальные проверки.
8. Проверить фактическое содержимое создаваемых Markdown-файлов.
9. Записать отчёт текущей итерации.
10. Завершить процесс с exit code 0.

Не пытаться закрыть всю задачу одной большой переработкой.

## Требования к результату

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

Выгрузить подтверждённую иерархию:

`АС → ФП → Модуль → Подмодуль → Технический компонент`

Также поддержать варианты:

- `АС → ФП → ТК`;
- `АС → ФП → Модуль → ТК`;
- `АС → ФП → Модуль → Подмодуль → ТК`.

Не выдумывать родительские связи.

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

### 2. Структурированный результат

Использовать структуру:

- `projects/SNL/meta/as/{AS_NAME}/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/attributes/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/attributes/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/module/{MODULE_NAME}/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/module/{MODULE_NAME}/submodule/{SUBMODULE_NAME}/README.md`;
- `projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/tk/{TK_NAME}/README.md`;
- `integration/README.md`;
- `integration-point/README.md`;
- `integration-flow/README.md`.

### 3. Атрибуты

Выгрузить вкладку «Атрибуты», включая:

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

Сохранять таблицы в Markdown как таблицы.

### 4. Интеграции

Выгрузить:

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

### 5. Стенды и технические ресурсы

Выгрузить:

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

### 6. Полнота DOM

Перед сохранением HTML:

- дождаться SPA-рендеринга;
- раскрыть безопасные read-only элементы;
- прокрутить виртуализированные таблицы;
- обработать «Показать ещё», «Развернуть» и аналогичные элементы;
- не нажимать кнопки создания, сохранения, редактирования или удаления.

### 7. Качество Markdown

Markdown должен:

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

### 8. Read-only ограничения

Запрещено:

- использовать API META;
- выполнять POST, PUT, PATCH или DELETE;
- создавать, изменять или удалять объекты META;
- нажимать кнопки записи;
- сохранять логин, пароль, token, cookie;
- сохранять sessionStorage или localStorage;
- выполнять автоматическую авторизацию;
- печатать секреты.

Доступ к META осуществляется только через вручную авторизованный SberBrowser.

### 9. Git-ограничения

Ralph Loop не должен выполнять:

- git add;
- git commit;
- git push;
- git pull;
- git fetch;
- git reset;
- git clean;
- git restore;
- изменение веток.

Git-действия будут выполнены пользователем отдельно после проверки результата.

### 10. Обязательные проверки

После каждого изменения выполнять:

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

Когда применимо, выполнять:

`python scripts/regenerate_reports.py`

Не запускать полный браузерный экспорт без явной необходимости.

Если для проверки нужен SberBrowser, сначала записать это в отчёт итерации,
но не запускать автоматически без отдельного разрешения пользователя.

## Текущее известное состояние

На момент начала Ralph Loop:

- обработка 41 URL ранее завершалась успешно;
- `py_compile` проходит;
- существуют скрипты:
  - `structured_meta_writer.py`;
  - `meta_page_expander.py`;
  - `regenerate_reports.py`;
  - `offline_report_generator.py`;
- результат сохраняется в `projects/SNL/meta`;
- Ralph Loop ранее не запускался.

Перед изменениями обязательно проверить фактическое текущее состояние.

## Критерии завершения

Цель считается выполненной только если одновременно выполнено всё:

1. `python -m py_compile run_exporter.py scripts/*.py` завершается успешно.
2. Все 41 URL учтены.
3. Необработанные URL отсутствуют либо имеют подтверждённую причину.
4. Структура `projects/SNL/meta` создана.
5. Иерархия содержит только подтверждённые связи.
6. Атрибуты сохраняются в табличном формате.
7. Интеграции разложены по нужным каталогам.
8. Markdown читаемый и не содержит явного HTML-мусора.
9. Read-only ограничения соблюдены.
10. Повторная офлайн-регенерация создаёт согласованный результат.
11. Не выполнено ни одного Git write-действия.
12. Итоговое состояние отражено в `TASK_COVERAGE.md`.

Только после проверки всех критериев рецензент может создать:

`progress/{N}.goal_done.md`

Файл должен содержать доказательства выполнения каждого критерия.

======================================================================
2. АДАПТИРОВАТЬ AGENTS.md
======================================================================

Не переписывай весь универсальный протокол, но измени обязательные правила.

Удалить или заменить инструкции:

- «Сделай commit»;
- «Сделай push»;
- любые требования git add/commit/push.

Добавить в AGENTS.md отдельный раздел:

## Ограничения adt-markdownify-meta

1. Работай только в каталоге skill-а и `projects/SNL/meta`.
2. Не используй API META.
3. Не выполняй операции записи в META.
4. Не выполняй git add, commit, push, pull, fetch, reset, clean или restore.
5. Не изменяй ветку.
6. Не запускай полный браузерный экспорт без явного разрешения пользователя.
7. Не сохраняй credentials, cookies, tokens, sessionStorage или localStorage.
8. Не объявляй задачу завершённой только по наличию файлов.
9. Проверяй фактическое содержимое Markdown.
10. Не выдумывай родительские связи.
11. После каждой итерации выполняй py_compile.
12. В отчёте указывай:
    - изменённые файлы;
    - выполненные проверки;
    - фактический результат;
    - оставшиеся требования.
13. Заверши процесс с exit code 0.
14. Не создавай commit и не отправляй изменения в репозиторий.

Роли исполнитель/рецензент сохранить.

======================================================================
3. АДАПТИРОВАТЬ run-gigacode.sh
======================================================================

Не меняй принцип Ralph Loop, но добавь защиту от бесконечного цикла.

Добавить:

`MAX_ITERATIONS="${MAX_ITERATIONS:-12}"`

Перед запуском очередной итерации проверить:

если следующий номер итерации больше MAX_ITERATIONS, вывести сообщение и
завершить цикл с ненулевым кодом без создания goal_done.md.

Также перед запуском проверить наличие:

- MAIN_GOAL.md;
- AGENTS.md.

Создать каталог progress, если он отсутствует.

Добавить безопасный режим по умолчанию:

- не передавать агенту отдельное разрешение на Git write-действия;
- системный промт должен явно запрещать git add/commit/push/pull/fetch;
- сохранить возможность чтения файлов, изменения файлов и запуска локальных проверок.

Не менять модель по умолчанию.

Не запускать скрипт после изменения.

======================================================================
4. ПРОВЕРКИ ПОСЛЕ ИЗМЕНЕНИЙ
======================================================================

После редактирования:

1. Выполни shell-проверку:

`bash -n ralph-loop/run-gigacode.sh`

2. Покажи полный diff трёх файлов:

- MAIN_GOAL.md;
- AGENTS.md;
- run-gigacode.sh.

3. Проверь, что в них больше нет активных инструкций:

- git add;
- git commit;
- git push;
- git pull;
- git fetch;
- adt-service-doc-generator;
- adt-repo-manager;
- adt-fs-marker-tools;
- config/repos.yaml;
- docs/services;
- repos/{service_name}.

Упоминания могут остаться только в описании запрещённых действий.

4. Не запускай Ralph Loop.

5. Не выполняй commit или push.

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

# Адаптация Ralph Loop завершена

## Изменённые файлы

## Результат bash -n

## Git-команды, удалённые из инструкций

## Добавленный лимит итераций

## Условие создания goal_done.md

## Оставшиеся риски

## Готовность к пробному запуску

Ответить «готов», только если скрипт синтаксически корректен и старые инструкции service-doc-generator удалены.