pupoxide 0.2.0

A high-performance, memory-safe, declarative configuration management tool inspired by Puppet.
# Процесс разработки

> Инструкция по выполнению работ в проекте **Pupoxide**.
> Ссылки: [Техническое видение]vision.md, [Соглашения]conventions.md, [План задач]tasklist.md.

## Основные принципы

### Итеративный подход
- Вся работа разбивается на итерации в [tasklist.md]tasklist.md.
- Каждая итерация должна приближать проект к [видению]vision.md.
- **Важно**: После завершения итерации необходимо получить подтверждение пользователя.

### Гексагональная архитектура
- Строгое соблюдение слоев: `Domain` -> `Infrastructure` -> `Application` -> `Interface`.
- Направление зависимостей всегда внутрь: Domain — это ядро, которое ничего не знает о внешнем мире.
- Использование **Ports** (traits в Domain) и **Adapters** (их реализация в Infrastructure).

## Алгоритм работы

### 1. Подготовка и Анализ
- [ ] Выбрать задачу из [tasklist.md]tasklist.md.
- [ ] Оценить, какие Ports (traits) понадобятся в Domain.
- [ ] Проверить соответствие [conventions.md]conventions.md.

### 2. Проектирование (RFC)
- [ ] Сформулировать решение в терминах слоев и их взаимодействия.
- [ ] **ОБЯЗАТЕЛЬНО**: Согласовать план с пользователем.

### 3. Реализация
- [ ] Реализовать доменные сущности и **Ports** (traits) в `src/domain/`.
- [ ] **ПРОВЕРКА**: Убедиться в отсутствии лишних зависимостей в `src/domain/` (Domain Purity).
- [ ] Реализовать бизнес-логику в `src/application/`.
- [ ] Реализовать **Adapters** в `src/infrastructure/`.
- [ ] Подключить все в `src/interface/` и `main.rs`.

### 4. Тестирование и Качество
- [ ] Написать unit-тесты (особенно для Domain).
- [ ] Проверить отсутствие `unwrap()`.
- [ ] Запустить `cargo test && cargo clippy`.

### 5. Завершение
- [ ] Обновить [tasklist.md]tasklist.md.
- [ ] Создать Walkthrough.

## Шаблон согласования (для ИИ)

```markdown
## Итерация X: [Название]

### Архитектурное решение:
[Описание взаимодействия Domain Ports и Infrastructure Adapters]

### План изменений:
- [ ] `src/domain/...`: [Ports/Traits/Entities]
- [ ] `src/infrastructure/...`: [Adapters/DB/IO]
- [ ] `src/application/...`: [Use Cases]

Согласны с таким подходом?
```

## Запрещенные действия
- ❌ Нарушение Domain Purity (зависимости в Domain).
- ❌ Использование типов Infrastructure (например, SeaORM моделей) в Domain.
- ❌ Использование `unwrap()` вне тестов.