Rates a Go project on hexagonal architecture, single responsibility principle, and Go idioms. Provides scores from 1-10 and actionable recommendations.
Analyze the Go codebase and provide a comprehensive quality assessment. Rate each dimension from 1 to 10 and provide specific recommendations for improvement.
Evaluate how well the project separates concerns:
What to look for:
internal/domain/, core/, or pkg/)Rating criteria:
Assess whether packages and functions have focused responsibilities:
What to look for:
utils/, helpers/, common/ dumping groundsRating criteria:
Evaluate adherence to idiomatic Go patterns:
What to look for:
io.Reader), defined by consumer not implementerdefer for cleanup, proper Close() callsinternal/ for private packages, clear public APIRating criteria:
Provide your analysis in this exact format:
## Go Project Quality Rating
### Hexagonal Architecture: X/10
**Current State:**
[2-3 sentences describing the architectural approach]
**Strengths:**
- [specific example with file reference]
- [specific example with file reference]
**Issues:**
- [specific issue with file reference]
- [specific issue with file reference]
**Recommendations:**
1. [actionable recommendation]
2. [actionable recommendation]
---
### Single Responsibility Principle: X/10
**Current State:**
[2-3 sentences on package/function organization]
**Strengths:**
- [specific example with file reference]
**Issues:**
- [specific package or function that violates SRP]
**Recommendations:**
1. [specific refactoring suggestion]
2. [specific refactoring suggestion]
---
### Go Idioms: X/10
**Current State:**
[2-3 sentences on idiomatic Go usage]
**Strengths:**
- [specific pattern used well]
**Issues:**
- [specific anti-pattern with example]
**Recommendations:**
1. [specific improvement]
2. [specific improvement]
---
## Overall Score: X/10
[1 paragraph summary highlighting the most important findings]
## Priority Improvements
1. **[Highest impact]**: [specific action]
2. **[Medium impact]**: [specific action]
3. **[Lower priority]**: [specific action]
Be specific with file paths and line numbers when referencing code. Focus on actionable recommendations that would have the highest impact.