Refactor: Decompose skill.py into smaller modules #4163

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

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

Issues:

  1. Mixed Concerns: The file mixes a large number of distinct concerns:
    • Data Models: SkillToolRef, SkillInclude, SkillInlineTool, SkillMcpSource, SkillAgentSource, SkillCapabilitySummary, Skill, and ResolvedToolEntry.
    • Business Logic: The SkillResolver class contains business logic for resolving a skill's toolset.
    • Helper Functions: The _validate_override_keys function is a helper for the resolver.
  2. File Length: The file is over 700 lines long, which makes it extremely difficult to read, understand, and maintain.

Recommendation:

Perform a major refactoring of the skill.py file by splitting it into smaller, more focused modules:

  • Keep the data models in src/cleveragents/domain/models/core/skill.py, but consider breaking them down into smaller files if the file is still too large.
  • Move the SkillResolver class and the _validate_override_keys function to the src/cleveragents/application layer, possibly in a new skills package.

This refactoring is critical for improving the architecture of the skill-related functionality and making the codebase more modular and maintainable.


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

The `src/cleveragents/domain/models/core/skill.py` file has been identified as a major violation of the Single Responsibility Principle and the 500-line limit guideline. **Issues:** 1. **Mixed Concerns:** The file mixes a large number of distinct concerns: * **Data Models:** `SkillToolRef`, `SkillInclude`, `SkillInlineTool`, `SkillMcpSource`, `SkillAgentSource`, `SkillCapabilitySummary`, `Skill`, and `ResolvedToolEntry`. * **Business Logic:** The `SkillResolver` class contains business logic for resolving a skill's toolset. * **Helper Functions:** The `_validate_override_keys` function is a helper for the resolver. 2. **File Length:** The file is over 700 lines long, which makes it extremely difficult to read, understand, and maintain. **Recommendation:** Perform a major refactoring of the `skill.py` file by splitting it into smaller, more focused modules: * Keep the data models in `src/cleveragents/domain/models/core/skill.py`, but consider breaking them down into smaller files if the file is still too large. * Move the `SkillResolver` class and the `_validate_override_keys` function to the `src/cleveragents/application` layer, possibly in a new `skills` package. This refactoring is critical for improving the architecture of the skill-related functionality and making the codebase more modular and maintainable. --- **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 skill.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 `skill.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#4163
No description provided.