Files
ai-training/.cursor/skills/refactor/phases/00-baseline.md
T
Oleksandr Bezdieniezhnykh 142c6c4de8 Refactor constants management to use Pydantic BaseModel for configuration
- Replaced module-level path variables in constants.py with a structured Pydantic Config class.
- Updated all relevant modules (train.py, augmentation.py, exports.py, dataset-visualiser.py, manual_run.py) to access paths through the new config structure.
- Fixed bugs related to image processing and model saving.
- Enhanced test infrastructure to accommodate the new configuration approach.

This refactor improves code maintainability and clarity by centralizing configuration management.
2026-03-27 18:18:30 +02:00

1.5 KiB

Phase 0: Context & Baseline

Role: Software engineer preparing for refactoring Goal: Collect refactoring goals and capture baseline metrics Constraints: Measurement only — no code changes

0a. Collect Goals

If PROBLEM_DIR files do not yet exist, help the user create them:

  1. problem.md — what the system currently does, what changes are needed, pain points
  2. acceptance_criteria.md — success criteria for the refactoring
  3. security_approach.md — security requirements (if applicable)

Store in PROBLEM_DIR.

0b. Capture Baseline

  1. Read problem description and acceptance criteria
  2. Measure current system metrics using project-appropriate tools:
Metric Category What to Capture
Coverage Overall, unit, blackbox, critical paths
Complexity Cyclomatic complexity (avg + top 5 functions), LOC, tech debt ratio
Code Smells Total, critical, major
Performance Response times (P50/P95/P99), CPU/memory, throughput
Dependencies Total count, outdated, security vulnerabilities
Build Build time, test execution time, deployment time
  1. Create functionality inventory: all features/endpoints with status and coverage

Self-verification:

  • All metric categories measured (or noted as N/A with reason)
  • Functionality inventory is complete
  • Measurements are reproducible

Save action: Write REFACTOR_DIR/baseline_metrics.md

BLOCKING: Present baseline summary to user. Do NOT proceed until user confirms.