diff --git a/History/opus-review-request-2026-06-28.md b/History/opus-review-request-2026-06-28.md new file mode 100644 index 0000000..68241d5 --- /dev/null +++ b/History/opus-review-request-2026-06-28.md @@ -0,0 +1,32 @@ +# Запрос Opus — ревью реализации decoupling + +Дата: 28.06.2026 + +## Что сделано (Ф1-Ф4) + +Все по твоему плану: + +| Фаза | Файлы | Суть | +|------|-------|------| +| Ф1 | `deploy/contracts.py`, `deploy/services/upload.py` | 4 dataclass'а + `parse_multipart` + `store_document` | +| Ф2 | `deploy/services/llm_client.py`, `deploy/services/llm.py`, `deploy/services/classify.py` | `LLMClient.complete(prompt)->str` + DI через параметр | +| Ф3 | `deploy/repository.py` | `Repository` Protocol + `PgRepository` + `MemRepository` | +| Ф4 | `deploy/conftest.py`, `deploy/tests/unit/*.py` | pytest: 22 юнит-теста, **22/22 PASS** | + +## Что проверь + +1. **Контракты** (`contracts.py`) — правильные ли поля? Не упущено ли что-то важное из `elements_json`, `spec_current`, `ops`? + +2. **DI** — `llm_client` параметр с default-значением — корректно? Не сломает ли `convert_server.py` который не передаёт `llm_client`? + +3. **Repository** — `PgRepository` оборачивает `db/*.py`. Не дублирует ли логику? Правильно ли выбраны методы для фасада? + +4. **Тесты** — 22 теста, все pass. Достаточно ли покрытия для Ф1-Ф3? Что добавить? + +5. **Общее** — не упущена ли какая-то важная часть пайплайна? `process.py` / `grouping.py` ещё не затронуты — это ок для Ф1-Ф4 или надо было включить? + +## Ответь кратко + +- Что ок +- Что поправить +- Что добавить