# План задач (Tasklist)
## Итерации
### 1. Проработка конвенций и видения проекта (Iteration 1) [ЗАВЕРШЕНО]
- [x] Финализация `doc/vision.md`
- [x] Финализация `doc/conventions.md`
- [x] Обновление `doc/workflow.md`
- [x] Создание базовой структуры проекта (Domain, Infrastructure, Application, Interface)
### 2. Декларативное описание ресурсов и File System (Iteration 2) [ЗАВЕРШЕНО]
- [x] Определение схемы ресурсов и DSL
- [x] Реализация доменных типов ресурсов и портов
- [x] Реализация File адаптера в Infrastructure
- [x] Примеры и тесты создания/удаления файлов
### 3. Rust-Native DSL (Iteration 3) [ЗАВЕРШЕНО]
- [x] Разработка декларативных макросов для ресурсов
- [x] Реализация DSL в Domain слое
- [x] Примеры использования DSL в тестах
### 4. Environments, Modules и Scripting Engine (Iteration 4) [ЗАВЕРШЕНО]
- [x] Интеграция скриптового движка Rhai
- [x] Реализация структуры папок Environments/Modules
- [x] Загрузчик манифестов из внешних файлов
- [x] Обновление CLI для работы с окружениями
### 5. Упрощение DSL и Зависимости (Iteration 5) [ЗАВЕРШЕНО]
- [x] Поддержка Object Maps в Rhai для ресурсов
- [x] Реализация графа зависимостей (DAG) и сортировки
- [x] Автоматический сбор ресурсов в Engine
- [x] Обновление примера site.rhai и тестов
### 6. Система модулей (Iteration 6) [ЗАВЕРШЕНО]
- [x] Реализация функции `include()` в движке Rhai
- [x] Организация структуры `modules/`
- [x] Пример модуля nginx для демонстрации
### 7. Клиент-серверная архитектура (Iteration 7) [ЗАВЕРШЕНО]
- [x] Определение модели `Catalog`
- [x] Реализация Master-сервера (Axum)
- [x] Реализация Agent-клиента
- [x] Обновление CLI для поддержки новых команд
### 8. Факты (Iteration 8) [ЗАВЕРШЕНО]
- [x] Реализация системы сбора фактов (Facter-like)
- [x] Передача фактов от Агента к Мастеру
- [x] Использование фактов в манифестах
### 9. Зависимости между модулями (Iteration 9) [ЗАВЕРШЕНО]
- [x] Виртуальные ресурсы начала/конца модуля
- [x] Обновление `include()` для поддержки дедупликации и возврата хендла
- [x] Поддержка `include("A") -> include("B")` в DSL
- [x] Автоматическая привязка ресурсов модуля к его границам
### 10. Избирательный откат (Iteration 10) [ЗАВЕРШЕНО]
- [x] Система снимков состояния (Snapshots) перед применением
- [x] Безопасное хранилище бэкапов с дедупликацией (CAS)
- [x] Реализация команды `rollback` в CLI
- [x] Поддержка избирательного включения отката через `backup: true`