Refactor: $ARGUMENTS
Follow Daniel Okoye's architecture standards:
- •
Baseline: Run the test and type-check commands (see project config) BEFORE making any changes. If either fails, fix existing issues first — never refactor on a broken baseline.
- •
Analyze: Read the code to be refactored and all its callers
- •Map the dependency graph: who imports/calls this code?
- •Identify the layer: Core → Service → API
- •Check for test coverage of current behavior
- •
Refactor rules:
- •Preserve the public API — same function signatures, same return types
- •If renaming, update ALL callers and tests in the same commit
- •Maintain layer boundaries (see Layers in project config) — never reverse dependency flow
- •Keep route handlers thin — if moving logic, move it INTO service layer, not out
- •All service access still via DI injection (see stack concepts) — no direct imports in API layer
- •Keep future annotations pattern in every file (see stack concepts)
- •No new untyped/any types — use explicit types
- •
If splitting files:
- •Update
__init__.pyexports if needed - •Ensure no circular imports between layers
- •Each new file follows the future annotations pattern (see stack concepts)
- •Update
- •
If renaming:
- •Search entire codebase for old name: source files, tests, config, docs
- •Update project documentation if it references renamed items
- •Update OpenAPI metadata (summary, description) if endpoints changed
- •
Verify: Run the test and type-check commands again. All tests MUST still pass. No new type errors. No regressions.