Загрузка данных
Ты работаешь только в проекте:
/Users/23865613/IdeaProjects/untitled/zadanie2/source_project
Нужно провести независимый аудит текущего состояния второго задания
adt-markdownify-meta и определить, насколько проект соответствует требованиям.
Это только проверка.
На этом этапе запрещено:
- изменять любые файлы;
- удалять или перемещать каталоги;
- запускать браузер;
- обращаться к META;
- запускать run_exporter.py;
- выполнять git checkout, switch, add, commit, push;
- выполнять reset, clean, restore или stash;
- устанавливать зависимости;
- исправлять обнаруженные ошибки.
Используй только уже существующие файлы:
- projects/SNL/meta/;
- output/;
- temp_html/;
- scripts/;
- README.md;
- SKILL.md;
- конфигурационные файлы.
======================================================================
1. ОБЩЕЕ СОСТОЯНИЕ ПРОЕКТА
======================================================================
Покажи:
pwd
git rev-parse --show-toplevel
git branch --show-current
git status --short
Покажи структуру верхнего уровня:
find . -maxdepth 2 -type d | sort
Покажи количество файлов:
find projects/SNL/meta -type f | wc -l
find output -type f | wc -l
find temp_html -type f | wc -l
Не изменяй Git-состояние.
======================================================================
2. ПРОВЕРКА ЦЕЛЕВОЙ СТРУКТУРЫ
======================================================================
Проверь содержимое:
projects/SNL/meta
На верхнем уровне внутри projects/SNL/meta должны находиться только:
- README.md, если он используется как индекс;
- as/.
Проверить отсутствие старых плоских каталогов:
- hierarchy/;
- modules/;
- submodules/;
- technical_components/;
- technicalComponents/;
- integration_interactions/;
- interaction_points/;
- integration_points/;
- stands/;
- tech_resources/.
Покажи результат:
find projects/SNL/meta -maxdepth 2 -type d | sort
Если старые каталоги присутствуют, только зафиксируй это как несоответствие.
Не удаляй их.
======================================================================
3. ПРОВЕРКА ИЕРАРХИИ
======================================================================
Требуемая иерархия:
АС → ФП → Модуль → Подмодуль → ТК
Поддерживаемые варианты:
1. АС → ФП → ТК
2. АС → ФП → Модуль → ТК
3. АС → ФП → Модуль → Подмодуль → ТК
Ожидаемые шаблоны:
projects/SNL/meta/as/{AS_NAME}/README.md
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/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
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/module/{MODULE_NAME}/tk/{TK_NAME}/README.md
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/module/{MODULE_NAME}/submodule/{SUBMODULE_NAME}/tk/{TK_NAME}/README.md
Покажи фактическое дерево:
find projects/SNL/meta/as -type f -name README.md | sort
Подсчитай:
- количество АС;
- количество ФП;
- количество модулей;
- количество подмодулей;
- количество ТК на уровне АС;
- количество ТК на уровне ФП;
- количество ТК внутри модулей;
- количество ТК внутри подмодулей.
Для каждого ТК определить родителя по его фактическому пути.
Не считать отсутствием функциональности случаи, когда связь
«модуль → ТК» или «подмодуль → ТК» отсутствует в сохранённых данных META.
======================================================================
4. ПРОВЕРКА УНИКАЛЬНОСТИ ОБЪЕКТОВ
======================================================================
Для каждого README архитектурного объекта извлечь:
- тип объекта;
- название;
- META URL;
- META ID.
Проверить:
- одинаковый META ID в нескольких каталогах;
- одинаковый META URL в нескольких каталогах;
- одинаковый объект на уровнях АС и ФП;
- каталоги-дубли с латинским и кириллическим названием;
- пустые README.md;
- README без META URL;
- README без типа объекта.
Не считать индексные README.md архитектурными объектами.
Показать отдельные таблицы:
| META ID | Пути |
|---|---|
| META URL | Пути |
|---|---|
| Возможный дубль названия | Пути | Основание |
|---|---|---|
======================================================================
5. ПРОВЕРКА АТРИБУТОВ
======================================================================
Проверить файлы:
projects/SNL/meta/as/*/attributes/README.md
projects/SNL/meta/as/*/fp/*/attributes/README.md
Требуемые разделы:
- Карточка АС или Карточка объекта;
- Ответственность;
- Дополнительные атрибуты;
- Технические атрибуты.
Проверить:
- присутствуют ли разделы;
- содержатся ли реальные Markdown-таблицы;
- присутствует ли строка разделителя `|---`;
- есть ли реальные строки данных;
- не являются ли файлы только сводкой;
- не ссылаются ли они только на данные в output/;
- не смешаны ли данные АС и ФП;
- не дублируются ли таблицы.
Показать для АС и ФП:
| Уровень | Раздел | Таблица найдена | Строк данных | Статус |
|---|---|---:|---:|---|
Статусы:
- Закрыто;
- Частично;
- Не закрыто;
- Не применимо.
Наличие только заголовка или ссылки на output/ не считать полной выгрузкой
вкладки «Атрибуты».
======================================================================
6. ПРОВЕРКА ИНТЕГРАЦИЙ
======================================================================
Проверить уровень АС:
projects/SNL/meta/as/{AS_NAME}/integration-flow/
projects/SNL/meta/as/{AS_NAME}/integration/
projects/SNL/meta/as/{AS_NAME}/integration-point/
Проверить уровень ФП:
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/integration-flow/
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/integration/
projects/SNL/meta/as/{AS_NAME}/fp/{FP_NAME}/integration-point/
Для каждого типа подсчитать:
- индексные README.md;
- реальные дочерние объекты;
- пустые каталоги;
- ложные объекты;
- дубли между уровнями АС и ФП.
Ложными считать каталоги с названиями страниц или разделов:
- unknown;
- Интеграционные взаимодействия;
- Точки взаимодействия;
- Стенды;
- Наименование;
- В эксплуатации.
Для каждого реального объекта проверить наличие:
- названия;
- типа;
- META URL;
- META ID, если доступен;
- родительского уровня;
- доступных полей объекта.
Пять interaction-point, ранее найденных на странице
functionalSubsystem/236500/interactionPoints, должны находиться только
на уровне ФП.
======================================================================
7. СТЕНДЫ И ТЕХНИЧЕСКИЕ РЕСУРСЫ
======================================================================
Проверить наличие реальных данных о:
- стендах;
- технических ресурсах.
Искать в:
- projects/SNL/meta/;
- output/;
- temp_html/.
Отделять реальные объекты от индексных README и заглушек.
Если реальные данные отсутствуют, зафиксировать:
«Не применимо: объекты не обнаружены в сохранённых исходных данных».
Не считать пустой README выполненной выгрузкой.
======================================================================
8. НЕПЕРЕНЕСЁННЫЕ ДАННЫЕ
======================================================================
Проверить:
output/UNMIGRATED_META_DATA.md
Если файл существует, прочитать его и проверить, остались ли уникальные
данные вне projects/SNL/meta/as/.
Особенно проверить упоминания:
- ius-request-approval;
- integration_interactions;
- interaction_points;
- integration_points;
- hierarchy;
- modules;
- submodules;
- technical_components.
Показать:
| Источник | Существует в as/ | Полностью перенесён | Комментарий |
|---|---|---|---|
======================================================================
9. ПРОВЕРКА ГЕНЕРАТОРА
======================================================================
Прочитать:
scripts/structured_meta_writer.py
scripts/regenerate_reports.py
scripts/html_to_markdown.py
scripts/integration_interactions_parser.py
scripts/meta_page_expander.py
run_exporter.py
Проверить статически, без запуска браузера:
- целевой путь генерации;
- поддержку трёх вариантов размещения ТК;
- определение родителя по URL, ID или breadcrumb;
- дедупликацию по META ID и URL;
- создание интеграций отдельно для АС и ФП;
- защиту от ложных объектов;
- сохранение табличных атрибутов;
- идемпотентность;
- read-only ограничения;
- отсутствие API-запросов к META;
- отсутствие чтения cookies, токенов и localStorage.
Показать конкретные функции и строки кода, которые отвечают за каждый пункт.
Не считать функцию реализованной только по её названию — проверить её тело.
======================================================================
10. БЕЗОПАСНЫЕ ОФЛАЙН-ПРОВЕРКИ
======================================================================
Разрешается выполнить:
python -m py_compile run_exporter.py scripts/*.py
Не выполнять regenerate_reports.py на первом этапе аудита.
Также проверить отсутствие:
- абсолютных путей `/Users/23865613`;
- слов `наставник`, `mentor`, `mentoring`;
- файла output/MENTOR_REQUIREMENTS_REPORT.md.
Использовать grep без изменения файлов.
======================================================================
11. СВЕРКА С ТРЕБОВАНИЯМИ
======================================================================
Создать только в ответе, не записывая в файл, таблицу:
| № | Требование | Статус | Фактическое доказательство | Что отсутствует |
|---:|---|---|---|---|
Проверить:
1. Папки C1–C4 отсутствуют.
2. Архитектура находится в projects/SNL/meta.
3. Используется ветка features/adt-markdownify-meta.
4. Есть иерархия АС → ФП → Модуль → Подмодуль.
5. Поддерживается АС → ФП → ТК.
6. Поддерживается АС → ФП → Модуль → ТК.
7. Поддерживается АС → ФП → Модуль → Подмодуль → ТК.
8. Каждый реальный объект имеет README.md.
9. README содержат META URL и META ID.
10. Атрибуты АС выгружены таблицами.
11. Атрибуты ФП выгружены таблицами.
12. Integration-flow уровня АС структурирован.
13. Integration уровня АС структурирован.
14. Integration-point уровня АС структурирован.
15. Integration-flow уровня ФП структурирован.
16. Integration уровня ФП структурирован.
17. Integration-point уровня ФП структурирован.
18. Нет ложных объектов.
19. Нет дублей по META ID.
20. Нет дублей по META URL.
21. Стенды обработаны.
22. Технические ресурсы обработаны.
23. Генерация является идемпотентной.
24. META используется только read-only.
25. Нет персональных и внутренних служебных упоминаний.
Допустимые статусы:
- Закрыто;
- Частично;
- Не закрыто;
- Не применимо: объект или связь отсутствует в сохранённых данных.
Не ставить «Закрыто» только на основании старых отчётов.
Каждый статус подтвердить фактическим файлом или кодом.
======================================================================
12. ФИНАЛЬНЫЙ ВЫВОД
======================================================================
В конце вывести:
# Независимый аудит второго задания
## Что фактически работает
## Фактическая структура projects/SNL/meta
## Иерархия объектов
## Размещение ТК
## Атрибуты
## Интеграции
## Дубли и ложные объекты
## Стенды и технические ресурсы
## Неперенесённые данные
## Проверка генератора
## Результат py_compile
## Таблица требований
## Критические несоответствия
## Что можно исправить офлайн
## Для чего действительно требуется браузерный прогон
После отчёта остановиться.
Не изменять файлы.
Не запускать браузер.
Не обращаться к META.
Не выполнять commit и push.