Create TASK_003A_PORTAL_HARDENING_CLEANUP.md
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user