I ran Sol 6 vs. 6.1 on tasks from my own repo. It's cheaper and at least as good A developer's head-to-head test of Sol 6 versus Sol 6.1 on tasks from their own repository found the newer model cheaper and at least as capable. The comparison used the `stet runs repair-ai-coverage` command with `--model-key model-one`, and the accompanying code changes add `--parse-retries` handling for saved `code_review` prompts whose evaluator responses failed JSON/schema parsing, rewriting validation artifacts only after a successful repair. The patch also adds a `prepareCoverageRepairPrompts` step that requires the original task projection, matching artifact digests, persisted test commands, and complete repository context, leaving unavailable provenance unresolved. … stet runs repair-ai-coverage --out /path/to/h2h-output --model-key model-one --c 292292 293293 Use --parse-retries when saved code review prompts exist but evaluator 294294 responses failed JSON/schema parsing. The command rewrites validation artifacts 295− only after a successful repair and regenerates summaries/task details. 295+ only after a successful repair and regenerates summaries/task details. Stored 296+ prompts retain their measurement mode and truncation. Missing-prompt repair 297+ requires the original task projection, matching artifact digests, persisted test 298+ commands, and complete repository context; unavailable provenance stays 299+ unresolved. Attempt counts and retry reasons distinguish recovery from an 300+ initial successful grade; assertions and unrecoverable runtime errors are not 301+ retried. 296302 297303 Regrade additive custom or bundled graders from canonical task details: 298304 … const coverageValidationGolden = { 843843 }, 844844 "equiv rescue policy": "on", 845845 "equivalence": { 846+ "attempt count": 1, 846847 "confidence": 0.95, 847848 "evaluator model": "judge-a", 848849 "issue type": "stylistic", … func p repairAICoverageProducer Produce mctx MutationContext ProduceResul 274274 var mu sync.Mutex 275275 runWithConcurrency jobs, min len jobs , coverageRepairWorkers , func job repairJob { 276276 reporter.recordTaskStart variant, job.TaskID, job.CurrentWork, time.Now .UTC 277− result, repairErr := validate.RepairCoverage ctx, validate.CoverageRepairConfig{ 277+ repairCfg := validate.CoverageRepairConfig{ 278278 Existing: job.Validation, 279279 AI: ai, 280280 AIModelID: resolvedAIModelID, 281281 RepairEquivalence: repairEquivalence && needsRepairCoverage job.Validation, TaskGraderEquivalence, resolvedAIModelID , 282282 RepairCodeReview: repairCodeReview && needsRepairCoverage job.Validation, TaskGraderCodeReview, resolvedAIModelID , 283283 ReviewParseRetries: cfg.ParseRetries, 284− } 284+ } 285+ cleanup, reconstructionIssues := prepareCoverageRepairPrompts &repairCfg, manifest, NewTaskArtifacts outputRoot, variant, job.TaskID, "" 286+ if cleanup = nil { 287+ defer cleanup 288+ } 289+ result := validate.CoverageRepairResult{Validation: job.Validation} 290+ var repairErr error 291+ if repairCfg.RepairEquivalence || repairCfg.RepairCodeReview { 292+ result, repairErr = validate.RepairCoverage ctx, repairCfg 293+ } 294+ result.Unresolved = append result.Unresolved, reconstructionIssues... 285295 if repairErr = nil { 286296 reporter.recordTaskEnd variant, job.TaskID, job.CurrentWork, "failed", time.Now .UTC 287297 mu.Lock … func RunAdaptedReferenceTest ctx context.Context, ai AIClient, promptCtx PromptC 292292 composedDiff, composeErr := composeAdaptedReferenceTestPatch runCtx, inputs, referenceTestPatch, canonicalDiff 293293 if composeErr = nil { 294294 result.Reason = "patch compose failed" 295− result.Summary = fmt.Sprintf "compose canonical reference test patch and adapted diff: %v", composeErr 295+ result.Summary = fmt.Sprintf "adapted diff could not be composed with the canonical reference test patch: %v", composeErr 296296 return result 297297 } 298298 composedPayload := payload … import 99 "strings" 1010 "time" 1111 12+ "stet/internal/commandlist" 1213 "stet/internal/filecopy" 1314 "stet/internal/gitops" 1415 "stet/internal/harness" … func legacyCommandsThatNameAgentTests commands, agentFiles string string { 192193 files := normalizeAgentTestFiles agentFiles 193194 var out string 194195 for , command := range normalizeCommands commands { 195− if commandHasPotentialNonPathTestSelection command || receiptBackedCommandHasShellControl command { 196+ if , , safe := commandlist.TestInvocation command ; safe || commandHasPotentialNonPathTestSelection command || receiptBackedCommandHasShellControl command { 196197 continue 197198 } 198199 for , file := range files { … import 66 "fmt" 77 "os" 88 "path/filepath" 9+ "strconv" 910 "strings" 1011 12+ "stet/internal/commandlist" 1113 "stet/internal/shellcmd" 1214 1315 … func replaceExactFinalTestPath command, sourcePath, replacement string string, 198200 } 199201 200202 func certifiedGoReplayCommand command, sourcePath string string, bool { 201− if strings.HasSuffix strings.ToLower sourcePath , ".go" || goCommandTargetsAgentTestFiles command, string{sourcePath} { 203+ , fields, safe := commandlist.TestInvocation command 204+ if safe || len fields < 3 || fields 0 .Value = "go" || fields 1 .Value = "test" || strings.HasSuffix strings.ToLower sourcePath , ".go" { 202205 return "", false 203206 } 204− replay, changed := removeGoRunSelector command 205− if changed || hasRemainingGoTestSelector replay { 207+ // Require one explicit package. A recursive selector or additional package 208+ // can credit tests outside the certified source package. 209+ sourceDirectory := filepath.Dir sourcePath 210+ allFields, := shellcmd.FieldSpans command 211+ // Go also consumes selectors from GOFLAGS. Recorded overrides are opaque 212+ // to this bounded rewrite, so they cannot certify an unfiltered replay. 213+ for , field := range allFields { 214+ if field.Start = fields 0 .Start { 215+ break 216+ } 217+ if strings.HasPrefix field.Value, "GOFLAGS=" { 218+ return "", false 219+ } 220+ } 221+ if len allFields = 3 && allFields 0 .Value == "cd" { 222+ relative, err := filepath.Rel allFields 1 .Value, sourceDirectory 223+ if err = nil || relative == ".." || strings.HasPrefix relative, "../" { 224+ return "", false 225+ } 226+ sourceDirectory = relative 227+ } 228+ packagePath := "./" + filepath.ToSlash sourceDirectory 229+ if sourceDirectory == "." { 230+ packagePath = "." 231+ } 232+ if strings.TrimSuffix fields 2 .Value, "/" = packagePath { 233+ return "", false 234+ } 235+ start, end := -1, -1 236+ for i := 3; i < len fields ; i++ { 237+ value := fields i .Value 238+ if value == "-run" || strings.HasPrefix value, "-run=" { 239+ if start = 0 { 240+ return "", false 241+ } 242+ start, end = fields i .Start, fields i .End 243+ if value == "-run" { 244+ if i+1 = len fields || strings.HasPrefix fields i+1 .Value, "-" { 245+ return "", false 246+ } 247+ i++ 248+ end = fields i .End 249+ } 250+ continue 251+ } 252+ // Only flags with self-contained values may remain. Positional words, 253+ // passthrough args, and further selectors cannot be proven safe. 254+ name := strings.SplitN value, "=", 2 0 255+ if name == "-count" { 256+ countText, hasValue := strings.CutPrefix value, "-count=" 257+ count, err := strconv.Atoi countText 258+ if hasValue || err = nil || count <= 0 { 259+ return "", false 260+ } 261+ } 262+ switch name { 263+ case "-v", "-race", "-short", "-count", "-timeout", "-parallel", "-shuffle", "-tags", "-mod": 264+ if strings.Contains value, "=" && name = "-v" && name = "-race" && name = "-short" { 265+ return "", false 266+ } 267+ default: 268+ return "", false 269+ } 270+ } 271+ if start < 0 { 206272 return "", false 207273 } 208− return replay, true 274+ return strings.TrimSpace strings.TrimRight command :start , " \t" + command end: , true 209275 } 210276 211277 func normalizeReplayRelativePath path string string { … func TestValidateAgentTestReplayPlanRejectsUnprovenCommand t testing.T { 6161 t.Fatalf "validation error = %v", err 6262 } 6363 } 64+ 65+ func TestCertifiedGoReplayPreservesOnlyProvenInvocation t testing.T { 66+ command := "cd module && env MODE='test value' timeout 30s go test ./pkg -run 'TestHidden|TestOther' -count=1" 67+ got, ok := certifiedGoReplayCommand command, "module/pkg/hidden test.go" 68+ if ok || got = "cd module && env MODE='test value' timeout 30s go test ./pkg -count=1" { 69+ t.Fatalf "replay = %q, %v", got, ok 70+ } 71+ for , unsafe := range string{ 72+ "echo go test ./pkg -run TestHidden", "go test ./pkg -run TestHidden; true", 73+ "go test ./pkg -run TestHidden && go test ./other", "go test ./... -run TestHidden", 74+ "go test ./pkg ./other -run TestHidden", "go test ./pkg -run TestHidden -skip TestOther", 75+ "go test ./pkg -run TestHidden -args payload", "go test ./pkg -run TestHidden -run TestOther", 76+ "go test ./pkg -run TestHidden -count=0", "go test ./pkg -run TestHidden -count=-1", 77+ "go test ./pkg -run TestHidden -count=invalid", "go test ./pkg -run TestHidden -count 0", 78+ "go test ./pkg -run TestHidden -count -1", 79+ "GOFLAGS=-count=0 go test ./pkg -run TestHidden", 80+ "GOFLAGS='-run=Nothing' go test ./pkg -run TestHidden", 81+ "env GOFLAGS=-count=0 go test ./pkg -run TestHidden", 82+ "cd module && env GOFLAGS='-run=Nothing' go test ./pkg -run TestHidden", 83+ } { 84+ if replay, ok := certifiedGoReplayCommand unsafe, "pkg/hidden test.go" ; ok { 85+ t.Errorf "accepted %q as %q", unsafe, replay 86+ } 87+ } 88+ } 89+ 90+ func TestLegacyReplayRequiresAnActualTestRunner t testing.T { 91+ commands := legacyCommandsThatNameAgentTests string{ 92+ "echo tests/agent test.sh", "cat tests/agent test.sh", "rm tests/agent test.sh", 93+ "sh -c tests/agent test.sh", "'CI=1' sh tests/agent test.sh", "sh tests/agent test.sh", 94+ }, string{"tests/agent test.sh"} 95+ if len commands = 1 || commands 0 = "sh 'tests/agent test.sh'" { 96+ t.Fatalf "legacy replay commands = %q", commands 97+ } 98+ } … func buildEquivalenceRetryPrompt originalPrompt, rawOutput string, parseErr erro 1818 1919 } 2020 21− func RunEquivalence ctx context.Context, ai AIClient, promptCtx PromptContext EquivalenceResult { 21+ func RunEquivalence ctx context.Context, ai AIClient, promptCtx PromptContext result EquivalenceResult { 22+ mode := EquivalencePromptModeStandard 23+ if goldBlindEquivalenceEnabled { 24+ mode = EquivalencePromptModeGoldBlind 25+ } 26+ history := newGradeAttemptClient ai 27+ ai = history 28+ defer func { result.PromptMode = mode; history.annotateEquivalence &result } 29+ 2230 if goldBlindEquivalenceEnabled { 2331 // No gold reaches the model, so gold truncation cannot have mutilated 2432 // the graded evidence: clear it before the truncation annotation runs. … 11 package validate 22 33 import 4+ "fmt" 45 "os" 56 "strconv" 67 "strings" … notes: