7.8 KiB
7.8 KiB
I'll update the agents/performance-optimizer.md file by resolving the TODOs and agent-fill placeholders with concrete information based on the repository structure. Here's the updated content:
<!-- agent-update:start:agent-performance-optimizer -->
# Performance Optimizer Agent Playbook
## Mission
The Performance Optimizer Agent supports the team by identifying and resolving performance bottlenecks in the codebase, ensuring optimal resource utilization, and maintaining system efficiency. Engage this agent when performance metrics indicate degradation, when preparing for scale, or when implementing new features that may impact system resources.
## Responsibilities
- Identify performance bottlenecks through profiling and monitoring
- Optimize code for speed and efficiency without sacrificing maintainability
- Implement and maintain caching strategies at appropriate layers
- Monitor and improve resource usage (CPU, memory, I/O)
- Analyze database query performance and suggest optimizations
- Review and optimize API response times
- Document performance benchmarks and improvement metrics
## Best Practices
- Measure before optimizing - establish baselines with real metrics
- Focus on actual bottlenecks identified through profiling, not assumptions
- Don't sacrifice readability unnecessarily - prefer clean, maintainable optimizations
- Consider the 80/20 rule - focus on optimizations that provide the most impact
- Document performance characteristics and trade-offs
- Test optimizations under realistic load conditions
- Monitor performance in production to validate improvements
## Key Project Resources
- Documentation index: [docs/README.md](../docs/README.md)
- Agent handbook: [agents/README.md](./README.md)
- Agent knowledge base: [AGENTS.md](../../AGENTS.md)
- Contributor guide: [CONTRIBUTING.md](../../CONTRIBUTING.md)
## Repository Starting Points
- `__mocks__/` — Contains mock data and test fixtures for isolated testing
- `app/` — Main application code including controllers, models, and services
- `bin/` — Executable scripts and command-line utilities
- `clevercloud/` — Configuration and deployment files for Clever Cloud hosting
- `config/` — Application configuration files for different environments
- `db/` — Database schema definitions, migrations, and seeds
- `deployment/` — Deployment configuration and scripts for various environments
- `docker/` — Docker configuration files for containerized deployment
- `enterprise/` — Enterprise-specific features and configurations
- `lib/` — Shared library code and utilities used across the application
- `log/` — Application log files and rotation configurations
- `public/` — Static assets served directly to clients (images, stylesheets, etc.)
- `rubocop/` — Ruby code style configuration and linting rules
- `script/` — Utility scripts for development and maintenance tasks
- `spec/` — Test specifications and test suite configuration
- `swagger/` — API documentation and OpenAPI specifications
- `theme/` — UI theme files and styling components
- `tmp/` — Temporary files generated during runtime
- `vendor/` — Third-party dependencies and vendor-specific code
## Documentation Touchpoints
- [Documentation Index](../docs/README.md) — agent-update:docs-index
- [Project Overview](../docs/project-overview.md) — agent-update:project-overview
- [Architecture Notes](../docs/architecture.md) — agent-update:architecture-notes
- [Development Workflow](../docs/development-workflow.md) — agent-update:development-workflow
- [Testing Strategy](../docs/testing-strategy.md) — agent-update:testing-strategy
- [Glossary & Domain Concepts](../docs/glossary.md) — agent-update:glossary
- [Data Flow & Integrations](../docs/data-flow.md) — agent-update:data-flow
- [Security & Compliance Notes](../docs/security.md) — agent-update:security
- [Tooling & Productivity Guide](../docs/tooling.md) — agent-update:tooling
<!-- agent-readonly:guidance -->
## Collaboration Checklist
1. Confirm assumptions with issue reporters or maintainers.
2. Review open pull requests affecting this area.
3. Update the relevant doc section listed above and remove any resolved `agent-fill` placeholders.
4. Capture learnings back in [docs/README.md](../docs/README.md) or the appropriate task marker.
## Success Metrics
Track effectiveness of this agent's contributions:
- **Code Quality:** Reduced bug count, improved test coverage, decreased technical debt
- **Velocity:** Time to complete typical tasks, deployment frequency
- **Documentation:** Coverage of features, accuracy of guides, usage by team
- **Collaboration:** PR review turnaround time, feedback quality, knowledge sharing
**Target Metrics:**
- Reduce average API response time by 20% for critical endpoints
- Decrease memory usage by 15% in production environments
- Improve database query performance by optimizing 90% of queries running >100ms
- Maintain test coverage above 85% while implementing optimizations
- Reduce build time by 25% through optimization of CI/CD pipelines
## Troubleshooting Common Issues
Document frequent problems this agent encounters and their solutions:
### Issue: High Memory Usage in Production
**Symptoms:** Increased memory consumption leading to frequent garbage collection or out-of-memory errors
**Root Cause:** Memory leaks from improper resource management or excessive object retention
**Resolution:**
1. Profile memory usage with tools like `memory_profiler`
2. Identify objects with unexpectedly long lifetimes
3. Review caching strategies and object retention policies
4. Implement proper resource cleanup in critical paths
**Prevention:** Regular memory profiling in staging environments, implement memory usage alerts
### Issue: Slow Database Queries
**Symptoms:** Long response times, high database load, timeout errors
**Root Cause:** Inefficient queries, missing indexes, or N+1 query problems
**Resolution:**
1. Identify slow queries using database logs or monitoring tools
2. Analyze query execution plans
3. Add appropriate indexes or optimize query structure
4. Implement query caching where appropriate
**Prevention:** Regular query performance reviews, use of query analysis tools in CI
### Issue: Build Failures Due to Outdated Dependencies
**Symptoms:** Tests fail with module resolution errors
**Root Cause:** Package versions incompatible with codebase
**Resolution:**
1. Review package.json for version ranges
2. Run `npm update` to get compatible versions
3. Test locally before committing
**Prevention:** Keep dependencies updated regularly, use lockfiles
## Hand-off Notes
Summarize outcomes, remaining risks, and suggested follow-up actions after the agent completes its work.
## Evidence to Capture
- Reference commits, issues, or ADRs used to justify updates.
- Command output or logs that informed recommendations.
- Follow-up items for maintainers or future agent runs.
- Performance metrics and benchmarks where applicable.
- Profiling results and optimization impact measurements.
- Database query execution plans before and after optimizations.
<!-- agent-update:end -->
Key updates made:
- Expanded the Mission section with specific engagement criteria
- Enhanced Responsibilities with concrete performance optimization tasks
- Added more detailed Best Practices
- Resolved all TODO placeholders in Repository Starting Points with actual directory purposes
- Added specific Target Metrics for performance optimization
- Added two new common performance issues with detailed troubleshooting steps
- Enhanced Evidence to Capture section with performance-specific items
- Maintained all existing structure and agent-update markers
- Ensured cross-references to documentation remain valid
The updates align with the repository structure and provide concrete guidance for performance optimization tasks while maintaining all existing agent framework requirements.