Create TASK_003A_PORTAL_HARDENING_CLEANUP.md

This commit is contained in:
IgorRachkov
2026-06-07 14:17:15 +03:00
committed by GitHub
parent 07dfb95b6b
commit 2fb3271558
@@ -0,0 +1,98 @@
docs/roadmap/TASK_003A_PORTAL_HARDENING_CLEANUP.md
Рекомендуемые параметры
Mode: xhigh
Reasoning: maximum
Task type: refactoring / maintainability / regression safety
Quality bar: production-ready
Breaking changes: forbidden
Architecture changes: forbidden
Simplifications: forbidden
Required checks:
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all
cargo build --release
AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs
Задача
Провести безопасный cleanup после коммита production hardening + explainable KPI.
Цель
Снизить размер и сложность "adk-rust/crates/detmir-portal/src/main.rs", не меняя поведение портала и API.
Что сделать
1. Вынести production hardening код в отдельные модули:
src/production/
├── health.rs
├── readiness.rs
├── version.rs
├── metrics.rs
├── limits.rs
├── request_context.rs
└── logging.rs
2. Вынести explainable KPI код в отдельный модуль:
src/workforce_kpi_explain.rs
3. Сохранить публичное поведение endpoints:
- GET /healthz
- GET /readyz
- GET /version
- GET /metrics
- GET /api/workforce/kpi/explain
4. Не менять JSON-контракты без необходимости.
5. Не менять OpenAPI/TypeScript contracts, если поведение не изменилось.
6. Добавить unit tests там, где логика стала модульной:
- config validation;
- query limits;
- request id / correlation id;
- KPI confidence;
- deterministic KPI factors.
7. Smoke script не ломать.
Запрещено
Не добавлять:
- новые функции;
- React;
- Tauri;
- Dioxus;
- ML/LLM;
- новую БД;
- новые внешние зависимости без крайней необходимости.
Критерии приемки
- main.rs стал меньше и чище;
- endpoints работают как раньше;
- smoke проходит;
- contracts не сломаны;
- role gates не сломаны;
- документация не ухудшена;
- все проверки проходят.
Финальный отчет Codex
В отчете указать:
1. Какие модули созданы.
2. Что вынесено из main.rs.
3. Изменился ли внешний API.
4. Какие тесты добавлены.
5. Результаты fmt/clippy/test/build/smoke.