package reporting import ( "encoding/json" "fmt" "os" "time" ) type ProcessReport struct { Phase string `json:"phase"` Status string `json:"status"` Operation string `json:"operation"` TranscriptPath string `json:"transcript_path"` GlossaryPath string `json:"glossary_path"` OutputPath string `json:"output_path,omitempty"` Modules []string `json:"modules"` StartedAt time.Time `json:"started_at"` CompletedAt *time.Time `json:"completed_at,omitempty"` ErrorMessage string `json:"error_message,omitempty"` } func WriteProcessReport(path string, report ProcessReport) error { payload, err := json.MarshalIndent(report, "", " ") if err != nil { return fmt.Errorf("failed to marshal process report JSON: %w", err) } payload = append(payload, '\n') if err := os.WriteFile(path, payload, 0o644); err != nil { return fmt.Errorf("failed to write report JSON file %q: %w", path, err) } return nil }