# План задач (Tasklist)

## Итерации

### 1. Проработка конвенций и видения проекта (Iteration 1) [ЗАВЕРШЕНО]
- [x] Финализация `doc/vision.md` <!-- id: 1.1 -->
- [x] Финализация `doc/conventions.md` <!-- id: 1.2 -->
- [x] Обновление `doc/workflow.md` <!-- id: 1.3 -->
- [x] Создание базовой структуры проекта (Domain, Infrastructure, Application, Interface) <!-- id: 1.4 -->

### 2. Декларативное описание ресурсов и File System (Iteration 2) [ЗАВЕРШЕНО]
- [x] Определение схемы ресурсов и DSL <!-- id: 2.1 -->
- [x] Реализация доменных типов ресурсов и портов <!-- id: 2.2 -->
- [x] Реализация File адаптера в Infrastructure <!-- id: 2.3 -->
- [x] Примеры и тесты создания/удаления файлов <!-- id: 2.4 -->

### 3. Rust-Native DSL (Iteration 3) [ЗАВЕРШЕНО]
- [x] Разработка декларативных макросов для ресурсов <!-- id: 3.1 -->
- [x] Реализация DSL в Domain слое <!-- id: 3.2 -->
- [x] Примеры использования DSL в тестах <!-- id: 3.3 -->

### 4. Environments, Modules и Scripting Engine (Iteration 4) [ЗАВЕРШЕНО]
- [x] Интеграция скриптового движка Rhai <!-- id: 4.1 -->
- [x] Реализация структуры папок Environments/Modules <!-- id: 4.2 -->
- [x] Загрузчик манифестов из внешних файлов <!-- id: 4.3 -->
- [x] Обновление CLI для работы с окружениями <!-- id: 4.4 -->

### 5. Упрощение DSL и Зависимости (Iteration 5) [ЗАВЕРШЕНО]
- [x] Поддержка Object Maps в Rhai для ресурсов <!-- id: 5.1 -->
- [x] Реализация графа зависимостей (DAG) и сортировки <!-- id: 5.2 -->
- [x] Автоматический сбор ресурсов в Engine <!-- id: 5.3 -->
- [x] Обновление примера site.rhai и тестов <!-- id: 5.4 -->

### 6. Система модулей (Iteration 6) [ЗАВЕРШЕНО]
- [x] Реализация функции `include()` в движке Rhai <!-- id: 6.1 -->
- [x] Организация структуры `modules/` <!-- id: 6.2 -->
- [x] Пример модуля nginx для демонстрации <!-- id: 6.3 -->

### 7. Клиент-серверная архитектура (Iteration 7) [ЗАВЕРШЕНО]
- [x] Определение модели `Catalog` <!-- id: 7.1 -->
- [x] Реализация Master-сервера (Axum) <!-- id: 7.2 -->
- [x] Реализация Agent-клиента <!-- id: 7.3 -->
- [x] Обновление CLI для поддержки новых команд <!-- id: 7.4 -->

### 8. Факты (Iteration 8) [ЗАВЕРШЕНО]
- [x] Реализация системы сбора фактов (Facter-like) <!-- id: 8.1 -->
- [x] Передача фактов от Агента к Мастеру <!-- id: 8.2 -->
- [x] Использование фактов в манифестах <!-- id: 8.3 -->

### 9. Зависимости между модулями (Iteration 9) [ЗАВЕРШЕНО]
- [x] Виртуальные ресурсы начала/конца модуля <!-- id: 9.1 -->
- [x] Обновление `include()` для поддержки дедупликации и возврата хендла <!-- id: 9.2 -->
- [x] Поддержка `include("A") -> include("B")` в DSL <!-- id: 9.3 -->
- [x] Автоматическая привязка ресурсов модуля к его границам <!-- id: 9.4 -->

### 10. Избирательный откат (Iteration 10) [ЗАВЕРШЕНО]
- [x] Система снимков состояния (Snapshots) перед применением <!-- id: 10.1 -->
- [x] Безопасное хранилище бэкапов с дедупликацией (CAS) <!-- id: 10.2 -->
- [x] Реализация команды `rollback` в CLI <!-- id: 10.3 -->
- [x] Поддержка избирательного включения отката через `backup: true` <!-- id: 10.4 -->
