v2/benchmark/docs/claude_optimizer_guide.md
The CLAUDE.md Optimizer is an intelligent system that generates optimized CLAUDE.md configurations for specific development use cases. It analyzes project requirements, performance targets, and team context to create tailored configurations that maximize Claude Code's effectiveness.
The optimizer is included with the benchmark system:
pip install -e /path/to/benchmark
from swarm_benchmark.claude_optimizer import ClaudeMdOptimizer, ProjectContext, PerformanceTargets
# Create optimizer instance
optimizer = ClaudeMdOptimizer()
# Define your project
context = ProjectContext(
project_type="web_api",
team_size=4,
complexity="medium",
primary_languages=["Python"],
frameworks=["FastAPI"],
performance_requirements={"response_time": "<100ms"},
existing_tools=["pytest", "docker"],
constraints={"timeline": "tight"}
)
# Set performance targets
targets = PerformanceTargets(
priority="speed",
target_completion_time=30.0,
target_token_usage=500
)
# Generate optimized configuration
config = optimizer.generate_optimized_config("api_development", context, targets)
# Save to file
with open("claude.md", "w") as f:
f.write(config)
# Generate optimized CLAUDE.md for API development
python -m swarm_benchmark optimize \
--use-case api_development \
--team-size 4 \
--complexity medium \
--priority speed \
--output claude.md
# Benchmark a configuration
python -m swarm_benchmark analyze \
--config-file claude.md \
--tasks api_tasks.txt \
--iterations 3
The optimizer supports 10 specialized use cases, each with tailored configurations:
api_development)Optimized for:
Key Features:
Example Configuration:
config = optimizer.generate_optimized_config(
"api_development",
ProjectContext(
project_type="rest_api",
team_size=5,
complexity="medium",
frameworks=["FastAPI", "SQLAlchemy"],
performance_requirements={"response_time": "<100ms"}
),
PerformanceTargets(priority="speed")
)
ml_pipeline)Optimized for:
Key Features:
Example Configuration:
config = optimizer.generate_optimized_config(
"ml_pipeline",
ProjectContext(
project_type="ml_model",
complexity="complex",
frameworks=["scikit-learn", "pytorch"],
performance_requirements={"accuracy": ">90%", "training_time": "<30min"}
),
PerformanceTargets(priority="accuracy")
)
frontend_react)Optimized for:
Key Features:
backend_microservices)Optimized for:
Key Features:
data_pipeline)Optimized for:
devops_automation)Optimized for:
mobile_development)Optimized for:
testing_automation)Optimized for:
documentation)Optimized for:
performance_optimization)Optimized for:
ProjectContext(
project_type: str, # Type of project being developed
team_size: int, # Number of team members
complexity: str, # "simple", "medium", "complex"
primary_languages: List[str], # Programming languages used
frameworks: List[str], # Frameworks and libraries
performance_requirements: Dict, # Performance targets
existing_tools: List[str], # Tools already in use
constraints: Dict # Project constraints
)
PerformanceTargets(
priority: str, # "speed", "accuracy", "tokens", "memory"
target_completion_time: float, # Maximum execution time (seconds)
target_token_usage: int, # Maximum tokens per task
target_memory_usage: float, # Maximum memory usage (MB)
target_error_rate: float # Maximum acceptable error rate
)
Focus on minimizing execution time through aggressive parallelization and caching.
Configuration Changes:
Example:
targets = PerformanceTargets(
priority="speed",
target_completion_time=30.0
)
Prioritizes correctness and quality through comprehensive testing and validation.
Configuration Changes:
Example:
targets = PerformanceTargets(
priority="accuracy",
target_error_rate=0.01
)
Optimizes for minimal token usage while maintaining functionality.
Configuration Changes:
Example:
targets = PerformanceTargets(
priority="tokens",
target_token_usage=500
)
Minimizes memory usage through efficient resource management.
Configuration Changes:
Example:
targets = PerformanceTargets(
priority="memory",
target_memory_usage=1024.0
)
# Define test tasks
test_tasks = [
"Create API endpoint with validation",
"Add comprehensive error handling",
"Write unit tests",
"Generate documentation"
]
# Run benchmark
metrics = await optimizer.benchmark_config_effectiveness(
claude_md_content=config,
test_tasks=test_tasks,
iterations=5
)
print(f"Optimization Score: {metrics.optimization_score}")
print(f"Completion Rate: {metrics.completion_rate}")
print(f"Avg Execution Time: {metrics.avg_execution_time}s")
Optimization Score (0.0 - 1.0):
Completion Rate (0.0 - 1.0):
Token Efficiency:
1000 tokens/task: May need optimization
# Get optimization suggestions
suggestions = optimizer.get_optimization_suggestions(metrics, targets)
for suggestion in suggestions:
print(f"Suggestion: {suggestion}")
# Export benchmark history
optimizer.export_benchmark_history("benchmark_history.json")
Create custom use case templates:
from swarm_benchmark.claude_optimizer import TemplateEngine
template_engine = TemplateEngine()
custom_config = {
"use_case": "custom_development",
"focus_areas": ["Custom area 1", "Custom area 2"],
"preferred_agents": ["custom-agent", "tester"],
"critical_rules": ["Custom rule 1", "Custom rule 2"]
}
claude_md = template_engine.generate_claude_md(custom_config)
from swarm_benchmark.claude_optimizer import OptimizationRule
custom_rules = [
OptimizationRule(
name="custom_speed_rule",
description="Custom speed optimization",
condition="performance_priority == 'speed'",
action="enable_custom_optimization",
priority=10,
impact="high"
)
]
rules_engine = OptimizationRulesEngine()
optimized_config = rules_engine.apply_custom_rules(config, custom_rules)
The optimizer automatically caches generated configurations:
# Cache is automatically used for identical requests
config1 = optimizer.generate_optimized_config(use_case, context, targets)
config2 = optimizer.generate_optimized_config(use_case, context, targets) # Uses cache
# Clear cache if needed
optimizer.optimization_cache.clear()
Select the use case that best matches your primary development focus:
Be specific about your project context:
# Good - Specific and detailed
context = ProjectContext(
project_type="e_commerce_api",
team_size=6,
complexity="complex",
primary_languages=["Python", "TypeScript"],
frameworks=["FastAPI", "React", "PostgreSQL"],
performance_requirements={
"response_time": "<50ms",
"throughput": ">1000 rps",
"availability": "99.9%"
},
existing_tools=["pytest", "docker", "k8s"],
constraints={"budget": "medium", "timeline": "6 months"}
)
# Avoid - Too generic
context = ProjectContext(
project_type="web_app",
team_size=5,
complexity="medium",
primary_languages=["Python"],
frameworks=[],
performance_requirements={},
existing_tools=[],
constraints={}
)
Define achievable performance targets:
# Realistic targets
targets = PerformanceTargets(
priority="speed",
target_completion_time=60.0, # 1 minute for complex tasks
target_token_usage=800, # Reasonable token budget
target_memory_usage=2048.0, # 2GB memory limit
target_error_rate=0.05 # 5% error tolerance
)
Use benchmark results to improve configurations:
# Initial optimization
config_v1 = optimizer.generate_optimized_config(use_case, context, targets)
metrics_v1 = await optimizer.benchmark_config_effectiveness(config_v1, tasks)
# Refine based on results
if metrics_v1.optimization_score < 0.8:
# Adjust targets or context
targets.priority = "accuracy" # Focus on accuracy instead of speed
config_v2 = optimizer.generate_optimized_config(use_case, context, targets)
Track optimization effectiveness over time:
# Regular benchmarking
monthly_metrics = []
for month in range(6):
metrics = await optimizer.benchmark_config_effectiveness(config, tasks)
monthly_metrics.append(metrics)
# Analyze trends
avg_score = sum(m.optimization_score for m in monthly_metrics) / len(monthly_metrics)
print(f"Average optimization score: {avg_score}")
# Configuration for high-performance API development
optimizer = ClaudeMdOptimizer()
context = ProjectContext(
project_type="high_performance_api",
team_size=8,
complexity="complex",
primary_languages=["Go", "Python"],
frameworks=["Gin", "FastAPI", "Redis", "PostgreSQL"],
performance_requirements={
"response_time": "<10ms",
"throughput": ">10000 rps",
"availability": "99.99%"
},
existing_tools=["k6", "prometheus", "grafana", "docker", "kubernetes"],
constraints={"timeline": "aggressive", "budget": "high"}
)
targets = PerformanceTargets(
priority="speed",
target_completion_time=45.0,
target_token_usage=600,
target_memory_usage=4096.0,
target_error_rate=0.001
)
config = optimizer.generate_optimized_config("api_development", context, targets)
# Configuration for ML research project
context = ProjectContext(
project_type="ml_research",
team_size=4,
complexity="complex",
primary_languages=["Python", "R"],
frameworks=["PyTorch", "scikit-learn", "pandas", "numpy"],
performance_requirements={
"model_accuracy": ">95%",
"training_time": "<2hours",
"reproducibility": "100%"
},
existing_tools=["jupyter", "mlflow", "wandb", "docker"],
constraints={"compute_budget": "limited", "timeline": "research"}
)
targets = PerformanceTargets(
priority="accuracy",
target_completion_time=120.0,
target_error_rate=0.001
)
config = optimizer.generate_optimized_config("ml_pipeline", context, targets)
Symptoms:
Solutions:
# Debug low scores
if metrics.optimization_score < 0.5:
print("Debugging low optimization score...")
print(f"Completion rate: {metrics.completion_rate}")
print(f"Error rate: {metrics.error_rate}")
print(f"Execution time: {metrics.avg_execution_time}")
# Get suggestions for improvement
suggestions = optimizer.get_optimization_suggestions(metrics, targets)
for suggestion in suggestions:
print(f"Try: {suggestion}")
Symptoms:
Solutions:
# Optimize for tokens
targets.priority = "tokens"
targets.target_token_usage = 400
config = optimizer.generate_optimized_config(use_case, context, targets)
Symptoms:
Solutions:
# Optimize for memory
targets.priority = "memory"
targets.target_memory_usage = 1024.0
# Reduce complexity if needed
context.complexity = "medium" # Instead of "complex"
# Enable debug logging
import logging
logging.basicConfig(level=logging.DEBUG)
# Export detailed metrics for analysis
optimizer.export_benchmark_history("debug_metrics.json")
This guide provides comprehensive information for using the CLAUDE.md optimizer effectively. For additional examples and advanced usage patterns, refer to the examples directory and API reference documentation.