quality

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RefactorFile

func RefactorFile(filepath string) error

RefactorFile automatically refactors a file for conciseness

func SaveReport

func SaveReport(report *Report, filepath string) error

SaveReport saves the report to a file

Types

type ActionItem

type ActionItem struct {
	ID          string    `json:"id"`
	Description string    `json:"description"`
	Priority    string    `json:"priority"`
	Completed   bool      `json:"completed"`
	DueDate     time.Time `json:"due_date,omitempty"`
	Owner       string    `json:"owner,omitempty"`
}

ActionItem represents a task to improve quality

type AnalysisResults

type AnalysisResults struct {
	TotalFiles       int
	TotalLines       int
	TotalFunctions   int
	AvgComplexity    float64
	MaxComplexity    int
	ComplexFunctions []ComplexFunction
	Issues           []Issue
}

AnalysisResults contains project-wide analysis results

type Analyzer

type Analyzer struct {
	// contains filtered or unexported fields
}

Analyzer analyzes code quality metrics

func NewAnalyzer

func NewAnalyzer(projectRoot string) *Analyzer

NewAnalyzer creates a new quality analyzer

func (*Analyzer) AnalyzeFile

func (a *Analyzer) AnalyzeFile(path string) (*FileMetrics, error)

AnalyzeFile analyzes a single Go file

func (*Analyzer) AnalyzeProject

func (a *Analyzer) AnalyzeProject() (*AnalysisResults, error)

AnalyzeProject analyzes the entire project

type ComplexFunction

type ComplexFunction struct {
	File       string
	Function   string
	Complexity int
	Line       int
}

ComplexFunction represents a function with high complexity

type ComplexityGate

type ComplexityGate struct {
	// contains filtered or unexported fields
}

ComplexityGate checks code complexity

func (*ComplexityGate) Check

func (g *ComplexityGate) Check(projectPath string) (bool, []string)

func (*ComplexityGate) Name

func (g *ComplexityGate) Name() string

type ConcisenessAnalyzer

type ConcisenessAnalyzer struct {
	// contains filtered or unexported fields
}

ConcisenessAnalyzer analyzes code for conciseness improvements

func NewConcisenessAnalyzer

func NewConcisenessAnalyzer() *ConcisenessAnalyzer

NewConcisenessAnalyzer creates a new analyzer

func (*ConcisenessAnalyzer) AnalyzeFile

func (c *ConcisenessAnalyzer) AnalyzeFile(filepath string) ([]ConcisenessIssue, error)

AnalyzeFile analyzes a file for conciseness

type ConcisenessIssue

type ConcisenessIssue struct {
	Type       string
	File       string
	Line       int
	Message    string
	Original   string
	Improved   string
	Suggestion string
}

ConcisenessIssue represents a conciseness improvement opportunity

type CoverageGate

type CoverageGate struct {
	// contains filtered or unexported fields
}

CoverageGate checks test coverage

func (*CoverageGate) Check

func (g *CoverageGate) Check(projectPath string) (bool, []string)

func (*CoverageGate) Name

func (g *CoverageGate) Name() string

type DocumentationGate

type DocumentationGate struct {
	// contains filtered or unexported fields
}

DocumentationGate checks documentation coverage

func (*DocumentationGate) Check

func (g *DocumentationGate) Check(projectPath string) (bool, []string)

func (*DocumentationGate) Name

func (g *DocumentationGate) Name() string

type DuplicationGate

type DuplicationGate struct {
	// contains filtered or unexported fields
}

DuplicationGate checks for code duplication

func (*DuplicationGate) Check

func (g *DuplicationGate) Check(projectPath string) (bool, []string)

func (*DuplicationGate) Name

func (g *DuplicationGate) Name() string

type DuplicationResult

type DuplicationResult struct {
	File1      string
	File2      string
	Percentage float64
}

DuplicationResult represents code duplication

type FileMetrics

type FileMetrics struct {
	Path                 string
	Lines                int
	Functions            []FunctionMetrics
	CyclomaticComplexity int
	CognitiveComplexity  int
	Imports              int
	Comments             int
	TestCoverage         float64
	Violations           []Violation
}

FileMetrics contains metrics for a single file

type FunctionMetrics

type FunctionMetrics struct {
	Name                 string
	LineNumber           int
	Lines                int
	Arguments            int
	CyclomaticComplexity int
	CognitiveComplexity  int
	NestingDepth         int
	Returns              int
}

FunctionMetrics contains metrics for a function

type Gate

type Gate interface {
	Check(projectPath string) (bool, []string)
	Name() string
}

Gate represents a quality gate

type Issue

type Issue struct {
	File     string
	Line     int
	Type     string
	Message  string
	Severity string
}

Issue represents a quality issue

type NamingGate

type NamingGate struct{}

NamingGate checks naming conventions

func (*NamingGate) Check

func (g *NamingGate) Check(projectPath string) (bool, []string)

func (*NamingGate) Name

func (g *NamingGate) Name() string

type PerformanceResult

type PerformanceResult struct {
	P95ResponseTime  float64 `json:"p95_response_time_seconds"`
	MemoryUsageMB    float64 `json:"memory_usage_mb"`
	ConcurrentUsers  int     `json:"concurrent_users"`
	ThroughputPerSec float64 `json:"throughput_per_sec"`
}

PerformanceResult contains performance metrics

type PersonaResult

type PersonaResult struct {
	Name     string  `json:"name"`
	Passed   int     `json:"passed"`
	Total    int     `json:"total"`
	PassRate float64 `json:"pass_rate"`
}

PersonaResult contains test results for a persona

type QualityGates

type QualityGates struct {
	// contains filtered or unexported fields
}

QualityGates enforces code quality standards

func NewQualityGates

func NewQualityGates(strict bool) *QualityGates

NewQualityGates creates quality gates

func (*QualityGates) CheckAll

func (q *QualityGates) CheckAll(projectPath string) (bool, []string)

CheckAll checks all quality gates

func (*QualityGates) CheckFile

func (q *QualityGates) CheckFile(filepath string) (bool, []string)

CheckFile checks gates for a single file

type QualityMetrics

type QualityMetrics struct {
	AvgComplexity        float64 `json:"avg_complexity"`
	MaxComplexity        int     `json:"max_complexity"`
	ComplexFiles         int     `json:"complex_files"`
	MaintainabilityIndex float64 `json:"maintainability_index"`
	DuplicationPercent   float64 `json:"duplication_percentage"`
	DocCoverage          float64 `json:"doc_coverage"`
	TotalLines           int     `json:"total_lines"`
	TotalFunctions       int     `json:"total_functions"`
}

QualityMetrics contains code quality measurements

type Recommendation

type Recommendation struct {
	Title       string `json:"title"`
	Priority    string `json:"priority"`
	Effort      string `json:"effort"`
	Description string `json:"description"`
	Impact      string `json:"impact"`
	CodeExample string `json:"code_example,omitempty"`
}

Recommendation provides improvement suggestions

type Report

type Report struct {
	Timestamp       time.Time        `json:"timestamp"`
	Summary         Summary          `json:"summary"`
	QualityMetrics  QualityMetrics   `json:"quality_metrics"`
	UATResults      UATResults       `json:"uat_results"`
	Recommendations []Recommendation `json:"recommendations"`
	ActionItems     []ActionItem     `json:"action_items"`
}

Report represents a comprehensive quality report

func LoadReport

func LoadReport(filepath string) (*Report, error)

LoadReport loads a report from a file

type ReportGenerator

type ReportGenerator struct {
	// contains filtered or unexported fields
}

ReportGenerator generates quality reports

func NewReportGenerator

func NewReportGenerator(projectPath string) *ReportGenerator

NewReportGenerator creates a report generator

func (*ReportGenerator) Generate

func (g *ReportGenerator) Generate() (*Report, error)

Generate creates a comprehensive quality report

type Summary

type Summary struct {
	QualityScore    float64 `json:"quality_score"`
	UATPassRate     float64 `json:"uat_pass_rate"`
	CodeCoverage    float64 `json:"code_coverage"`
	TechnicalDebt   int     `json:"technical_debt_hours"`
	RiskLevel       string  `json:"risk_level"`
	TotalViolations int     `json:"total_violations"`
}

Summary provides executive summary

type Thresholds

type Thresholds struct {
	CyclomaticComplexity int
	CognitiveComplexity  int
	MaxFileLines         int
	MaxFunctionLines     int
	MaxFunctionArguments int
	MaxNestingDepth      int
	MinTestCoverage      float64
	MaxDuplication       float64
}

Thresholds defines quality thresholds

func DefaultThresholds

func DefaultThresholds() Thresholds

DefaultThresholds returns recommended thresholds

type UATResults

type UATResults struct {
	Personas    map[string]PersonaResult `json:"personas"`
	Performance PerformanceResult        `json:"performance"`
	Usability   UsabilityResult          `json:"usability"`
}

UATResults contains user acceptance test results

type UsabilityResult

type UsabilityResult struct {
	ErrorClarity       float64 `json:"error_clarity_score"`
	CLIConsistency     float64 `json:"cli_consistency_score"`
	DocumentationScore float64 `json:"documentation_score"`
}

UsabilityResult contains usability metrics

type Violation

type Violation struct {
	Type       string
	Severity   string
	File       string
	Line       int
	Column     int
	Message    string
	Suggestion string
}

Violation represents a quality violation

Directories

Path Synopsis
cmd
analyze command
conciseness command
gates command
refactor command
report command
suggest command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL