Description
Three types in pkg/cli/logs_models.go — ProcessedRun (line 97), RunSummary (line 213), and DownloadResult (line 239) — share an identical ~16-field analysis core (Run, AwContext, TaskDomain, BehaviorFingerprint, AgenticAssessments, AccessAnalysis, FirewallAnalysis, RedactedDomainsAnalysis, MissingTools, MissingData, Noops, MCPFailures, MCPToolUsage, TokenUsage, GitHubRateLimitUsage, JobDetails). This duplication creates drift risk whenever a new analysis dimension is added.
Suggested Changes
- Extract a shared
RunAnalysis base struct containing the ~16 common fields
- Embed
RunAnalysis in ProcessedRun, RunSummary, and DownloadResult
- Reconcile JSON tags for
RunSummary (has additional persistence fields) to ensure no tag conflicts
- Update all construction sites to initialize via the embedded struct
Files Affected
pkg/cli/logs_models.go (primary)
- Construction sites throughout
pkg/cli/ (search for ProcessedRun{, RunSummary{, DownloadResult{)
Success Criteria
Source
Extracted from [typist] Typist — Go Type Consistency Analysis (pkg/) (2026-07-22)
Priority
High — the largest duplicated field block in the package; eliminates drift risk when analysis dimensions change.
🔍 Task mining by Discussion Task Miner - Code Quality Improvement Agent · sonnet46 49.7 AIC · ⌖ 5.61 AIC · ⊞ 7.1K · ◷
Description
Three types in
pkg/cli/logs_models.go—ProcessedRun(line 97),RunSummary(line 213), andDownloadResult(line 239) — share an identical ~16-field analysis core (Run, AwContext, TaskDomain, BehaviorFingerprint, AgenticAssessments, AccessAnalysis, FirewallAnalysis, RedactedDomainsAnalysis, MissingTools, MissingData, Noops, MCPFailures, MCPToolUsage, TokenUsage, GitHubRateLimitUsage, JobDetails). This duplication creates drift risk whenever a new analysis dimension is added.Suggested Changes
RunAnalysisbase struct containing the ~16 common fieldsRunAnalysisinProcessedRun,RunSummary, andDownloadResultRunSummary(has additional persistence fields) to ensure no tag conflictsFiles Affected
pkg/cli/logs_models.go(primary)pkg/cli/(search forProcessedRun{,RunSummary{,DownloadResult{)Success Criteria
RunAnalysisbase struct extracted with all shared fieldsRunAnalysiswith no JSON tag conflictsmake test-unit)Source
Extracted from [typist] Typist — Go Type Consistency Analysis (pkg/) (2026-07-22)
Priority
High — the largest duplicated field block in the package; eliminates drift risk when analysis dimensions change.