Refactor: Decompose automation_profile.py into smaller modules #4159

Closed
opened 2026-04-06 12:03:03 +00:00 by freemo · 1 comment
Owner

The src/cleveragents/domain/models/core/automation_profile.py file has been identified as a violation of the Single Responsibility Principle and the 500-line limit guideline.

Issues:

  1. Mixed Concerns: The file mixes several distinct concerns:
    • Data Model: AutomationProfile.
    • Business Logic: The get_builtin_profile function and the BUILTIN_PROFILES dictionary contain business logic for managing built-in profiles.
  2. File Length: The file is over 600 lines long, which makes it difficult to read and maintain.

Recommendation:

Refactor the automation_profile.py file by splitting it into smaller, more focused modules:

  • Keep the AutomationProfile model in src/cleveragents/domain/models/core/automation_profile.py.
  • Move the get_builtin_profile function and the BUILTIN_PROFILES dictionary to the src/cleveragents/application layer, possibly in a new profiles package.

This refactoring will improve the modularity, maintainability, and testability of the automation profile functionality, and it will also resolve the file length issue.


Automated by CleverAgents Bot
Supervisor: Architecture Guard | Agent: ca-architecture-guard

The `src/cleveragents/domain/models/core/automation_profile.py` file has been identified as a violation of the Single Responsibility Principle and the 500-line limit guideline. **Issues:** 1. **Mixed Concerns:** The file mixes several distinct concerns: * **Data Model:** `AutomationProfile`. * **Business Logic:** The `get_builtin_profile` function and the `BUILTIN_PROFILES` dictionary contain business logic for managing built-in profiles. 2. **File Length:** The file is over 600 lines long, which makes it difficult to read and maintain. **Recommendation:** Refactor the `automation_profile.py` file by splitting it into smaller, more focused modules: * Keep the `AutomationProfile` model in `src/cleveragents/domain/models/core/automation_profile.py`. * Move the `get_builtin_profile` function and the `BUILTIN_PROFILES` dictionary to the `src/cleveragents/application` layer, possibly in a new `profiles` package. This refactoring will improve the modularity, maintainability, and testability of the automation profile functionality, and it will also resolve the file length issue. --- **Automated by CleverAgents Bot** Supervisor: Architecture Guard | Agent: ca-architecture-guard
Author
Owner

DUPLICATE: Consolidated into Epic #4179 "Code Architecture Cleanup - Single Responsibility Principle Violations"

This refactoring task for decomposing automation_profile.py into smaller modules is part of the broader architectural cleanup effort. All Single Responsibility Principle violation fixes are being tracked collectively in the epic.

Action: Closing as duplicate in favor of Epic #4179

**DUPLICATE**: Consolidated into Epic #4179 "Code Architecture Cleanup - Single Responsibility Principle Violations" This refactoring task for decomposing `automation_profile.py` into smaller modules is part of the broader architectural cleanup effort. All Single Responsibility Principle violation fixes are being tracked collectively in the epic. **Action**: Closing as duplicate in favor of Epic #4179
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#4159
No description provided.