Architecture Review
Comprehensive architecture analysis skill for understanding project structure, dependencies, and design patterns.
Core Capabilities
Project Structure Analysis
Understand and evaluate codebase organization:
Directory Structure Patterns:
-
Flat structure (small projects)
-
Feature-based organization
-
Layer-based organization (MVC, Clean Architecture)
-
Domain-driven design structure
Key files to identify:
-
Entry points (main.py, index.js, cmd/)
-
Configuration files
-
Test directories
-
Build/deploy configurations
-
Documentation
Structure assessment:
project/ ├── src/ # Source code ├── tests/ # Test files ├── docs/ # Documentation ├── scripts/ # Utility scripts ├── config/ # Configuration └── README.md # Project overview
Dependency Analysis
Map and evaluate dependencies:
Internal Dependencies:
-
Module import graphs
-
Circular dependency detection
-
Coupling analysis
-
Cohesion measurement
External Dependencies:
-
Third-party package analysis
-
Version constraints
-
Transitive dependencies
-
License compatibility
Dependency visualization:
Python - using pydeps
pydeps --cluster src/
Python - using pipdeptree
pipdeptree --warn silence
JavaScript
npm ls --all
Circular Import Detection
Identify and resolve circular dependencies:
Detection approach:
-
Build import graph from source files
-
Perform cycle detection (DFS)
-
Report circular chains
-
Suggest resolution strategies
Resolution strategies:
-
Extract shared code to new module
-
Use dependency injection
-
Lazy imports (import inside function)
-
Interface segregation
Design Pattern Recognition
Identify common patterns in code:
Creational Patterns:
-
Factory (object creation abstraction)
-
Singleton (single instance)
-
Builder (step-by-step construction)
-
Dependency Injection
Structural Patterns:
-
Adapter (interface conversion)
-
Decorator (dynamic behavior)
-
Facade (simplified interface)
-
Repository (data access abstraction)
Behavioral Patterns:
-
Strategy (algorithm selection)
-
Observer (event handling)
-
Command (action encapsulation)
-
State (state machine)
Architecture Evaluation
Layer Analysis
For layered architectures, verify:
Presentation Layer:
-
Controllers/Views
-
Input validation
-
Response formatting
Business Layer:
-
Domain logic
-
Business rules
-
Service orchestration
Data Layer:
-
Repositories
-
Data access
-
External integrations
Cross-cutting concerns:
-
Logging
-
Authentication
-
Error handling
-
Caching
Coupling & Cohesion
Coupling (lower is better):
-
Afferent coupling (Ca): Who depends on this module
-
Efferent coupling (Ce): What this module depends on
-
Instability: Ce / (Ca + Ce)
Cohesion (higher is better):
-
Single responsibility adherence
-
Related functionality grouping
-
Clear module boundaries
SOLID Principles Check
Evaluate adherence to:
S - Single Responsibility:
-
Each class has one reason to change
-
Clear, focused modules
O - Open/Closed:
-
Open for extension
-
Closed for modification
L - Liskov Substitution:
-
Subtypes substitutable for base types
-
Proper inheritance hierarchies
I - Interface Segregation:
-
Specific interfaces over general ones
-
No forced implementation of unused methods
D - Dependency Inversion:
-
Depend on abstractions
-
High-level modules independent of low-level
Analysis Workflow
Full Architecture Review
-
Map structure: Understand directory layout
-
Identify entry points: Find main execution paths
-
Build dependency graph: Map internal/external deps
-
Detect issues: Circular deps, high coupling
-
Recognize patterns: Identify design patterns used
-
Evaluate quality: Check SOLID, coupling/cohesion
-
Report findings: Summarize with recommendations
Quick Architecture Check
For rapid assessment:
-
Review key configuration files
-
Check import structure of main modules
-
Identify obvious architectural issues
-
Note areas needing deeper review
Output Format
Structure Report
Project: my-project Type: Web Application (FastAPI) Architecture: Layered (API/Service/Repository)
Directory Structure: ├── api/ [Presentation Layer] ├── services/ [Business Layer] ├── repositories/ [Data Layer] ├── models/ [Domain Models] └── utils/ [Shared Utilities]
Entry Points:
- main.py (FastAPI application)
- cli.py (Command line interface)
Dependency Report
Module Dependencies: ┌─────────────┬────────────┬────────────┐ │ Module │ Imports │ Imported By│ ├─────────────┼────────────┼────────────┤ │ api.users │ 5 │ 2 │ │ services. │ 8 │ 4 │ │ repos.db │ 3 │ 6 │ └─────────────┴────────────┴────────────┘
Circular Dependencies Found: 2
- services.auth → services.user → services.auth
- models.order → models.product → models.order
Quality Assessment
Aspect Score Notes
Structure 8/10 Clear layer separation
Coupling 6/10 Some tight coupling in services
Cohesion 7/10 Good module focus
SOLID 7/10 DI could be improved
Common Architectural Issues
High Priority
-
Circular dependencies: Break cycles immediately
-
God classes: Split into focused components
-
Missing abstraction layers: Add interfaces
Medium Priority
-
High coupling: Introduce dependency injection
-
Inconsistent patterns: Standardize approaches
-
Mixed responsibilities: Refactor to single responsibility
Low Priority
-
Naming inconsistencies: Standardize naming
-
Missing documentation: Add architecture docs
-
Test organization: Align with source structure
Recommendations Template
For each finding, provide:
Issue: [Description] Location: [Files/modules affected] Impact: [Why this matters] Recommendation: [How to fix] Effort: [Low/Medium/High] Priority: [High/Medium/Low]
Integration
Coordinate with other skills:
-
refactoring skill: For implementing architectural changes
-
documentation skill: For architecture documentation
-
code-quality skill: For detailed code analysis