Documentation
¶
Overview ¶
Package report generates certification reports from records.
Package report generates certification reports from records.
Index ¶
- func BadgeMarkdown(repo, branch string) string
- func FormatArchitectReport(result *agent.ArchitectResult, pc *agent.ProjectContext) string
- func FormatBadgeJSON(b Badge) ([]byte, error)
- func FormatCardMarkdown(c Card) string
- func FormatCardText(c Card) string
- func FormatDetailedText(d DetailedReport) string
- func FormatFullMarkdown(r FullReport) string
- func FormatJSON(v any) ([]byte, error)
- func FormatSearchIndexJS(entries []SearchEntry) string
- func FormatText(h HealthReport) string
- func FormatUnitMarkdown(u UnitReport, r FullReport) string
- func GenerateReportTree(r FullReport, outDir string) (int, error)
- func GenerateSite(r FullReport, cfg SiteConfig) error
- func GenerateUnitReports(r FullReport, outDir string) (int, error)
- type AreaSummary
- type Badge
- type Card
- type DetailedReport
- type EvidenceSummary
- type FullReport
- type HealthReport
- type IssueCard
- type LanguageDetail
- type PackageSummary
- type SearchEntry
- type SiteConfig
- type UnitReport
- type UnitSummary
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BadgeMarkdown ¶
BadgeMarkdown returns a markdown snippet to embed in a README. repo is "owner/repo", branch is typically "main".
func FormatArchitectReport ¶ added in v0.6.0
func FormatArchitectReport(result *agent.ArchitectResult, pc *agent.ProjectContext) string
FormatArchitectReport renders the architectural review as a markdown document. Part I (snapshot) is deterministic from data. Part II uses LLM analysis. Part III formats comparative recommendations with delta tables.
func FormatBadgeJSON ¶
FormatBadgeJSON marshals the badge to pretty JSON.
func FormatCardMarkdown ¶
FormatCardMarkdown renders the report card as a GitHub-friendly markdown block.
func FormatCardText ¶
FormatCardText renders the report card as a human-readable text block.
func FormatDetailedText ¶
func FormatDetailedText(d DetailedReport) string
FormatDetailedText produces a human-readable detailed report.
func FormatFullMarkdown ¶
func FormatFullMarkdown(r FullReport) string
FormatFullMarkdown renders the complete report as a markdown document.
func FormatJSON ¶
FormatJSON produces JSON output for a report.
func FormatSearchIndexJS ¶ added in v0.2.0
func FormatSearchIndexJS(entries []SearchEntry) string
FormatSearchIndexJS returns a JavaScript constant declaration containing the search index as a JSON array, suitable for embedding in an HTML page.
func FormatText ¶
func FormatText(h HealthReport) string
FormatText produces a human-readable text report.
func FormatUnitMarkdown ¶ added in v0.1.4
func FormatUnitMarkdown(u UnitReport, r FullReport) string
FormatUnitMarkdown renders a complete per-unit report card.
func GenerateReportTree ¶ added in v0.3.0
func GenerateReportTree(r FullReport, outDir string) (int, error)
GenerateReportTree writes a hierarchical markdown report tree.
Structure:
outDir/
index.md top-level index
<pkg>/
index.md package roll-up
<filename>/
<symbol>.md unit certificate (if symbol exists)
<filename>.md unit certificate (file-level, no symbol)
Returns the total number of files written.
func GenerateSite ¶ added in v0.2.0
func GenerateSite(r FullReport, cfg SiteConfig) error
GenerateSite generates a complete static HTML site from a FullReport. The site is self-contained with embedded CSS and works via file:// protocol.
func GenerateUnitReports ¶ added in v0.1.4
func GenerateUnitReports(r FullReport, outDir string) (int, error)
GenerateUnitReports writes individual markdown files for each unit. Returns the number of files written and any error.
Types ¶
type AreaSummary ¶
type AreaSummary struct {
Path string `json:"path"`
Total int `json:"total"`
Failing int `json:"failing"`
AverageScore float64 `json:"average_score"`
}
AreaSummary summarizes certification for a directory or package.
type Badge ¶
type Badge struct {
SchemaVersion int `json:"schemaVersion"`
Label string `json:"label"`
Message string `json:"message"`
Color string `json:"color"`
Style string `json:"style,omitempty"`
NamedLogo string `json:"namedLogo,omitempty"`
LogoColor string `json:"logoColor,omitempty"`
}
Badge is a shields.io-compatible endpoint badge. See https://shields.io/badges/endpoint-badge
func GenerateBadge ¶
GenerateBadge creates a shields.io endpoint badge from a report card.
type Card ¶
type Card struct {
// Header
Repository string `json:"repository"`
GeneratedAt string `json:"generated_at"`
CommitSHA string `json:"commit_sha,omitempty"`
// Overall grade
OverallGrade string `json:"overall_grade"`
OverallScore float64 `json:"overall_score"`
PassRate float64 `json:"pass_rate"`
// Counts
TotalUnits int `json:"total_units"`
Passing int `json:"passing"`
Failing int `json:"failing"`
Expired int `json:"expired"`
Observations int `json:"observations"`
// Grade distribution
GradeDistribution map[string]int `json:"grade_distribution"`
// By-language summary
Languages []LanguageDetail `json:"languages"`
// Top issues (up to 10)
TopIssues []IssueCard `json:"top_issues,omitempty"`
// Package summaries (populated for report tree navigation)
Packages []PackageSummary `json:"packages,omitempty"`
}
Card is a concise, shareable certification report card.
func GenerateCard ¶
GenerateCard creates a report card from certification records.
type DetailedReport ¶
type DetailedReport struct {
HealthReport
// Dimension-level averages
Dimensions map[string]float64 `json:"dimensions,omitempty"`
// By-language breakdown
ByLanguage map[string]LanguageDetail `json:"by_language,omitempty"`
// Expiring-soon units (within 14 days)
ExpiringSoon []UnitSummary `json:"expiring_soon,omitempty"`
// Highest-risk units (lowest scores)
HighestRisk []UnitSummary `json:"highest_risk,omitempty"`
// Failing/non-passing units with explanations
Failing []UnitSummary `json:"failing,omitempty"`
// Recurrently failing areas (directories with multiple failing units)
RecurrentlyFailing []AreaSummary `json:"recurrently_failing,omitempty"`
}
DetailedReport extends HealthReport with richer analysis.
func Detailed ¶
func Detailed(records []domain.CertificationRecord, now time.Time) DetailedReport
Detailed computes a full detailed report from certification records. Detailed computes a full detailed report from certification records.
type EvidenceSummary ¶ added in v0.4.0
type EvidenceSummary struct {
Kind string `json:"kind"`
Source string `json:"source"`
Passed bool `json:"passed"`
Summary string `json:"summary,omitempty"`
Metrics map[string]float64 `json:"metrics,omitempty"`
}
EvidenceSummary is a flattened view of a single evidence item for reports.
type FullReport ¶
type FullReport struct {
// Header
Repository string `json:"repository"`
CommitSHA string `json:"commit_sha,omitempty"`
GeneratedAt string `json:"generated_at"`
// Summary card
Card Card `json:"card"`
// Every unit with full details
Units []UnitReport `json:"units"`
// Dimension averages across all units
DimensionAverages map[string]float64 `json:"dimension_averages"`
// By-language detail
LanguageDetail []LanguageDetail `json:"language_detail"`
}
FullReport is a complete, per-unit certification report.
func GenerateFullReport ¶
func GenerateFullReport(records []domain.CertificationRecord, repo, commit string, now time.Time) FullReport
GenerateFullReport creates a comprehensive per-unit report.
type HealthReport ¶
type HealthReport struct {
TotalUnits int `json:"total_units"`
Certified int `json:"certified"`
CertifiedWithObs int `json:"certified_with_observations"`
Probationary int `json:"probationary"`
Expired int `json:"expired"`
Decertified int `json:"decertified"`
Exempt int `json:"exempt"`
PassRate float64 `json:"pass_rate"`
AverageScore float64 `json:"average_score"`
}
HealthReport summarizes the certification state of a repository.
func Health ¶
func Health(records []domain.CertificationRecord) HealthReport
Health computes a health report from certification records.
type IssueCard ¶
type IssueCard struct {
UnitID string `json:"unit_id"`
Grade string `json:"grade"`
Score float64 `json:"score"`
Reason string `json:"reason"`
}
IssueCard describes a single unit needing attention.
type LanguageDetail ¶
type LanguageDetail struct {
Name string `json:"name"`
Units int `json:"units"`
Passing int `json:"passing"`
AverageScore float64 `json:"average_score"`
Grade string `json:"grade"`
GradeDistribution map[string]int `json:"grade_distribution"`
TopScore float64 `json:"top_score"`
BottomScore float64 `json:"bottom_score"`
}
LanguageDetail is the unified language summary type used across all report formats. It replaces the former LanguageCard, LanguageBreakdown, and langRow types.
type PackageSummary ¶ added in v0.3.0
type PackageSummary struct {
Path string `json:"path"`
Units int `json:"units"`
Grade string `json:"grade"`
AvgScore float64 `json:"avg_score"`
PassRate float64 `json:"pass_rate"`
}
PackageSummary holds roll-up stats for a single package directory.
func BuildPackageSummaries ¶ added in v0.3.0
func BuildPackageSummaries(r FullReport) []PackageSummary
BuildPackageSummaries computes per-package stats from a FullReport.
type SearchEntry ¶ added in v0.2.0
type SearchEntry struct {
Name string `json:"n"`
Path string `json:"p"`
UnitID string `json:"id"`
Grade string `json:"g"`
Status string `json:"s"`
Language string `json:"l"`
Score float64 `json:"sc"`
PackageURL string `json:"pu"`
UnitURL string `json:"uu"`
}
SearchEntry is a compact representation of a unit for client-side search.
func BuildSearchIndex ¶ added in v0.2.0
func BuildSearchIndex(r FullReport) []SearchEntry
BuildSearchIndex creates a compact search index from a FullReport.
type SiteConfig ¶ added in v0.2.0
type SiteConfig struct {
OutputDir string // Directory to write the site into
Title string // Site title (typically repo name)
BasePath string // Base path for GitHub Pages subdirectory hosting
IncludeSearch bool // Whether to include client-side search (default: true)
}
SiteConfig configures static site generation.
type UnitReport ¶
type UnitReport struct {
UnitID string `json:"unit_id"`
UnitType string `json:"unit_type"`
Path string `json:"path"`
Language string `json:"language"`
Symbol string `json:"symbol,omitempty"`
Status string `json:"status"`
Grade string `json:"grade"`
Score float64 `json:"score"`
Confidence float64 `json:"confidence"`
Dimensions map[string]float64 `json:"dimensions"`
Evidence []EvidenceSummary `json:"evidence,omitempty"`
Observations []string `json:"observations,omitempty"`
Actions []string `json:"actions,omitempty"`
CertifiedAt string `json:"certified_at"`
ExpiresAt string `json:"expires_at"`
Source string `json:"source"`
}
UnitReport is the complete certification detail for a single unit.
type UnitSummary ¶
type UnitSummary struct {
UnitID string `json:"unit_id"`
Path string `json:"path"`
Status string `json:"status"`
Grade string `json:"grade"`
Score float64 `json:"score"`
ExpiresAt string `json:"expires_at,omitempty"`
Explanation string `json:"explanation,omitempty"`
Observations []string `json:"observations,omitempty"`
}
UnitSummary is a compact representation of a unit for report lists.