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