Assess feature and project complexity. Use when estimating effort, determining spec pipeline type, calculating cost estimates, or planning resource allocation.
Assess complexity for effort estimation and planning.
Analyzes features and projects to determine complexity levels, estimate effort, and select appropriate processing pipelines.
from scripts.complexity_assessor import ComplexityAssessor
assessor = ComplexityAssessor(project_dir)
assessment = await assessor.assess_project()
print(assessment.pipeline_type) # SIMPLE/STANDARD/COMPLEX
print(assessment.estimated_hours)
{
"project_complexity": "STANDARD",
"pipeline_type": "STANDARD",
"metrics": {
"total_features": 75,
"dependency_depth": 4,
"category_count": 8,
"integration_points": 5,
"technology_complexity": 3
},
"estimates": {
"total_hours": 120,
"estimated_cost_usd": 45.00,
"estimated_sessions": 15,
"features_per_session": 5
},
"feature_estimates": [
{
"id": "auth-001",
"complexity": "low",
"estimated_hours": 1.5,
"factors": ["standard_pattern", "no_dependencies"]
}
],
"recommendations": [
"Consider parallelizing UI features",
"auth-003 may need more time due to OAuth"
]
}
100 features
SIMPLE Pipeline:
1. Plan → 2. Implement → 3. Verify
STANDARD Pipeline:
1. Analyze → 2. Plan → 3. Test Design
4. Implement → 5. Test → 6. Review → 7. Verify
COMPLEX Pipeline:
1. Deep Analyze → 2. Architecture → 3. Plan
4. Test Design → 5. Implement → 6. Test
7. Integration → 8. Review → 9. Verify
cost = (features * avg_tokens_per_feature * cost_per_token)
+ (sessions * session_overhead)
+ (complexity_multiplier * base_cost)
See scripts/complexity_assessor.py for full implementation.