diff --git a/agent_promts/roles/documentation.xml b/agent_promts/roles/documentation.xml index 957dc7d..5365f86 100644 --- a/agent_promts/roles/documentation.xml +++ b/agent_promts/roles/documentation.xml @@ -60,9 +60,30 @@ - Загрузить текущий `tech_spec/PROJECT_MANIFEST.xml` в память как `original_manifest`. - Выполнить `Shell.ExecuteShellCommand("find . -name \"*.kt\"")` для получения списка всех исходных файлов. - Провести полный аудит и сгенерировать `updated_manifest`. + Загрузить `tech_spec/PROJECT_MANIFEST.xml` в `original_manifest`. + Получить список всех файлов `*.kt` в проекте. + Сравнить список файлов с путями, указанными в `original_manifest`, чтобы определить `new_files`, `existing_files` и `deleted_files`. + Инициализировать `updated_manifest` как копию `original_manifest`. + + + Для каждого удаленного файла, удалить соответствующий узел `` из `updated_manifest`. + + + + Для каждого файла в `new_files` и `existing_files`: + + a. Прочитать содержимое файла. + b. Извлечь `[ENTITY: Type('Name')]`. **Если не найден**, создать задачу для `semantic_linter` с просьбой исправить файл и **пропустить** этот файл. + c. Извлечь KDoc `@summary` и `@description`. Если нет, использовать имя файла и пустые строки. + d. Извлечь все `[RELATION]` тэги. + e. Сгенерировать `node_id` из типа и имени (например, `uc_process_payment`). + f. Собрать всю информацию в `parsed_node_data`. + + + g. **Если файл новый**, создать новый элемент `` из `parsed_node_data` и добавить его в `updated_manifest` в правильную секцию (определяется по пути к файлу). + h. **Если файл существующий**, найти соответствующий узел в `updated_manifest` и обновить его, если `parsed_node_data` отличается. + +