diff --git a/docs/roadmap/TASK_003A_PORTAL_HARDENING_CLEANUP.md b/docs/roadmap/TASK_003A_PORTAL_HARDENING_CLEANUP.md new file mode 100644 index 0000000..e3a1b10 --- /dev/null +++ b/docs/roadmap/TASK_003A_PORTAL_HARDENING_CLEANUP.md @@ -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. \ No newline at end of file