Performance-improvement review: validation
Start at the delivery audit and sprint-11 final acceptance. The RED record below is preserved apart from this navigation note. Earlier results are in GREEN and post-refactor replay; C5 and its complete 33-case result retain the actual execution history. Earlier not run, fallback-only discovery and sprint-10 residual obligations describe their historical freezes, not current status. Historical "verified human" labels are superseded by the source-attribution audit, not by changed case expectations.
RED creation recorded: 2026-09-22T11:04:34Z, against repository revision ae294143e5890033fcb717956050a91a6f2ed6e8. Freeze version RED-1 includes the independently verified pre-freeze corrections recorded below. This freezes source-derived expectations before a new reviewer exists. It is corpus validation, not a failed candidate execution. No candidate reviewer, benchmark, compiler build or compiler test is run in this sprint. Source acquisition remains bounded by corpus.md's 2026-04-22 through 2026-09-22 window and 2026-09-22T09:28:34Z cutoff; later capture times do not extend it.
Outcomes
pass: the applicable claim/check is supported by the available evidence; not a universal certification.needs evidence: a specific missing measurement, reproducibility detail, or behavior proof prevents a conclusion; not proof of a defect.risk/blocker: concrete code, observed regression, or a substantiated failure scenario establishes a material risk. Cite the mechanism and evidence.not applicable: this check does not apply to the actual claim/change; give a short reason.
G1-G8 mean the exact eight groups in evidence.md. Outcomes below apply only to named checks. A structural/test-shape pass is not an overall PR approval or an assertion that the tests were executed here.
Packet boundary and immutable inputs
Give the candidate only the selected fenced text packet below, the PR/family/code coordinates/capture/hash fields of its source-pin row (not corpus links), and the diff/source files reconstructed at those pins. Do not give it this document's oracle matrix, coverage/audit sections, evidence rules' source discussion, corpus source notes, PR decisions, review threads, later fixes, or live GitHub discussion access. The runner may fetch pinned Git objects but not mutable PR pages. This keeps the held-back objection/answer out of the reviewer input. Full diffs are reconstructible, not copied into the matrix:
git --no-pager diff --no-ext-diff --no-textconv --full-index --binary $mergeBase $head
git --no-pager show "${head}:src/Compiler/AbstractIL/ilwrite.fs"
Git object syntax uses repository-relative /; filesystem paths use \. Use the merge base for that historical head, not today's main or a final head's merge base. Descriptions are captured final-stage snapshots, with original body hashes/capture times in the corpus. Earlier edited descriptions cannot be recovered: historical code-only pairs deliberately contain no PR description or benchmark table. They score only the designated code/behavior/scope check; missing descriptions in those curated slices are not claims that the real PR lacked a description. Never combine a final description with old code and pretend it was available then.
Source-pin keys are evaluator bookkeeping, not outcome hints. For final-stage packets, the exact corpus description/diff hashes remain the raw-snapshot references; the compact packet is a faithful extraction, not a verbatim historical body. SHA-256 packet hashes below cover the fenced text's UTF-8 bytes with LF line endings and a final LF. Future changes must create a new case/version rather than quietly overwrite these oracles.
Pin |
PR / family |
Stage and code head |
Merge base |
Description capture / source snapshot |
|---|---|---|---|---|
A |
#20352 / FAMILY-inline-copy |
Sole submitted head |
|
2026-09-22T09:38:11Z; corpus source, body |
B |
#20363 / FAMILY-inline-copy |
Final |
|
2026-09-22T09:38:13Z; corpus source, body |
C |
#20348 / FAMILY-self-profile |
Original review |
|
Code-only; original description unavailable, not replaced with current body. |
D |
#20348 / FAMILY-self-profile |
Final |
|
2026-09-22T10:44:55Z; supplement, body |
E |
#20261 / FAMILY-il-import-retention |
Final |
|
2026-09-22T09:37:54Z; corpus source, body |
F |
#20353 / FAMILY-self-profile |
Original review |
|
Code-only; original description unavailable. |
G |
#20353 / FAMILY-self-profile |
Final |
|
2026-09-22T10:46:40Z; supplement, body |
H |
#20349 / FAMILY-self-profile |
Original review |
|
Code-only; original description unavailable. |
I |
#20349 / FAMILY-self-profile |
Final |
|
2026-09-22T10:45:31Z; supplement, body |
J |
#19689 / FAMILY-ce-method-cache |
Final |
|
2026-09-22T09:34:52Z; corpus source, body |
K |
#20416 / FAMILY-il-import-retention |
Final |
|
2026-09-22T09:38:24Z; corpus source, body |
L |
#20244 / FAMILY-pattern-memo |
Final |
|
2026-09-22T09:37:54Z; corpus source, body |
M |
#20296 / FAMILY-il-import-retention |
Final |
|
2026-09-22T09:37:59Z; corpus source, body |
P01
Pin A. Final captured description; no review decisions supplied.
Claim: fuse copyExpr and remarkExpr to avoid the second full tree rebuild.
65,880 LOC / 120 files, --optimize+: allocated MB/compile 10,673 -> 10,352.
Description reports byte-identical emitted IL/PDBs on all checked workloads.
No repetition count, variability, machine/tool versions, workload revision or runnable command supplied.
Diff: optimizer call sites plus pervasive optional range/debug-point handling in the remapper and an exported internal signature; no added tests.
P02
Pin B. Final captured description.
Claim: fuse generic inlining copy and type instantiation using remapExpr/mkInstRemap.
Release net11.0, 65,880 LOC, GC.GetTotalAllocatedBytes(true), 3 runs x 4 iterations.
build | allocated MB/compile
base | 10,662
changed | 10,105
Description reports 671 EmittedIL/Optimizations passes, six PrintFunction environment failures also on base, and differential IL/PDB identity for listed generic/loop/closure/byref/SRTP cases.
Reflected-definition resource-name tag changes with the unique-number count; payload hash reportedly unchanged.
Two diff hunks in one localized optimizer function plus release note; remapping implementation unchanged.
No raw runs, dispersion, hardware/SDK identity, workload revision or runnable benchmark command supplied.
P03
Pin C. Historical code-only scope check, not a reconstructed PR description.
SortTableRows packs Val/Tag/original position into int64 keys to preserve stable ordering.
It fills zero-created key and result arrays with indexed loops; System.Array.Sort sorts the keys.
Inspect the complete pinned diff and SortTableRows callers. No timing evidence is supplied in this slice.
P04
Pin D. Final captured description and code.
Four self-profiled compiler hot-path changes: metadata sorting, postponed target emission, nullness reuse, type-hierarchy common-subexpression elimination.
Metadata sort: 65,536 rows, 10.6 -> 2.5 ms and 6.55 -> 1.05 MB allocated; 64 rows, 2.99 -> 0.43 us.
Nullness application: about 153,000 allocations removed per 65k-LOC compile; sampled own CPU 0.52 -> 0.38 s.
Hierarchy loop exclusive CPU 214 -> 160 ms. Target-emission microbench claims 2.6-7x speed and about half allocations.
Description claims output identity. Repetitions/error, environment, exact workload/compiler benchmark commits and runnable commands absent.
SortTableRows uses array comprehensions for keys/results at this head.
P05
Pin E. Final captured description. Claim: less retained memory after ParseAndCheckProject.
Mean of 3 runs in fresh processes per project.
Project | before MB | after MB
consoleapp | 33.25 | 31.11
Oxpecker | 69.65 | 65.77
IcedTasks | 47.10 | 44.93
FsToolkit | 69.97 | 67.86
Fantomas.Benchmarks | 64.26 | 61.33
Prime | 100.99 | 99.44
Fantomas.Core | 107.74 | 106.21
Fantomas.Core.Tests | 140.20 | 137.61
FSharp.Common | 261.81 | 251.68
fcs | 1226.73 | 1223.99
FSharp.Common has 489 references. Description reports total allocation down 1-34 MB/project and analysis time unchanged within noise.
Two tables per reader: string-heap cache grows from zero; computed-name interning removed.
Author reports about 3.0 MB fixed buckets versus at most 0.24 MB duplicated names (2,077 strings).
No machine/runtime/tool versions, spread/raw runs, executable command, subject revisions, benchmark binary commit mapping or precise retained-heap collection protocol supplied.
P06
Pin F. Historical code-only behavior/test check. No historical description recovered.
GetParamAttribs memoizes IL parameter attributes per ImportMap with WeakMap/MemoizationTable.
Key equality uses physical ILMethodDef and extension-view flag, ignoring the supplied range; instantiated declaring types bypass memoization.
Added test compares instance/static Enumerable.Select results using "if a <> b then failwith".
The test pipeline ends with compile |> shouldSucceed.
Inspect OptionalArgInfo.FromILParameter, including metadata import and error location.
P07
Pin G. Final description/code.
Claim: eliminate repeated IL parameter-attribute computation on overload-heavy compilation.
ComputeILMethodParamAttribs allocated 477 MB -> 0; description also says "~810 MB total".
fsc --times table: 99.75% hits; 5,341 adds; 0 updates; 2,167,099 hits; 5,341 misses; 0 evictions.
Output reportedly byte-identical. No elapsed-time table, variability, environment or executable workload command supplied.
Cache uses physical ILMethodDef plus extension flag and ignores range; instantiated declaring types bypass memoization.
Instance/static extension-call test now ends with compileExeAndRun |> shouldSucceed.
P08
Pin H. Historical code-only behavior check; historical description not recovered.
applyBrFixups replaces sorting by offset with List.rev.
RecordReqdBrFixups prepends the current code position, then emits an instruction byte and placeholders.
No execution result is supplied in this slice.
P09
Pin I. Final captured description/code.
Branch fixups: replace sorting by offset with List.rev.
65,880 LOC / 120 files, net11 Release; about 46,465 calls/compile, 88% empty, longest list 25.
step | before | after
time ms/compile | 0.595 | 0.240
allocated KB/compile | 1444 | 634
Author reports 139,370 method-body order comparisons, zero mismatches and zero ties.
RecordReqdBrFixups now documents strictly increasing recorded positions and asserts them in Debug.
No raw measurements, variability, machine/SDK details or reproduction command supplied.
P10
Pin J. Final captured description/code.
Centralizes CE builder-method lookup in a per-expression dictionary, routes method-presence checks through it and adds missing-member diagnostics tests.
Lookup changes AtMostOneResult to AllResults and substitutes the builder range for per-call lookup ranges.
Description includes a Release net10.0/osx-arm64 build log and two passing component tests.
No before/after performance measurements, workload or repetitions are supplied; build duration is not a comparative benchmark.
No explicit elapsed-time speedup is claimed.
P11
Pin K. Final captured description/code.
Claim: share imported project CCUs rather than pickle/unpickle each consumer.
Solution | projects | before retained MB | after retained MB
ReSharper.FSharp | 10 | 385.94 | 304.64
Fantomas | 8 | 350.42 | 275.79
FSharp.Compiler.Service | 14 | 879.43 | 818.39
FsToolkit.ErrorHandling | 8 | 87.77 | 69.36
Oxpecker | 16 | 131.67 | 114.24
Prime | 5 | 112.22 | 97.93
IcedTasks | 7 | 96.97 | 92.37
consoleapp | 1 | 29.38 | 29.37
Author says handover alone moves the FCS solution by 2 MB, not 61 MB; most saving comes from dropping language version from the import reuse key.
Checker creation flags changed relative to earlier numbers; exact flags, repetitions/error, environment and commands absent.
Final code creates unresolved thunks for names absent from the consumer; captured description still says missing names keep the producer's CCU.
Final diff includes sharing/language-setting/race changes and tests for concurrent consumers, diagnostics and imported surfaces.
P12
Pin L. Final captured description/code. Claim: avoid guarded-or-pattern compilation blowup.
End-to-end compilation with --optimize+; author states about 2.4 s fixed startup.
N | before time / image size | after time / image size
6 | 3.7 s / 8 KB | 2.6 s / 8 KB, identical IL
8 | 2.5 s / 17 KB | 3.8 s / 12 KB
12 | 3.2 s / 183 KB | 2.5 s / 25 KB
16 | 9.6 s / 2.9 MB | 2.8 s / 61 KB
20 | >90 s, did not finish | 3.3 s / 126 KB
24 | stack overflow | 3.9 s / 221 KB
Emitted-runtime shape: promoted --optimize+ uses static calls/no allocation; --optimize- uses a local FSharpFunc closure and one call/allocation per shared residual.
Byref-like results are not promoted. Ordinary nonpromoted matches reportedly keep identical deterministic IL; promoted quotations intentionally expose joinThunk.
Author reports matching active-pattern evaluation counts for two inputs at N=6/8/16. Tests assert execution, guard bindings, byref/rethrow and quotation behavior.
No generated-program elapsed-runtime benchmark, repetitions/error, environment or exact benchmark compiler SHAs supplied.
P13
Pin M. Final captured description/code. Claim: share imported assembly CCUs across projects.
Real whole-solution options graph; all projects checked and held.
Solution | projects | retained off MB | retained on MB
ReSharper.FSharp | 10 | 1547.2 | 1002.2
Oxpecker | 16 | 226.8 | 190.4
FsToolkit.ErrorHandling | 8 | 218.3 | 206.7
IcedTasks | 7 | 194.6 | 184.5
Fantomas | 8 | 665.7 | 658.3
Prime | 5 | 215.1 | 212.9
FCS.slnx | 14 | 2444.9 | 2443.7
consoleapp | 1 | 30.9 | 30.9
Warm ParseAndCheckProject time: median 9 samples across processes, rotated order.
ReSharper 13.28 -> 12.10 s (-8.9%); Fantomas 3.88 -> 3.90 s (+0.7%, author says inside spread).
Retained repetition count, numerical time spread, raw runs, hardware/SDK and exact benchmark commit/command mapping not supplied.
Final code uses typed dependency-closure/configuration keys, weak entries and per-entry strong dependency ownership; default on with opt-out.
S01
Request-required synthetic control. No real PR, commits or human source.
Description: "Faster."
No benchmark numbers, workload, configuration, environment or code evidence supplied.
S02
Request-required synthetic control. No real PR or human source.
Claim limited to generated closure count for one unchanged input/flags.
Supplied before/after IL inventories show 12 -> 0 generated closure classes.
Supplied executed assertions cover the input's values, evaluation order and exceptions.
No runtime-speed claim or runtime benchmark; no new retained state.
S03
Request-required synthetic control, not real measured data.
Repeated identical requests: median time 100 -> 80 ms, 30 runs, spread 1 ms on each side.
Changed code appends every request graph to a process-rooted list; no removal, cap or release path.
Post-full-GC retained MB for 100/200/400 requests: baseline 20/20/20; changed 120/220/420.
All request objects are otherwise dead; heap-root trace points to the list.
S04
Request-required synthetic control. No real PR.
Only a spelling correction in a Markdown guide; diff contains no code, configuration, generated files or performance claim.
S05
Request-required synthetic control, not real measured data.
Claim: faster compilation, same input and Release binaries.
30 comparable fresh-process runs per side: baseline mean 100.0 ms, 95% CI [98,102]; changed mean 99.8 ms, 95% CI [97.8,101.8].
No further distribution or practical-workload benefit evidence is supplied.
S06
Request-required synthetic control, not real measured data.
Claim: allocation improvement, not speed.
Same input/flags and machine; 30 runs on identified baseline/changed binaries, executable command and raw runs supplied.
allocated B/op | baseline 256 (all runs) | changed 128 (all runs)
elapsed ns/op | baseline 100 +/- 2 | changed 100 +/- 2
post-release retained bytes and GC pause distribution do not regress.
Supplied behavior assertions pass; no ordering/API/generated-output change.
S07
Request-required synthetic control for generated-program runtime, not a real benchmark run.
Fixture binaries runtime-base/runtime-changed use identical F# input, Release optimization and runtime.
The stipulated benchmark report identifies Windows x64, .NET 11, the compiler binary hashes and "fixture-run --input range-32767 --repeat 30" with all raw results.
Same 32,767-element input: baseline 280 us mean (95% CI 275-285); changed 80 us (95% CI 78-82); allocated 393,680 -> 131,088 B/op.
Generated IL intentionally differs. Supplied runtime assertions preserve result, evaluation order and exceptions, including empty and singleton input.
The supplied memory/GC checks show no relevant regression. No compiler-build speedup is claimed.
Frozen expectation matrix
Human URLs below are evaluator-only. Context from unverified user-account prose supplies a request-required control grounded in actual code, not a human-derived oracle. No PR lifecycle state is passed to the candidate as a shortcut.
Case |
Split/family/PR/revision |
Claim and coverage tags |
Human oracle URL or request-required control |
Frozen input/evidence available to reviewer |
Expected row/outcome |
Exact evidence needed or prohibited finding |
Actual run/result |
|---|---|---|---|---|---|---|---|
DEV-01 |
development / inline-copy / #20352 / A |
compiler allocation; withdrawal; broad scope |
Author withdrawal, PERF-08 |
P01 + A diff/context |
G7 |
Request narrower approach or justification of pervasive range/debug handling against the gain. No fabricated maintainer rejection, false measurement or correctness bug. |
not run (RED expectation frozen) |
DEV-02 |
development / inline-copy / #20363 / B |
real reported allocation win; narrower alternative |
Request-required PERF-02/08/10; same family as DEV-01 |
P02 + B |
G7 |
Do not repeat the broad-remapper objection. Request missing raw spread/environment/command, not repetitions already supplied. Do not assert all bytes identical despite resource-name caveat. |
not run (RED expectation frozen) |
DEV-03 |
development / self-profile / #20348 / C |
scope; simpler idiom; before review |
Suggestion, PERF-09 |
P03 + C only |
v2: G7 |
This slice makes no claim that manual filling is necessary for speed. A simpler-comprehension suggestion is optional and non-blocking; no suggestion is also acceptable. Do not require comparative timing, assert equivalent/superior speed, or invent a syntax-only correctness blocker. |
not run (RED expectation frozen) |
DEV-04 |
development / self-profile / #20348 / D |
resolved scope; compiler microbench/CPU |
Acceptance, PERF-09; request PERF-02/03 |
P04 + D |
G7 |
Do not request already-adopted comprehensions. Ask for tabular reproducible measurements/variability; no whole-build speedup from isolated CPU samples. |
not run (RED expectation frozen) |
DEV-05 |
development / il-import-retention / #20261 / E |
strong table; retained versus allocated; noise-level time |
Request-required PERF-02/03/04/05; uncertain/model-associated review excluded |
P05 + E |
G3 |
Recognize ten-row table and three fresh-process runs. Ask for precise collection protocol, versions/commits, commands and spread. Do not claim missing table/repetitions or require a time win. |
not run (RED expectation frozen) |
DEV-06 |
development / self-profile / #20353 / F |
cache; behavior proof; compile-only test |
Request-required PERF-06/11; attribution-limited source |
P06 + F |
G6/G8 |
Execute the runtime conditional, not merely compile it; inspect omitted-range error paths. Missing proof is not a demonstrated runtime failure. |
not run (RED expectation frozen) |
DEV-07 |
development / self-profile / #20353 / G |
resolved runtime-test shape; allocation/hit ratio |
Request-required PERF-03/06/11; resolution context |
P07 + G |
G8 |
No repeated compile-only finding. Request result/reproduction details and range-sensitive malformed-metadata proof if claiming diagnostic equivalence. Hit ratio is not elapsed-time evidence. |
not run (RED expectation frozen) |
DEV-08 |
development / self-profile / #20349 / H |
ordering; invariant; before review |
Request-required PERF-07; attribution-limited request |
P08 + H |
G6 |
Document or assert producer ordering and check ties/empty input. Do not claim List.rev is wrong when producer order supports it. |
not run (RED expectation frozen) |
DEV-09 |
development / self-profile / #20349 / I |
resolved invariant; real reported time/allocation win |
Request-required PERF-07; resolution context |
P09 + I |
G6 |
Stop the missing-producer-invariant finding; retain only actually missing measurement/reproduction details. Do not claim the debug assertion or differential run was executed here. |
not run (RED expectation frozen) |
DEV-10 |
development / ce-method-cache / #19689 / J |
prose-only caching; closed-unmerged; other author |
Request-required PERF-01/02/06/12; no human closure explanation exists in packet |
P10 + J |
G1/G2 |
Name workload/cost and before/after evidence if presenting cache as an improvement. Do not turn build logs into speed data, invent a claimed time win, or infer performance rejection from closure. |
not run (RED expectation frozen) |
DEV-11 |
development / il-import-retention / #20416 / K |
FCS; multiple changes; causal attribution; stale description |
Request-required PERF-02/10; author table is not a human oracle |
P11 + K |
G1/G7 |
Recognize 2 MB versus 61 MB isolation already supplied; ask for exact flags, baseline/changed benchmark mapping, spread/commands and correction of stale fallback description. Do not attribute all 61 MB to handover or repeat fixed producer-fallback code as current. |
not run (RED expectation frozen) |
DEV-12 |
development / pattern-memo / #20244 / L |
compiler win; generated closure/runtime trade-off; smaller-input slowdown |
Request-required PERF-03/04/05/06; author-reported table, not human oracle |
P12 + L |
G3/G6 |
Retain N=8 slowdown and unoptimized closure allocation; request repetitions/spread and relevant emitted-runtime cost evidence. Do not assert a measured user-program speedup, require identical IL for promoted code, or invent a binder-stamp miscompile. |
not run (RED expectation frozen) |
DEV-13 |
development / il-import-retention / #20296 / M |
strong FCS timing/retention tables; repeated work; non-win retained |
Request-required PERF-02/03/04/05; auduchinok author data, provenance not upgraded |
P13 + M |
G3 |
Recognize nine rotated timing samples; ask for numerical spread and actual missing retention/reproduction metadata. Preserve Fantomas +0.7% as reported inside spread; no universal -35.2% memory or -8.9% speed claim. |
not run (RED expectation frozen) |
DEV-14 |
synthetic development / SYN-faster / no PR |
weak prose; unsupported finding control |
request-required synthetic control, PERF-01/02/12 |
S01 only |
G1/G2/G8 |
Request named workload, before/after timing table, commits/config, repetitions/error/environment. Prohibit invented correctness defect. |
not run (RED expectation frozen) |
DEV-15 |
synthetic development / SYN-closures / no PR |
closure structural claim; no measured speed |
request-required synthetic control, PERF-03/06/11 |
S02 only |
G3/G6 |
Do not assert measured speedup or require runtime timing when the claim is limited to closure count. |
not run (RED expectation frozen) |
DEV-16 |
synthetic development / SYN-retention / no PR |
one good metric masks unbounded retained state |
request-required synthetic control, PERF-05/12 |
S03 only |
G5 |
Cite process-rooted append-only list and linear post-GC growth; measured time win does not remove the lifetime risk. Not merely needs evidence. |
not run (RED expectation frozen) |
DEV-17 |
synthetic development / SYN-docs / no PR |
genuine docs-only negative control |
request-required synthetic control, PERF-01/12 |
S04 only |
G2-G5 metric checks |
State no performance/code change; no compiler/GC benchmark demand. |
not run (RED expectation frozen) |
DEV-18 |
synthetic development / SYN-noise / no PR |
noise-level speed claim |
request-required synthetic control, PERF-04 |
S05 only |
G4 |
Ask for enough data to resolve the claimed effect/practical value. Overlapping intervals alone do not prove equality or a regression; no arbitrary percentage threshold. |
not run (RED expectation frozen) |
DEV-19 |
synthetic development / SYN-allocation / no PR |
allocation win with unchanged elapsed time |
request-required synthetic control, PERF-03/05 |
S06 only |
G3/G4/G5 |
No demand that elapsed time improve; no end-to-end speed claim or universal certification. |
not run (RED expectation frozen) |
DEV-20 |
synthetic development / SYN-runtime / no PR |
measured generated-program runtime gain; intentionally different IL |
request-required synthetic control, PERF-02/03/06 |
S07 only |
G3/G6 |
Do not demand byte-identical IL or advertise a faster compiler. The positive timing dataset is synthetic and was not executed. |
not run (RED expectation frozen) |
Coverage and limits
The cases separate reported real improvements from reproduced results: none of these benchmarks was rerun here. Paired versions of #20348, #20349 and #20353 stay within FAMILY-self-profile; #20352/#20363 stay within FAMILY-inline-copy. Their pairs are not independent family votes or holdout coverage.
Required category |
Cases / rules |
Boundary |
|---|---|---|
Need/workload, weak prose, description/table quality |
DEV-01/02/04/05/10/14; PERF-01/02 |
Build/test output is not comparative performance evidence. |
Strong tables, real reported wins, noise |
DEV-02/05/09/12/13/18/19; PERF-03/04 |
Strong presentation does not fill absent variability, protocol or binary provenance. |
Resource trade-offs; good metric masking regression |
DEV-05/12/13/16/19; PERF-05 |
Real tables preserve worse/flat cells; demonstrated unbounded-retention blocker is synthetic, not a real human rejection. |
Compiler/FCS, cold/warm, repeated/incremental work |
DEV-04/05/11/12/13; PERF-01/03/05 |
Fresh-process project checks do not establish incremental/cache lifetime behavior. |
Closure/generated-program runtime gains and costs |
DEV-12/15/20; PERF-03/05/06 |
Real #20244 supports runtime shape/trade-offs, not measured user-program speed. Positive elapsed-runtime control DEV-20 is explicitly synthetic. |
Withdrawal/scope/helper reuse and resolved findings |
DEV-01/02/03/04/08/09; PERF-07/08/09/10 |
Author withdrawal is verified; no independent maintainer performance rejection is invented. |
Behavior/diagnostics/runtime assertions |
DEV-06/07/08/09/11; PERF-06/07/11 |
Unchanged APIs and successful compilation are not universal semantic proof. |
Unsupported findings and applicability |
DEV-10/14/15/17/19; PERF-12 |
Closure counts do not imply speed, closure does not imply rejection, docs do not need benchmarks. |
No verified human-derived precedent is claimed for a numerical significance threshold, thread-pool/starvation diagnosis, peak-memory protocol or comprehensive API/compatibility matrix. These remain conditional request-required rules, not omissions. No unverified/model-associated review is used to manufacture real regression/rejection coverage. Synthetic controls cover the specified decision boundaries, not untouched real-world holdout performance.
Additional runtime-source search: on 2026-09-22, gh api --method GET search/issues --paginate --slurp exhausted these exact queries, all with per_page=100 and incomplete_results=false: repo:dotnet/fsharp is:pr created:2026-04-22..2026-09-22 "ns" in:body (4), the same with "BenchmarkDotNet" (1), and with "runtime" (77), one page each. New non-bot descriptions #20500/#20007/#19672/#19713/#19714 concern correctness/docs/platform support; #20605 fixes concurrency in a test-only runtime builder but supplies no comparative runtime measurements. Dependency-update bots supply no human measurement evidence. Previously inventoried/reserved descriptions were not used for new answers, and no reserved feedback was opened. No new unreserved measured-runtime case was established; DEV-20 fills that positive boundary honestly rather than consuming a holdout.
Local audit
Candidate results remain not run (RED expectation frozen) regardless of corpus-audit success. The creation commit is the commit first adding this file (git log --diff-filter=A -- docs\performance-improvement-review\validation.md); the parent revision and RED recording time above deliberately do not masquerade as a self-referential commit hash.
Packet hashes
Packet |
SHA-256 |
|---|---|
P01 |
|
P02 |
|
P03 |
|
P04 |
|
P05 |
|
P06 |
|
P07 |
|
P08 |
|
P09 |
|
P10 |
|
P11 |
|
P12 |
|
P13 |
|
S01 |
|
S02 |
|
S03 |
|
S04 |
|
S05 |
|
S06 |
|
S07 |
|
Historical code-only diff hashes: C e363eb3317a2d35e1cbf18ac207fd4f018f0febd81029fd8ea3f5487c1fec3cd; F 4586d191ad39d6e3c676e747acdf42b2bcb2632b4f857381f0e42ca86cc72351; H 6a117c9153590f23f4edbf86031b0f0de58842bda227efe5d4bd223de8d13da2. The remaining final diff hashes are in the corresponding corpus records/supplement. These were recomputed from Git, not inferred from final PR file lists.
Executed corpus checks
Checks below concern sources and frozen fixtures, not candidate performance. Temporary collectors/checkers and raw responses remain in session 28a5997c-c817-48a9-8f00-4a45e40edbf0, files, not in the repository.
Check actually executed |
Observed result |
|---|---|
Complete development reading |
All 40 descriptions/final diffs, review-stage code differences and surrounding implementation, issue comments, reviews/decisions, inline replies and resolved/outdated threads inspected. The separate 29-PR mining pass covered 155 paths / 9,196 diff lines and verified 515 historical artifact hashes; parent inspected the remaining 11 packets. No new human-composition provenance established in those 29; unverified/model exclusions retained. |
|
All 40 description hashes and full Git diff hashes matched; 196 paths agree with metadata/files/Git; all original/review commit objects resolve. 115 reviews, 86 issue comments, 48 unique inline comments and 30 threads reconcile; outer/nested cursors exhausted and REST/GraphQL inline identities equal. |
Dates and supplemental collection |
No included development pull update after |
Split isolation |
485 unique inventory PRs / 321 disjoint families; 40 included development / 82 included holdout. Exactly the six self-profile PRs removed from the reserve; all other 94 reserved rows byte-for-byte unchanged from parent revision. No rule, case answer or calibration uses a remaining holdout family. |
Structural fixture checks |
Unique PERF-01..12, all eight ordered group headings, unique DEV-01..20, valid rule/case/packet references, all four outcome definitions and all candidate rows unexecuted. Full SHA/merge-base coordinates for 13 real packets resolve; code-only review diffs hashed separately. Table column counts, fences, relative documentation links and anchors checked. |
Semantic metric/category review |
Conditional mapping covers elapsed/latency/throughput, memory footprint/peak/retained, allocations, GC, generated artifacts/closures, CPU, threads/concurrency, startup/build and workload measures. Reviewed each missing-evidence expectation against its packet; preserved supplied repetitions, worse/flat rows, intentionally changed output, and author-versus-reviewer boundaries. No significance threshold or universal benchmark matrix introduced. |
Source-link checks |
Every cited PR/comment/review URL in the two new documents resolves to the matching acquired API identity/channel, not merely a well-formed URL. Raw benchmark links not supplied by the source remain missing; no claim that unposted results were verified. |
|
Passed during document construction; no production/test/project/agent/workflow changes. Compiler build/test and formatting sweep intentionally not applicable to this documentation-only sprint. |
Independent source verification, 2026-09-22T10:58:36Z-11:06:52Z |
A separate verifier re-fetched the two human observations and related development comments, inspected original/final code, recomputed historical merge bases, and checked the packet/oracle paraphrases. Confirmed roles, tentative wording, actual fixes, metric boundaries and all 20 packet contents. Found the two corrections below; no new human attribution established. L/M used archived bodies/local Git after fresh GETs became rate-limited; resolved/outdated flags came from complete captured threads, not a refreshed transition history. |
Post-correction rerun, 2026-09-22T11:13:00Z |
|
Pre-freeze correction trail (no candidate executed): P02 v2 corrects the author's one-hunk shorthand to two diff hunks in one function; its superseded draft hash was b1db180a161b316c68cccadbcba9ad77e6c26ac355e10b28d3f5c3bf3f36d392. DEV-03 v2 replaces the draft's conditional needs evidence oracle with the named not applicable subcheck: P03 never defended manual loops as necessary for speed, and the actual reviewer made a tentative non-gating suggestion. P03's input/hash is unchanged. These are source-validation corrections before initial commit, not adjustments to make a candidate pass. Future input/oracle changes require another explicit version.
GREEN and post-refactor replay
Executed 2026-09-22, from prerequisite commit 1eeae24016d (RED creation revision/time above unchanged). The implemented agent supplements the existing reviewer; no compiler, benchmark, build, API or test implementation changed. No benchmark or compiler test was executed. The input remains RED-1, P02 v2, DEV-03 v2: all 20 packet hashes, 13 historical base/head pairs and 20 oracle rows were checked against the prerequisite commit and remain unchanged.
Invocation and isolation
The session's callable custom-agent catalog did not contain performance-improvement-review. All runs used the explicitly permitted isolated general-purpose task fallback, loading the complete saved candidate instructions; named-agent discovery is not claimed. Runtime identity: GitHub Copilot CLI 1.0.87, GPT-6 Astra / gpt-6-astra, inherited runtime preference with no model override. Each invocation had a fresh context and one case, never a batch of cases or a prior review.
Each reviewer received the exact candidate snapshot, a rule/metric extract retaining rule IDs, conditional requirements and human/request provenance but excluding historical discussion/resolutions, its exact fenced packet, sanitized source-pin coordinates, and the complete pinned Git diff. Reviewers inspected surrounding implementation/tests/signatures with git show at those pins. Synthetic artifacts were explicitly stipulated inputs, not invented real executions. Reviewers were prohibited from reading this matrix, the corpus, full evidence source discussion, other cases/results, later fixes, live PR pages or holdout feedback. Their only write was the review transcript in session storage; there were no GitHub writes or repository changes by reviewers.
Verbose transcripts, candidate snapshots, extracted inputs, full diffs, packet/diff hashes and audit JSON remain under session cf1b8168-aaf3-4d7a-93ad-058713c498d3, files\<run>\DEV-XX\. Task names are <run>-NN; the single output-format retry is refactor-final-09-retry. Repository summaries below preserve the actual conclusions and evidence requests without depending solely on that archive.
Candidate |
Exact file SHA-256 |
Run directories and UTC interval |
Actual invocations |
|---|---|---|---|
C0, initial |
|
|
All 20; calibration failures retained, not declared GREEN |
C1, calibrated GREEN |
|
|
Affected DEV-01/03/08, then all 20 |
C2, first compaction |
|
|
DEV-01 through DEV-14; stopped on a reproduced DEV-08 miss, not represented as a full pass |
C3, final compact candidate |
|
|
Affected DEV-08, then all 20; DEV-09 additionally rerun for Markdown validity |
There were 79 actual invocations, including failed/partial calibration and the formatting retry, not 79 independent cases. Run starts are packet/candidate freeze timestamps; ends are saved-output timestamps, not benchmark durations. G below means C1's complete green-final run; R means C3's complete refactor-final run, with the valid DEV-09 retry. The C3 hash is the candidate reserved for subsequent blind evaluation; no reserved feedback was opened to tune it.
Calibration changes and evaluator decisions
Observed output |
Evaluation and correction |
|---|---|
C0 DEV-08 accepted the consumer comment and explicitly said no producer comment/assertion was needed. |
Miss. Pin H documents ordering at |
C0 DEV-03 offered an optional comprehension suggestion without an explicit not-applicable comparison; several cases combined sound metric selection with missing methodology. |
No invented speed claim, but insufficiently explicit scoped outcomes. C1 separates supported subchecks and unclaimed syntax comparisons; it does not require comparative timing for a mere readability suggestion. |
C0 DEV-01 promoted a quotation-cache traversal difference to a blocker without establishing a harmful observable result. |
Unsupported escalation. Pinned code confirms the difference, not its material harm. C1 requires caller/precondition/lifetime/consequence tracing; later outputs request targeted equivalence proof without a blocker. |
C2 DEV-08 again treated the consumer comment as sufficient; C2 DEV-06 also emitted an unescaped pipe in its table. |
C2 was rejected. C3 explicitly makes the producer-contract subcheck |
C3 DEV-09's first transcript used an unescaped F# pipeline inside a table cell. |
Semantically correct but invalid five-column GFM. Preserved as |
DEV-06/07, DEV-11 and DEV-13 discovered additional risks from pinned code. |
Evaluator re-read the mechanisms below. These are source-supported extensions, not literal matches to every frozen row label and not new human-derived rules. No oracle was rewritten; no historical test failure or observed reproduction is claimed. |
Additional risks were evaluated against code, not against approval/closure status or later fixes:
- S1, DEV-06/07:
infos.fs's optional/default-less parameter path imports with the current range, but the new comparer ignores range.MemoizationTablestores a lazy before forcing it (Utilities/illib.fs:984-994);DiagnosticsLogger.fs:481-498reports then throwsReportedError, which recovery suppresses. Base import caching stores only successful values (Checking/import.fs:161-167). The reviewers traced call-site lookup before argument processing and the second same-map/method/view lookup: a failed lazy can replay without the second diagnostic. This is a substantiated error-path scenario, beyond merely asking whether dropping range is safe. See original pinned cache and final pinned cache. No successful-program miscompile or executed failure is asserted. - S2, DEV-11: pinned import publication initializes pending publication only for the claim owner, while dependency binding later runs only for contexts with pending entries (
2908-2917). G traced a losing concurrent importer with an uninitialized resolver and non-framework dependency; R traced cancellation/failure between acquisition and publication, leaving a claim that later losers cannot publish. The evaluator confirmed both control-flow paths, including per-build rather than batch cleanup. Preconditions and lack of execution are stated; these are not claims of a measured leak/hang. Which additional scenario a run selects is variable. - S3, DEV-13: pinned key construction hashes the reachable set, leaves
CcuName=Nonefor IL, and omits root identity. Two eligible cyclic IL roots have the same set/key. Last-writer publication (599-600) followed by another project's cache hit (2288) can return the wrong assembly CCU;RegisterCcuuses that returned assembly name (1503-1510). Eligibility does not exclude the cycle. This concrete source-derived collision supports risk, without claiming an executed repro.
These extensions do not turn the source corpus into a set of verified historical defects or human objections. The expected missing-evidence checks remain required, and were still found. C1/C3 did not invent blockers in the no-data, structural-only, noise, docs-only or allocation-only controls.
Durable actual-result matrix
Every G/R review contains the eight ordered groups and separates proof, unknowns and action. The entries below summarize the scored subchecks, not blanket verdicts for entire PRs. G/R denotes agreement on the described conclusion; differences are explicit. The final column identifies candidate/run and the first 12 hex characters of the actual transcript SHA-256 for audit correlation.
Case ID |
Expected outcome/evidence |
Actual outcome and concise finding |
Supporting source |
Match/miss/unsupported finding |
Candidate hash/revision and run metadata |
|---|---|---|---|---|---|
DEV-01 |
G7 |
G/R: |
P01/A; PERF-02/04/06/08; pinned |
Match; C0 unsupported escalation corrected |
G C1 |
DEV-02 |
G7 |
G/R: localized helper reuse |
P02/B; PERF-02/08/10/11; |
Match; no repeated broad-remapper objection |
G C1 |
DEV-03 |
Manual-loop necessity comparison |
G: explicit G7 |
P03/C; PERF-09/10; original |
Semantic match; R nests the not-applicable subcheck in the action cell rather than a separate row; no oracle change |
G C1 |
DEV-04 |
Resolved idiom |
G/R: comprehensions already adopted, localized mechanisms |
P04/D; PERF-02/03/07/09; |
Match on frozen checks; extra producer-contract request is evidence-seeking, not a blocker or repetition of the comprehension suggestion |
G C1 |
DEV-05 |
Retention metric |
G/R: recognize ten-row table and three fresh-process runs. Retained-memory metric |
P05/E; PERF-02/03/04/05; per-reader cache/interner changes and existing reader tests |
Match; neither table nor repetitions falsely reported absent |
G C1 |
DEV-06 |
Execute conditional and inspect omitted-range paths; missing proof is not an observed failure |
G/R: G8 |
P06/F; PERF-03/05/06/11; |
Required concerns caught; supported extension, not literal G6-label match. No fabricated executed failure |
G C1 |
DEV-07 |
Executing test shape |
G/R: |
P07/G; PERF-02/03/06/11; final extension test, comparer/lazy/import/error path |
Required concerns caught; supported S1 extension, not proof from precedent |
G C1 |
DEV-08 |
Producer invariant |
G/R: separate current ordering equivalence |
P08/H; PERF-07/11; |
Match after both calibration corrections; no claim of observed ordering failure |
G C1 |
DEV-09 |
Producer invariant |
G/R: producer comment and Debug assertion already satisfy the contract; 139,370 reported comparisons credited, not claimed executed. Report 0.355 ms and 810 KB/compile savings; request repetitions/error, measurement boundaries, binary/environment/commands and targeted results. |
P09/I; PERF-02/07/11; producer |
Match; formatting-only retry under unchanged C3 accepted |
G C1 |
DEV-10 |
Workload/value and comparative evidence |
G/R: build log/two diagnostic tests are not comparative performance evidence. Request workload and before/after data, |
P10/J; PERF-01/02/05/06; CE lookup/discovery and diagnostic tests |
Match; auxiliary risk-assessment scope differs without an unsupported blocker |
G C1 |
DEV-11 |
Credit 2 MB versus 61 MB isolation; request matched flags/provenance and stale-prose correction |
G/R: credit the bounded handover contribution and relevant workloads; ask for matched flags, repetitions/spread, lifecycle and targeted results. Code uses unresolved thunks, not producer fallback. G gives scoped attribution |
P11/K; PERF-02/05/06/10; pinned handover tests/binding and S2 publication paths |
Frozen concerns caught; R row grouping differs; supported additional risks, no claim all 61 MB comes from handover |
G C1 |
DEV-12 |
Distinguish compilation/runtime/proof shape; preserve N=8 slowdown and closure trade-off |
G/R: primary compiler metrics and inspected safeguards |
P12/L; PERF-03/04/05/06/11; pattern memoization, new guard tests and quotation rendering tests |
Match; reported large-input wins are not confused with generated-program speed |
G C1 |
DEV-13 |
Separate retention/time |
G/R: credit nine rotated timing samples and whole-solution held-memory data. Preserve Fantomas +0.7% as reported, request numerical spread rather than assert regression. No universal 35.2%/8.9% gain. S3 adds a concrete cyclic-root cache-key |
P13/M; PERF-02/03/04/05/06; S3 key/hit/registration chain |
Required metric concerns match; independently supported code-risk extension |
G C1 |
DEV-14 |
G1/G2/G8 |
G/R: "Faster" needs operation/workload, pinned diff, controlled before/after time, repetitions/error/environment/binary provenance, and scoped behavior evidence. Missing resources/code are unknown, not an established defect. |
S01; request-required PERF-01/02/12 |
Match; no unsupported blocker |
G C1 |
DEV-15 |
Structural/semantic |
G/R: inventories support 12->0 closure classes and executed assertions support values/order/exceptions. Timing/GC policy is not applicable to the count claim; no runtime benchmark demand or measured speed/allocation assertion. Unseen implementation is not certified. |
S02; request-required PERF-03/06/11 |
Match; legitimate passes and inapplicability |
G C1 |
DEV-16 |
G5 |
G/R: 100->80 ms latency does not excuse process-rooted append-only ownership. Post-GC 120/220/420 MB versus 20/20/20 and the root trace establish ~1 MB/request unbounded retention. Require bounded/released ownership, repeated retention checks and remeasurement, not merely more evidence of a possible leak. |
S03; request-required PERF-05/12 |
Match; supported blocker, explicitly synthetic |
G C1 |
DEV-17 |
G2-G5 |
G/R: spelling-only Markdown change has no performance claim or executable/configuration effect. G1-G6 |
S04; request-required PERF-01/12 |
Match; no unsupported defect or universal metric demand |
G C1 |
DEV-18 |
G4 |
G/R: 0.2 ms/0.2% lower mean with supplied uncertainty is insufficient. Request difference uncertainty/run distributions and practical value. Overlapping intervals alone prove neither equality nor regression; no arbitrary minimum percentage or run count. |
S05; request-required PERF-04 |
Match; appropriate narrow metric |
G C1 |
DEV-19 |
G3/G4/G5 |
G/R: 256->128 B/op across 30 stipulated runs supports 50% allocation reduction; timing stays 100 +/- 2 ns/op. Retention/GC/behavior stipulations pass; workload value can still need evidence. No required time improvement or broader speed claim. |
S06; request-required PERF-03/05 |
Match; supported allocation-only win accepted |
G C1 |
DEV-20 |
Runtime metric/semantic |
G/R: 280->80 us (71.4%) and 393,680->131,088 B/op (66.7%) support the stipulated generated-program claim. Executed result/order/exception and empty/singleton assertions plus memory/GC checks pass. Different IL is intentional; no compiler-build speedup inferred. |
S07; request-required PERF-02/03/06 |
Match; positive control remains explicitly synthetic, not a rerun benchmark |
G C1 |
Compaction and local checks
C1 had 11,290 bytes / 1,397 whitespace-delimited words; C3 has 9,634 bytes / 1,169 words (14.7% fewer bytes, 16.3% fewer words). The duplicate gate list/output-group list became one ordered guidance table. Detailed historical provenance stays in the linked evidence/corpus documents. No metric family, metadata requirement, read-only boundary, behavior/lifetime gate, or outcome definition was removed. C2's producer-contract regression was measured and corrected, not assumed away.
Check actually executed |
Result |
|---|---|
Candidate identity/frontmatter |
Exact unique |
Relative links and references |
All ten relative links in the agent and small skill addition resolve. PERF-01..12 remain in evidence; DEV-01..20, packets and source pins reconcile. Markdown links deliberately use URL separators; filesystem operations use Windows paths. |
Actual review shape |
All 20 G and 20 accepted R transcripts have G1-G8 in order, full group names, the four exact outcome strings, and nonempty proof/unknown/action columns. Rejected C2 and first C3 DEV-09 malformed tables are retained as failures, not edited into passes. |
Semantic checks |
Evaluator read actual requests/proof and compared frozen checks. Required concerns and all seven controls were caught. Group-level presentation varies; the matrix records nested subchecks and source-supported risk extensions rather than claiming 40 exact verdict matches. No unsupported blocker remains in accepted outputs. |
Read-only/holdout boundary |
No benchmark commands, compiler builds/tests, code edits or GitHub posts by reviewer instances. No expected matrix, held-back objections, later fixes or reserved feedback supplied. Corpus/evidence files unchanged; existing reserve remains intact. |
Integration |
Skill diff is only the four-line Performance claims heading/reference. Dimension selection, dispatch and non-performance paths are unchanged; no new skill or permanent harness/package. |
Whitespace/surface |
|
Product validation applicability |
Artifact-only sprint: compiler build/test, |
Blind holdout freeze
Recorded 2026-09-22T13:22:53Z, before opening reserved feedback. Candidate C3 SHA-256 is 4c5d4bd0000fac52c0e1e5de9825e95891dd364c8e301200cd7952406c667954, at repository revision ac7bd61c998f0bade4aeaa00e676b87bedb6397e. The evidence table remains at 1eeae24016db78d6236636017992f5ff655c67be, file SHA-256 b8e0a424f05c3fdc91f3d9aef900be56142537daaa469811122618ca0bb01ec3. The historical evidence cutoff remains 2026-09-22T09:28:34Z; retrieval time does not extend it.
The reserve and category assignments were committed in ae294143e5890033fcb717956050a91a6f2ed6e8, before drafting the candidate. The RED correction in 1eeae24016d moved the entire exposed self-profile family to development. The 20 development packets and their expectations/runs above are preserved. The 94 reserved rows comprise 82 performance candidates, five earlier/context rows and seven real applicability controls; they are not 94 executed holdouts. Neither the inline-copy nor the IL-import-retention nor the self-profile family is eligible for independent holdout credit.
The current runtime catalog lists the named performance-improvement-review agent. Actual invocation and source acquisition results will be recorded separately; catalog presence and this freeze are not a test pass.
Isolation correction before holdout execution: the required complement-boundary document, expert-reviewer.md, already contains #20388's precise covariant-empty-array failure and repro. Git history verifies that example at the pre-drafting checkout; it was introduced by fce51f6d26358cb5c2431f84c9884aceba7bb154 (#20511), on 2026-09-11. Its being an existing-agent example rather than human evidence does not make the example unseen. Conservatively promote all of FAMILY-core-empty-array to development; do not credit #20388 as an independent holdout. No C3 rule changed in response to this discovery. Other selected untouched families must establish behavior/API-neutral coverage.
Final development regression
Actually executed: 20 fresh named performance-improvement-review task invocations, final-01 through final-20. Packet freeze: 2026-09-22T13:24:57Z; first completed output: 13:26:17Z (DEV-17); last: 13:55:55Z. Runtime: Copilot CLI 1.0.87, GPT-6 Astra (gpt-6-astra), inherited configuration, no model override. This is not the earlier fallback run. C3, all 20 RED packet hashes and all historical diffs are unchanged. Every invocation received only C3, the same sanitized rule/metric extract, its own input and pinned diff/source access; no oracle, other review, reserved feedback or later fix.
Raw transcripts and machine-readable identities are outside the repository in session 36233952-cdbf-4056-984e-1fe93e32d7a3, files\final-regression\DEV-XX\output.md. The table preserves scored actual findings; transcript SHA-256 prefixes identify exact outputs. Source pins, full input hashes, expected subchecks and withheld URLs remain in the frozen matrix above. No tests or benchmarks in the PRs were executed; these are reviewer executions.
Case / input / source |
Frozen expectation |
Actual C3 result and evidence request |
Evaluator result |
Transcript SHA-256 prefix |
|---|---|---|---|---|
DEV-01 / P01 / A, #20352 |
G7 narrow or justify shared-remapper complexity |
|
Match; no unsupported blocker |
|
DEV-02 / P02 / B, #20363 |
Localized reuse passes; missing reproducibility does not |
Scope/helper reuse |
Match |
|
DEV-03 / P03 / C, #20348 |
Syntax-speed comparison not applicable |
Explicit |
Match |
|
DEV-04 / P04 / D, #20348 |
Recognize adopted idiom; ask for methodology |
Comprehensions already present; no comparison prerequisite. Scoped equivalence/scope |
Match; no stale syntax finding |
|
DEV-05 / P05 / E, #20261 |
Retention metric supported; protocol/spread missing |
Credits ten rows and three fresh-process runs; reports 1.53-10.13 MB differences without demanding faster time. Requests collection/root boundaries, matched binaries, numerical spread and repeated-reader trade-offs. |
Match |
|
DEV-06 / P06 / F, #20353 |
Execute conditional; inspect omitted-range error paths |
Compile-only conditional |
Required checks caught; same supported S1 extension, not an observed failure |
|
DEV-07 / P07 / G, #20353 |
Recognize executing test; retain measurement/range gaps |
Executing harness |
Match on frozen concerns; S1 persists independently of test-shape repair |
|
DEV-08 / P08 / H, #20349 |
Producer contract needs evidence; reversal not inherently wrong |
Current reverse/sort equivalence |
Match |
|
DEV-09 / P09 / I, #20349 |
Stop resolved producer-contract objection |
Producer comment/Debug assertion |
Match |
|
DEV-10 / P10 / J, #19689 |
Request value/comparison, not fabricated speed/rejection |
Build logs and two passing diagnostic tests are not performance comparisons. Requests workload, |
Match |
|
DEV-11 / P11 / K, #20416 |
Credit contribution isolation and resolved fallback; ask for metadata |
Explicit attribution |
Required concerns caught; supported S2 extension |
|
DEV-12 / P12 / L, #20244 |
Keep small-input slowdown and both output modes |
Credits large-input compiler benefit and executable assertion shapes. Retains N=8's 2.5->3.8 s and unoptimized closure trade-off; requests variability and emitted-runtime cost. No identical-IL or measured runtime-win claim. |
Match |
|
DEV-13 / P13 / M, #20296 |
Separate retention/time; preserve flat/worse workloads |
Credits nine rotated samples; Fantomas +0.7% is reported inside spread, not an established regression. Requests numerical spread, retention/reproduction/lifecycle data. S3 cyclic-root identity adds |
Required concerns caught; supported S3 extension |
|
DEV-14 / S01 |
Weak prose needs evidence, not a defect |
All groups |
Match |
|
DEV-15 / S02 |
Structural/semantic proof passes; no timing prerequisite |
Stipulated 12->0 closure classes and executed behavior assertions |
Match |
|
DEV-16 / S03 |
Demonstrated retention regression is material risk |
G5 |
Match; synthetic, not human precedent |
|
DEV-17 / S04 |
No-claim docs have no performance metric gate |
All groups |
Match on required inapplicability; harmless G7/G8 presentation differs from earlier runs |
|
DEV-18 / S05 |
Noise-level claim needs evidence, no threshold |
G4 |
Match |
|
DEV-19 / S06 |
Accept allocation-only win despite flat time |
G3/G4/G5 |
Match |
|
DEV-20 / S07 |
Accept runtime/semantic proof with changed IL |
Runtime/behavior/resource checks credit stipulated 280->80 us and 393,680->131,088 B/op. Intentional IL changes accepted; missing broader value/implementation/method details do not become blockers. |
Match |
|
Evaluator score: 20/20 cases meet their frozen semantic acceptance checks, zero missed required concerns, zero unsupported blocker findings. This is a small development regression suite, not independent holdout precision/recall. The outputs contain 224 scoped table rows: 85 pass, 116 needs evidence, 17 not applicable, six risk/blocker. Six risk rows represent five case-level findings in DEV-06/07/11/13/16; DEV-16's final recommendation repeats its G5 finding. These reduce to four mechanisms (S1 in two revisions, S2, S3, synthetic retention), not six independent bugs.
The evaluator checked the new explicit caller/precondition/consequence traces against the S1-S3 mechanisms documented above. The new S1 example is a nongeneric declaring type's generic method with an optional parameter but no metadata constant; it distinguishes the existing first-call import error from the new suppression on a cached failure. S2 states cancellation after successful construction but before publication, and the observable loss of sharing on later retries until clearing, not a fabricated hang or leaked CCU graph. S3 states eligible mutually referencing IL roots and loss of one assembly's type environment. No oracle was revised and C3 was not repaired.
All 20 saved tables actually passed the ordered full-name G1-G8, five-column, nonempty proof/unknown/action and exact-outcome checks. Diff hashes matched the frozen inputs. The earlier 79-invocation archive was also re-audited successfully, including its preserved rejected C2 formatting failure; no old output was relabeled as this run.
Maintenance procedure
Freeze a new date window and exact cutoff before discovery; retain source bodies, pagination totals/cursors, edit/provenance metadata and base/head/review revisions. Normalize related attempts and stacks by PR family, quarantine automated or uncertain prose, and reserve fresh families before drafting. Add the input and source-backed oracle before changing a rule. Freeze candidate/evidence/input hashes, execute each case in an oracle-free context, and record actual output, invocation identity and evaluator misses/unsupported findings. A rule change prompted by a holdout promotes that family to development and requires untouched replacements. Rerun the complete cases, check links/discovery and split/coverage accounting, and retain raw transcripts outside the repository. Do not convert unavailable categories or synthetic controls into real-human holdout credit.
C3 blind execution and retained failure
The first blind execution is not an acceptance pass. On 2026-09-22, ten fresh named performance-improvement-review invocations (blind-c3-01 through blind-c3-10) used the unchanged C3 and sanitized rule extract above. Runtime: Copilot CLI 1.0.87, GPT-6 Astra (gpt-6-astra), inherited configuration, no override. Outputs were saved from 14:23:10Z through 14:29:29Z in session c8f07943-58a7-4cdd-9a76-ce0b8d398079, files\blind-c3-NN.md. Each context received one historical packet, full diff and pinned source access; no oracle, source report, withheld feedback, later fix or other result. The frozen evaluator oracle predates these runs: SHA-256 ddfc494f450358cf527cdbf08c45066d9fca111efc84aa2aa74b8399400f59dd, in the preceding session's files\holdout-study\oracles.md.
Independence correction: HOLD-01/02 (#20388) are development regressions, not holdouts. Its final ancillary closure-characterization change also connects FAMILY-inline-closures; conservatively treat HOLD-03 (#20367) and that entire family as development. This overrides the earlier source collector's eight-connected-family holdout count. The initial execution therefore contains three development cases in one connected family, and seven blind cases in seven other families. Account-authored but unverified prose and explicitly model-attributed feedback do not become human precedent merely because the reviewer agrees.
Frozen source expectations
These are compact transcriptions of the pre-execution oracle, not expectations inferred from output. Source composition remains uncertain unless explicitly model-attributed below. All ten cases are real-PR request-origin controls, not ten verified human objections. H identifies the exact input revision in the identity table below.
Case |
PR/family |
Coverage |
Withheld source or request-origin control |
Input available at reviewed stage |
Expected outcome and evidence request |
Prohibited unsupported finding |
|---|---|---|---|---|---|---|
HOLD-01 |
#20388 / core-empty-array; development |
API-neutral, behavior, allocation |
Covariance comment, attached to an explicit AI review; request-origin compatibility oracle |
Historical code-only full diff, old signatures, singleton tests; no later description |
|
No measured speed regression or claim nonempty copies all fail. |
HOLD-02 |
#20388 / core-empty-array; development |
Mixed-scope, API-neutral, behavior |
Same compatibility control; documentation concern and resolution, uncertain composition |
Final description, nine-file diff, guarded copies, revised signatures, runtime-type tests |
Specific repair |
Do not repeat the earlier covariance defect or claim unchanged fresh-array docs; no attribution of all files to the win. |
HOLD-03 |
#20367 / inline-closures; development |
Generated artifacts, compiler allocation |
Author description; empty approval supplies no substantive human oracle |
Full inline/signature diff; sampled 240 + 172 MB to zero; +1.5 KB DLL; deterministic-output assertion |
Surgicality/control flow |
No mandatory speedup for an allocation-only claim, leak inference or universal identical-IL gate. |
HOLD-04 |
#20544 / string-concat |
Mixed-scope, no-claim applicability |
Description explicitly attributes generation to Claude; request-origin control |
Complete 30-file literal cleanup and compatibility context |
Unclaimed speedup/benchmark gate |
No assumption all |
HOLD-05 |
#20444 / tc-reuse-tests |
Test-only, no-claim applicability |
PR, author DedSec256, not auduchinok; reviews uncertain/model-associated |
Eight structural-edit cache-characterization tests, utility and cache-key context |
No shipping benchmark requirement; purposeful executing assertions |
No claimed compiler speedup, newly fixed invalidation or universal runtime metrics. |
HOLD-06 |
#20436 / prompt-docs |
Docs-only, no-claim applicability |
PR; empty approval is not a rule |
Complete seven-Markdown-file guidance diff and description |
Performance metrics |
No compiler speedup, benchmark requirement or fabricated source/runtime change. |
HOLD-07 |
#20119 / vs-work-reuse |
IDE latency, API-neutral, behavior, lifetime |
Retention concern belongs to an AI review; race withdrawal has uncertain composition |
Final one-file diff/body, reactor, delayed-reader ownership and callers; no later replacement |
|
No observed OOM, unsupported race or assumption later author prose repaired this head. |
HOLD-08 |
#20587 / ci-turnaround |
Build time, parallel-resource trade-off |
PR; no captured feedback |
Linux matrix/template, full splitter and SDK-integration context |
Turnaround |
No invented twofold win, skipped tests, hung pipeline or universal runtime allocation measurements. |
HOLD-09 |
#18509 / vector-sum |
Generated-program runtime, tables, behavior, older-active |
Modern runtime without SIMD request, earlier 2025 context, composition unverified; overload question at |
Final sum-only diff, author tables with units/error/environment, separate Framework results, tests/harness |
Credit strong tables. Request same modern runtime with hardware intrinsics disabled, non-array sequence shapes, precise job/binary/revision mapping, final reproduction, arithmetic/exception proof and public-helper justification. |
No stale average exception or direct-LINQ Framework slowdown charged to the final fallback; closure is not rejection proof. |
HOLD-10 |
#20507 / rich-text-api |
auduchinok, API-addition, no-claim applicability |
PR; empty body, robot-marked/empty approvals |
Four-file immutable display-context API addition, signature/surface baseline and consumers |
Metrics |
No API-neutral label, invented speedup/global mutation or benchmark gate. |
Actual outputs and evaluator comparison
All inputs below use C3 and the frozen pre-holdout rules. Packets live in preceding session 36233952-cdbf-4056-984e-1fe93e32d7a3, files\holdout-study\inputs\HOLD-NN; suite.json additionally hashes every source file and coordinate manifest. HOLD-01..09 were frozen at 2026-09-22T13:38:40Z, HOLD-10 at 13:55:31Z. HOLD-08's subsequently supplied pinned TestSplit context is recorded in the pre-execution manifest; no oracle text was supplied. Historical diffs are reproducible from the merge base/head below; compact claims and exact required evidence are preserved above rather than relying on archive paths alone.
Case |
Head / historical merge base |
Input SHA-256 / full diff SHA-256 |
|---|---|---|
HOLD-01 |
|
|
HOLD-02 |
|
|
HOLD-03 |
|
|
HOLD-04 |
|
|
HOLD-05 |
|
|
HOLD-06 |
|
|
HOLD-07 |
|
|
HOLD-08 |
|
|
HOLD-09 |
|
|
HOLD-10 |
|
|
The evaluator read the outputs separately from reviewer execution. Exact transcript hash prefixes below refer to unedited saved output, not hand-authored replacements.
Case |
Actual checklist result/finding and requested evidence |
Match/miss/unsupported finding |
Transcript SHA-256 prefix |
|---|---|---|---|
HOLD-01 |
G6 |
Match, development only |
|
HOLD-02 |
G6 repair |
Match; no stale blocker |
|
HOLD-03 |
Credits narrow target, control flow, metric and surgicality. Distinguishes sampled zero from elimination and allocation traffic from retention; requests structural attribution, binary/workload/variation/profiling evidence and bounded overhead comparison, not a speedup. |
Match, development only |
|
HOLD-04 |
No quantitative metric gate; identifies three shipping constant |
Match; no unsupported blocker |
|
HOLD-05 |
Credits Started-event assertions, implicit-name invalidation and executing workflow; treats missing targeted run results separately. No production optimization, speedup or runtime-benchmark prerequisite. |
Match |
|
HOLD-06 |
G1-G5 |
Match; textual consistency request is supported by the diff, not a runtime blocker |
|
HOLD-07 |
G5 |
Match; additional removal scenario independently source-verified below, not inferred from agreement |
|
HOLD-08 |
G1-G5 |
Match |
|
HOLD-09 |
Credits existing timing/error/environment tables and clear array contrasts, preserves noisier list cases, recognizes Framework fallback and removed averages. Requests other types/short/lazy cases, binary mapping, arithmetic/exception/API evidence. Does not request the same modern runtime with intrinsics disabled. |
Miss: one required measurement condition. Generic runtime coverage and Framework fallback are not a substitute. Original output retained; no retroactive oracle relaxation. |
|
HOLD-10 |
G1-G4 |
Match |
|
The first-run semantic score is 9/10 matches, one miss; among initially eligible independent cases, 6/7 matches, one miss. This is not a precision/recall estimate or final acceptance. The seven blind families cannot be silently relabeled as fresh if subsequent tuning uses their results. No verified-human-composition credit is added to the evidence rules by this run.
Additional finding verification: at HOLD-07's head, an F# options request constructs a C# dependency's delayed reference before the parent can bail out (FSharpProjectOptionsManager.fs:416-439,475-479). This inserts an emit-cache entry without a C# options-cache entry or successful emission. ProjectRemoved posts ClearOptions, but removal is guarded by options-cache membership (:588-596,653-659); the sweep enumerates only lastSuccessfulCompilations (:479-505). Thus ordinary removal/sweeps can leave the strong entry rooted. Global/solution clearing releases it; a later successful delayed callback could also make it eligible for sweeping. This supports the narrow cleanup finding, not an observed leak size, OOM, or assertion every retained entry still owns a compilation. The independent source evaluator did not read the candidate output.
The ten saved outputs passed actual ordered/full-name G1-G8 and five-column/nonempty-proof/unknown/action checks, using only the four permitted outcome strings: 106 scoped rows = 42 pass + 46 needs evidence + 16 not applicable + 2 risk/blocker. The two risk rows cover covariance and historical-version retention, with the additional supported removal subcase; zero unsupported blocker findings were established. The ten input file-set hashes and all twenty preceding final-regression transcript hashes/shape checks also passed. Output length ranges from 1,017 to 2,110 whitespace-delimited words; tables are structured but not uniformly terse. Shape checks do not erase the semantic miss.
Coverage and remaining acceptance gaps
Requirement |
Actual executed evidence |
Qualification |
|---|---|---|
Mixed scope |
HOLD-04 separates executable constants from docs/tests/scripts; HOLD-02 separates ancillary tests |
HOLD-04 was blind; HOLD-02 is exposed development. No attribution of all paths to a win. |
Test-only |
HOLD-05 recognizes event-based cache characterization and executing assertions |
Real PR, no performance claim; no runtime benchmark gate. |
Benchmark-only |
No qualifying real PR found in the 804-PR path screen |
Unavailable, not verified. Product-plus-benchmark #18509 and synthetic cases do not fill it. |
Docs-only |
HOLD-06 excludes performance metrics while identifying a textual policy/description mismatch |
Real no-claim control. A documentation-only numerical-performance assertion has no real selected example. |
Generated code/artifacts |
HOLD-03 distinguishes compiler closure allocation from runtime speed; HOLD-09 separates generated-program sum paths and output behavior |
HOLD-03 is development; HOLD-09 has the retained fallback-measurement miss. |
API-neutral / behavior-sensitive |
HOLD-07 traces lifecycle and cache-hit/diagnostic equivalence despite unchanged signatures |
Real blind control with supported source-derived retention risk, not executed failure. HOLD-10 is explicitly an API addition, not neutral. |
Strong tables / prose-only gaps |
DEV-05/13 and HOLD-09 credit supplied tables; DEV-14, HOLD-08 identify specific missing evidence |
Earlier author measurements are not rerun measurements. No universal numeric threshold. |
Meaningful versus noise-level wins |
DEV-18 preserves uncertainty; DEV-19 accepts flat-time allocation saving; HOLD-09 credits large array effects without generalizing noisy list data |
DEV-18/19 are synthetic contract controls. Real tables remain author-reported and provenance-qualified. |
Hidden resource regression |
DEV-16 detects stipulated retention despite faster time; HOLD-07 independently traces real strong ownership |
DEV-16 is synthetic; HOLD-07 does not invent numeric retained bytes or measured OOM. |
Allocation/closure improvement |
DEV-15/19 and HOLD-03 distinguish counts, allocations, time and live memory |
Synthetic positive boundaries versus real author-sampled closure claim are not interchangeable. |
Compiler-time versus runtime |
DEV-12 retains small-input compiler slowdown and unoptimized closure cost; HOLD-09 evaluates sum runtime separately |
No compiler benchmark is substituted for generated-program execution. |
Withdrawn / narrower scope / behavior proof |
DEV-01 preserves #20352's author withdrawal and narrow-scope request; DEV-03 preserves tentative #20348 simpler-idiom suggestion; paired DEV-06/07 and DEV-08/09 recognize repairs |
Two verified human-derived families in development, not new holdout human votes. Closed #18509 is not treated as a rejected optimization. |
Complete final regression |
Twenty unchanged C3 development replays pass; ten additional C3 executions yield nine semantic matches and one miss |
Not a final acceptance pass. No repaired-candidate replay or replacement-holdout success is implied. |
The conditional contract still includes time; total/peak/retained memory; allocations; closures/generated artifacts; CPU; GC; threads; startup/build costs; behavior/API/compatibility; lifetime; surgical isolation and reviewability. C3 requests before/after units, commits/configurations, workloads/input sizes, repetitions, meaningful error/spread, environment/tooling and commands/links, with adjacent metadata permitted. Actual controls show these are conditional, not a universal metric matrix. No production build, test run, formatting sweep or release-note entry is required for these documentation/prompt paths.
C4 repair and replacement holdout
C3's HOLD-09 output is retained above. The sole prompt repair adds a conditional PERF-03 sentence: compare representative supported capability-dependent fast/fallback paths on the same runtime; another runtime's results do not establish fallback cost. No metric, outcome, group, behavior gate or provenance label was removed. The old sanitized rule extract is unchanged; the full C4 instructions supply this additional requirement.
The source evaluator independently confirmed the original oracle, without reading the reviewer output: T-Gro's request, 2025-08-14T12:42:51Z, explicitly names .NET 9 with DOTNET_EnableHWIntrinsic=0. At final 7e5c5d16de76ecc0b87f8da9bed6b07438d65573, array.fs:1581-1614 and seq.fs:1467-1500 choose the old loop on Framework but LINQ on modern runtimes. Disabling intrinsics on .NET 9 therefore does not select the Framework fallback. The author's later assertion refers to a .NET Framework 4.8.1 table, not the requested modern scalar path. The oracle was not relaxed; source reinspection confirms a candidate miss rather than an oracle mistake. These are earlier, composition-unverified sources, not additional human-derived votes.
Frozen artifact |
Identity |
|---|---|
C4 candidate |
SHA-256 |
Repository coordinate |
|
Evidence table including post-C3 correction |
SHA-256 |
Sanitized rule extract |
SHA-256 |
Archive |
Current session |
No holdout laundering: #18509 and all of FAMILY-vector-sum become development. HOLD-01/02/03 remain exposed development. HOLD-04/05/06/07/08/10 are retained evaluation cases whose findings did not tune C4; their C4 runs are explicitly replays, not first-seen holdouts. A new family, FAMILY-string-spans, supplies the replacement for the affected conditional fast/fallback generated-program measurement category. It does not supply a second independent SIMD-disabled example; that narrower subcategory remains unavailable in the source-screened shortlist.
REPL-01: independent source oracle and actual result
Metadata-only reservation of #20358 predates candidate drafting. The source evaluator selected it from the predeclared #20358/#19804/#20275 shortlist based on the code/claim, not candidate behavior. Its string-construction mechanism is distinct from vector sum, empty-array sharing and inline closures. A common broad optimization umbrella issue does not make those changes duplicate mechanisms; that link was disclosed to the evaluator and omitted from reviewer navigation. No REPL-01 feedback or expected answer informed C4.
Case / PR / family / revision |
Coverage and source |
Frozen expected outcome and required evidence |
Prohibited unsupported finding |
|---|---|---|---|
REPL-01 / #20358 / FAMILY-string-spans / |
Generated-program library allocation, capability/input-dependent paths, API-neutral behavior. Author description claims heap-allocation reduction on .NET Standard 2.1+; three comments, no reviews/threads. Request-origin control; no verified-human precedent. |
|
No all-size/allocation-free or compiler-speed claim; no SIMD-toggle requirement; no invented pointer escape, corruption or measured stack failure. Source guard/coverage uncertainty is not an observed test failure. |
Input text SHA-256: 9fec7df157b5c59c3c20abf10acfb304980477613ebe993bacc09b7a13b322fd; complete diff SHA-256: 6efc6f9d9c230e223ad89b91a80270ccb0997de113528d1db0b17aec83a4044b; evaluator-only oracle SHA-256: e8a0f40ff5f622ef3995ca0554ff07baca5299f9476f8c35e155799e4d08ebe6. Canonical UTF-8/LF input/oracle bytes match the independently prepared payloads; initial Windows CRLF materialization was normalized before execution, without changing content. The source bundle and all fourteen reviewer-member hashes were frozen at 2026-09-22T15:01:02Z, files\replacement-study\freeze.json; the oracle is stored separately. The bundle contains complete base/head changed files, unchanged signatures, NativePtr implementation/signature, existing String tests and build/test asset routing, not discussions.
Actually executed: fresh named performance-improvement-review, task c4-repl-01, same CLI/model as the other runs; only C4, the sanitized rule extract, the single frozen reviewer bundle and access to its pinned Git objects were supplied. Saved output SHA-256 6a3d04e9709e0e13db50bd9cb607ef1444addd663450ea44263b7fa24fe0c304, files\c4-regression\REPL-01.md.
Actual finding: the reviewer identifies the exact temporary-buffer eliminations and unchanged larger-filter/short-replicate paths; requests B/op by branch and same-runtime identified binaries, warmup and repeated-run metadata. It catches the NETSTANDARD2_1_OR_GREATER-only guard, separate shipped-net asset and modern unit-test routing, distinguishing surface-area loading from behavioral execution. It requests threshold/selectivity/count tests, callback/overflow proof and fixed 1,024-byte stack-budget justification, while crediting existing null/empty/side-effect/Unicode tests and source-level lifetime/order invariants. It explicitly excludes hardware-intrinsic toggles, compiler timing and unrelated concurrency metrics. Final recommendation: evidence is insufficient; no blocker.
Evaluator result: match on every selected oracle concern, zero misses, zero unsupported blockers; one fresh case in one fresh family, not a broad precision/recall result. The actual table has fourteen scoped rows: five pass, seven needs evidence, two not applicable; ordered full group names, exact outcomes and all five evidence columns pass. This proves the broader conditional path/asset rule on a new real family, not the unavailable second SIMD-specific case.
C4 complete replay: retained development regression
C4 was actually run in thirty fresh named contexts on DEV-01..20 and HOLD-01..10, followed by one formatting-only retry and REPL-01: 32 invocations, 31 distinct cases. Outputs completed from 2026-09-22T14:45:36Z through 15:06:06Z. Inputs and source pins were unchanged. A separate evaluator read every actual output and checked added blockers against pinned sources; it did not invoke reviewers or rewrite expectations.
The original thirty cases scored 29/30 semantically, 28/30 including formatting. The sole semantic miss is HOLD-01, already-exposed development: C4 notices the covariant array's runtime type changes but asks whether compatibility policy covers it, omitting the formerly valid downcast's InvalidCastException and the required risk/blocker classification. Original transcript SHA-256 e77e0636b313d5c8fcfcdfc400ae9a7fa744f84d979b23ccd4ea9cf9d37bdc9c remains unedited. This is not an oracle ambiguity: the evaluator checked base/head clone/empty-array branches and the unchanged public copy contract. Intentional sharing does not establish permission for the separate runtime-type failure.
DEV-03's original semantics matched, but an unescaped array-comprehension pipe made one Markdown row seven cells. Its original SHA-256 is 94929ba57689a46ace5860f998386f54817cee62559c0c20e302fb3223cd7bb1. Fresh same-input/C4 task c4-dev-03-format-retry received only a generic pipe-escaping reminder, not prior findings or the oracle. Its thirteen-row output passes format and semantics, SHA-256 c701caa348ed7def763acf977f79cc57a78e92a462674fbff73ea6df0b131d99. The retry does not erase the original failure or count as a new case.
C4's HOLD-09 now explicitly requests the same modern runtime with intrinsics enabled/disabled, credits the supplied tables and does not substitute Framework data; SHA-256 e39250b5c8824679f52a89e4ebc6d37d9a6a9bd9db13a03c4a304ee6e24fee11. All other required DEV/HOLD checks matched their frozen semantic expectations, including both verified-human development rules, supported narrow wins, no-claim controls and resolved concerns. No unsupported blocker was established. With the formatting retry and successful REPL-01, C4 still scored 30/31 cases, not acceptance. Full original output hashes and concise per-case findings are retained in session files\c4-scoring.md; the final-candidate table below records the subsequent full replay separately.
C5 final-candidate freeze
C5 adds only the PERF-06/12 classification clarification: a source-established failure for previously valid callers is material risk, not merely an unspecified-policy question; distinguish explicitly intended behavior from separate collateral effects. The repair responds to development HOLD-01, not REPL-01. No case oracle, input, metric rule or source attribution changed. C4's failure and the successful but limited replacement result remain above.
Frozen at 2026-09-22T15:09:59Z, repository ac7bd61c998f0bade4aeaa00e676b87bedb6397e plus hashed working-tree changes: candidate SHA-256 65207b555cd16d94fb34b7c8186dbabac41717b516b25ed0f668d261b2c7049b; evidence SHA-256 5d88a405b2eae701c09a074679650b14dfd5ea5607562449e6a268519ac91e9e; sanitized rule extract unchanged at 60874a1849722ee4369a839d8a431565069f98aa7588f044582ccf4f3a485e14.
Hash encoding: candidate/evidence and transcript identities hash the exact saved bytes, including Windows CRLF. Git stores the prompt with LF; do not mistake that normalization for a prompt change. The LF candidate SHA-256 values are C3 3fd85a737e95e49354a1e83c7caec1d05a99aaeff25b47277f601094c215e571, C4 097018ca8a565aba01d36a893df712a55dec68f3294941318cf06e7092816a92, and C5 7bfed4f87f5ccff6b2a33c5a31cf35544b5bd2f2f78a433594daad0a965aceb6. C5 evidence's LF hash is b854b1d68c534fab1c488c43b79954887aeb234bfde91313325876bb9ac52510. Earlier fenced RED packets and the separately specified REPL/MIX input/oracle hashes use their explicitly documented UTF-8/LF convention.
Actual full execution: 31 fresh named tasks, c5-dev-01..c5-dev-20, c5-hold-01..c5-hold-10, and c5-repl-01, all with one packet and the same isolation/read-only boundary. Runtime remained Copilot CLI 1.0.87 / GPT-6 Astra (gpt-6-astra), inherited without override. Generic pipe escaping was reminded uniformly; no previous substantive answer was supplied. Outputs completed 15:12:24Z through 15:23:37Z, archived in current session files\c5-regression. This is a new complete run, not C4 results renamed.
All 31 output structures passed locally on first attempt: 327 scoped rows = 121 pass + 165 needs evidence + 32 not applicable + 9 risk/blocker; ordered full G1-G8 names, five nonempty columns and exact outcomes. Output lengths are 585-1,821 whitespace-delimited words. Input/archived-result identities were rechecked. These structure counts are separate from semantic scoring below.
Final semantic replay results
31/31 frozen cases match, zero missed required concerns, zero established unsupported blocker findings. This bounded result is not universal PR approval, review precision/recall, benchmark reproduction or complete-category coverage. The set is 24 real historical inputs from 20 distinct PRs plus seven labeled synthetic controls. Twenty-four cases are development/regression controls (including the seven synthetic cases); seven cases remain in evaluation families. Six of those seven were first run on C3, and REPL-01 was first run on C4. C5 is explicitly a complete replay, not 31 new independent holdouts.
The table preserves concise actual findings from both full repaired-candidate runs. Inputs, source URLs, required evidence and prohibited findings are the unchanged DEV/HOLD matrices and REPL-01 oracle above. SHA columns are prefixes of exact unedited transcript hashes; full hashes remain in c4-scoring.md / c5-scoring.md and their transcript files outside the repository. C4's DEV-03 prefix identifies its original formatting failure; the separately recorded retry is not hidden.
Case / source pin |
Actual C4 finding/request; SHA-256 prefix |
Actual C5 checklist proof/request; SHA-256 prefix |
C5 evaluator |
|---|---|---|---|
DEV-01 / P01/A |
321 MB report credited; narrow/justify shared-remapper cost, ask spread/equivalence; |
G7 |
Match |
DEV-02 / P02/B |
Local scope passes; credit 3 x 4 iterations/671 reported passes; request artifacts; |
G7 |
Match |
DEV-03 / P03/C |
Optional comprehension suggestion, syntax comparison N/A; original malformed table retained; |
Explicit syntax-speed |
Match |
DEV-04 / P04/D |
Adopted comprehensions recognized; protocol/error/target cost needed; |
Recognizes final idiom and separate localized mechanisms; asks actual benchmark/binary/protocol and targeted results, not whole-build gain from sampled CPU. |
Match |
DEV-05 / P05/E |
Credits ten rows/three fresh processes; requests roots/GC/spread; |
Retention metric/table/repetitions credited; asks live-root/collection boundaries, individual spread and repeat-check trade-offs, not faster time. |
Match |
DEV-06 / P06/F |
Compile-only assertion gap plus supported S1 failure-caching risk; |
Requests executing/strengthening the conditional; source-traced S1 failed lazy suppresses later-range diagnostic, requiring two-site proof. |
Match; supported extension |
DEV-07 / P07/G |
Executing harness passes; 477/~810 MB reconciliation and S1 remain; |
Credits |
Match |
DEV-08 / P08/H |
Reversal equivalence passes; producer comment/assertion needed; |
Source proves strict positions/empty/switch cases; explicitly distinguishes missing producer contract from consumer comment, without alleging miscompile. |
Match |
DEV-09 / P09/I |
Producer repair and 139,370 comparisons credited; methodology gaps only; |
Comment/Debug assertion |
Match |
DEV-10 / P10/J |
CE workload and lookup/allocation proof requested; no explicit speed claim; |
Build log is not comparison; asks applicable CE checking/allocation, range and retained-environment proof, not fabricated leak or rejection. |
Match |
DEV-11 / P11/K |
~2 MB versus ~61 MB attribution and unresolved-thunk repair credited; no additional S2 in this run; |
Same attribution/repair |
Match; supported extension |
DEV-12 / P12/L |
Retains N=8 slowdown and unoptimized closure cost; request both-mode runtime/spread; |
Retains 2.5->3.8 s and censored failures; credits executable guard/byref assertions; asks generated-call trade-offs, not identical promoted IL. |
Match |
DEV-13 / P13/M |
Nine rotated samples and flat/worse cases credited; S3 cyclic-root risk; |
Separates retention/warm time, asks spread/lifecycle, does not declare Fantomas regression. Adds S3 and conditional old-client/new-assembly Create ABI risk. |
Match; supported extensions |
DEV-14 / S01 |
All groups need specific evidence, no invented defect; |
Names missing operation/workload/implementation, comparable metrics and reproduction; unknowns stay unknown. |
Match |
DEV-15 / S02 |
Stipulated 12->0 closures/semantics pass; no timing prerequisite; |
Accepts structural/behavior stipulations; no runtime, GC or timing-error-bar demand for a count-only claim. |
Match; synthetic |
DEV-16 / S03 |
Rooted ~1 MB/request growth is material despite time win; |
|
Match; synthetic |
DEV-17 / S04 |
Spelling-only metric gates N/A; |
No compiler/runtime measurement or test campaign; scoped stipulated edit passes without pretending to inspect an underlying patch. |
Match; synthetic |
DEV-18 / S05 |
Difference uncertainty/value needed; overlapping intervals not equality; |
Credits supplied means/CIs/30 runs; requests difference uncertainty and practical value, no arbitrary threshold/regression. |
Match; synthetic |
DEV-19 / S06 |
256->128 B/op passes despite flat time; |
G3/G4/G5 |
Match; synthetic |
DEV-20 / S07 |
Runtime/semantic/resource stipulations pass; changed IL allowed; |
Credits 280->80 us and 393,680->131,088 B/op; no identical-IL or compiler-speed inference. Broader endorsement remains bounded. |
Match; synthetic |
HOLD-01 / #20388 old |
Changed runtime type noticed but concrete risk demoted; miss; |
|
Match; development repair |
HOLD-02 / #20388 final |
Guards, sharing docs and tests pass; missing opt-out/provenance/nonempty evidence; |
Explicitly credits covariance/doc repairs and ancillary scope. Separately traces old freshness-dependent ConditionalWeakTable caller failure; measurement gaps remain. |
Match; additional supported risk, adjudication below |
HOLD-03 / #20367 |
Inline/control flow pass; sampling/binary/structural proof requested; |
Credits narrow declarations/warning flow; separates sampled 412 MB, +1.5 KB DLL and produced-output identity; no speedup prerequisite. |
Match; development |
HOLD-04 / #20544 |
No claimed metric gate; SDK/Core resolution evidence needed; |
Distinguishes three shipping debug strings from docs/tests/scripts; requests actual standalone resolution/results without inventing host failure. |
Match |
HOLD-05 / #20444 |
Executing characterization recognized; no shipping benchmark; |
Traces eight event-list assertions, warm observation and implicit-name invalidation; targeted results needed, no claimed production optimization. |
Match |
HOLD-06 / #20436 |
Metrics N/A; model-policy/description consistency request; |
G1-G5 N/A; asks intent clarification, not resource/quality defect or compiler/agent benchmark. Embedded instructions remain data. |
Match |
HOLD-07 / #20119 |
Strong history/removal risk traced; mailbox race excluded; |
Same source-supported ownership/removal paths; asks bounded roots, CPU/IDE measurements and retry/invalidation tests, no measured OOM or stale-symbol claim. |
Match |
HOLD-08 / #20587 |
Critical path, queue, capacity, compute and test-union evidence requested; |
Credits source partition/template/SDK batch 1; requests full-job timings and actual union/publication, no invented twofold win or skipped tests. |
Match |
HOLD-09 / #18509 |
Exact modern-runtime intrinsics-disabled condition caught; |
Same-runtime enabled/disabled request retained with reason; credits tables, distinguishes Framework fallback and removed averages, asks final binary/numeric/API proof. |
Match; development replay |
HOLD-10 / #20507 |
Additive immutable API passes; true/false/default results needed; |
No metric gate; credits signature/baseline/defaults and copied context; asks formatting/composition results, no global-mutation claim. |
Match |
REPL-01 / #20358 |
Asset/threshold/stack oracle caught, no blocker; |
Repeats asset-aware same-runtime B/H requirement, threshold/selectivity and replicate controls, 1,024-byte stack trade-off and existing tests; no SIMD/pointer-defect invention. |
Match; replacement-family replay |
Scoring correction, not oracle relaxation: the evaluator initially recorded C5 as 30/31, treating HOLD-02's freshness-risk extension as prohibited. Reinspection of the original pre-execution oracle established that its pass is specifically for repaired covariance/documentation. It prohibits repeating the old covariance defect or claiming unchanged freshness docs, not every additional source-supported compatibility finding. C5 explicitly says the covariance mechanism is resolved and sharing is intentional/disclosed. Base copy clones two distinct empty arrays; final copy returns the same singleton, so the second addition as a key to one live ConditionalWeakTable changes from success to a duplicate-key exception. That constructed caller failure is source-supported, not an executed field report. New documentation establishes the intended sharing contract, not a blanket waiver for existing callers.
The initial erroneous score and this correction are retained in c5-scoring.md/.json; candidate, original oracle and every output are unchanged, and no retry or independent-case credit was added. The compact transcription above initially said "No stale covariance/freshness blocker," which was too broad; it now accurately states the original oracle's prohibition on repeating the covariance defect or claiming unchanged freshness documentation. This is a source-backed transcription/scoring correction, not a new oracle. Preservation is a supported remedy; the source does not establish that it is the only permissible release decision or a universal policy veto. The combined risk/blocker category includes this substantiated compatibility risk without inventing such policy. This adjudication follows the same scoped-check/independently-verified-extension rule used for S1-S3, rather than changing an oracle to fit a result.
The nine risk rows occur in eight cases. S1 repeats across two revisions; S2 uses the already-verified losing-importer path; S3 is separate from the conditional ABI finding. HOLD-07 includes historical retention and removal-cleanup subcases. No row count is presented as an independent-bug or human-vote count. Added ABI risk is scoped to an old compiled Create caller actually binding the new assembly without its old method signature, not an assertion that every deployment breaks or FCS has a universal cross-version compatibility guarantee. All source-derived failures remain distinct from observed executions.
MIX-01: full-evidence mixed-scope extension
HOLD-04 is a useful mixed-file no-claim control, not the stronger test of attributing a real performance claim separately from cleanup. This additional case closes that distinction without changing C5. #20455 was reserved as mixed-scope before drafting; its named-record cleanup and option-to-voption allocation mechanism are separable within the editor subsystem. It belongs to the existing FAMILY-vs-work-reuse, not a new independent family. The case was first executed only after C5 was frozen.
Case / PR / revision |
Source and input |
Pre-execution expected outcome/evidence |
Prohibited unsupported finding |
|---|---|---|---|
MIX-01 / #20455 / |
Author benchmark, xperiandri, |
Credit five-way ablation: tuple/reference-record write allocation both 377 B versus shipped reference-record/voption 369 B on the Framework job, and 376/376/368 B on net10. Separate readability from the 8 B allocation mechanism; assess actual serialized hit/remove-and-readd paths versus synthetic existing-key Update. Credit supplied runtime/environment/error metadata and 1,000-operation normalization. Request only material remaining provenance, repeat/timing or real-path fidelity gaps. |
No allocation-free or whole-IDE speed claim; no missing-Framework/table/ablation claim; no automatic production regression from the 5.09x Update row, or unoptimized-child conclusion from the DEBUG host banner. |
Pre-execution packet correction: the first unexecuted draft omitted the author benchmark. Before freezing or running it, the evaluator restored that entire available measurement artifact and adjusted the oracle to credit it. V1 input/oracle hashes 11306c2c00a6811dd5fa09bf7a897fe4f5c096ec577895bb741a5541ffa90ba4 / 5c6e8b9236e51c598724863548f87711b3c886d4cf62e607dc8b5ffcdae0aaa3 remain in the preserved evaluator transcript; neither was ever run. Withheld review objections are not a reason to hide author measurements. This correction was independent of candidate output.
Executed v2 was frozen at 2026-09-22T16:14:56Z, files\mixed-study\freeze.json: input SHA-256 a20d2a38438fd2c05cf0c9d37d1565db7cdd7cdf1e837bb50a009cedf9f6a77b; diff 0465ec192f53352ae798550282e04cbe65aba3230ef4909adee915e064c9d5c6; complete 25,152-byte author benchmark 2a218f35a2f7c2dc6257325fa1ce40ae4c2896407e9f23577604bf7c33f9016f; separate evaluator oracle 7d273f83ae8c05bb89b7dfcbc866dcb1736986add69753218ef0faf7e66debd2. All eight reviewer payloads are hashed; no feedback/history/oracle directory was exposed.
Actual named run: c5-mix-01, same CLI/model, isolated input and pinned-source-only boundary as the 31-case replay. Output files\c5-regression\MIX-01.md, SHA-256 3d75dec0a93a7f7c0fbb5f5c0038c91f7c3a5dd85da259547d8dfcf778ff09f9. The reviewer gives G4 pass to the modeled 8 B/op (~2.1%) saving and G7 pass to supplied attribution/cleanup. It explicitly distinguishes the Framework 4.8.1 job from the net472 editor and secondary .NET 10 comparison, credits the supplied tables/harness/configuration, and does not claim the DEBUG host proves an unoptimized benchmark.
It traces mailbox serialization and the actual removal/insertion sites, so the 5.09x synthetic Update row is not called an observed IDE regression. It retains the 674.98->733.73 ns hit means (~8.7% increase) and the author's reported 20-25% second-run movement without inferring equality or a reliable regression. Specific needs evidence requests concern the missing repeat/results/provenance, timing-parity qualification, production frequency, and the harness's always-successful stub versus no-view/subscription-failure paths. Existing lifetime/control-flow mapping passes; targeted execution remains unverified, not a fabricated correctness failure. No whole-IDE trace, compiler-wide benchmark matrix or blocker is demanded.
Parent evaluator score: all six frozen oracle requirements matched, zero misses and zero unsupported blockers; the actual ten-row table passes shape with five pass and five needs evidence rows. The complete final C5 suite is therefore 32/32 semantic matches, 337 valid scoped rows (126 pass, 170 needs evidence, 32 not applicable, 9 risk/blocker), with no output retry on C5. It contains 25 real historical inputs from 21 PRs plus seven synthetic controls; eight evaluation cases are in seven families. MIX-01 adds a first-seen C5 case, not a new family or an extra vector-repair replacement. No new verified-human-composition precedent is claimed, and benchmark-only coverage remains unavailable.
BENCH-01: synthetic contract only, not real holdout coverage
The absent real benchmark-only category is not silently replaced. This separately labeled request-origin synthetic control tests the output contract without supplying any real-PR or human-precedent credit. It changes only an existing benchmark's [<Params(4096)>] to the four parameters below: empty, short, retained existing and larger input. No implementation, target, dependency or operation changes; no speedup, allocation reduction, real-world representativeness or statistical result is claimed.
open BenchmarkDotNet.Attributes
[<MemoryDiagnoser>]
type SumBenchmarks() =
let mutable data: int[] = [||]
[<Params(0, 128, 4096, 65536)>]
member val Size = 0 with get, set
[<GlobalSetup>]
member this.Setup() =
data <- Array.init this.Size (fun i -> i % 1024)
[<Benchmark>]
member _.Sum() =
Array.sum data
The unchanged runner is stipulated as Release net10.0 / BenchmarkDotNet 0.15.8 with its ordinary generated harness and MemoryDiagnoser. A Dry smoke completion of all four parameters is stipulated synthetic data, not a run performed here and not statistical evidence. The separately frozen oracle requires recognition of benchmark-only scope, setup exclusion/result consumption and expanded boundaries; no product speedup/table/significance gate, fabricated resource defect or claim that Dry proves timing validity is allowed.
Freeze 2026-09-22T16:39:09Z: input SHA-256 ceb1e223d8e14585af8c8da9d059078cb46e47e2f3fd6f2e3c1d1d0327006de9; evaluator-only oracle 168231e15905c8306884a0d525737d22a2cf9131fef64a9584b216eb8e0f60b2 (exact UTF-8/CRLF bytes). Fresh named task c5-bench-01 received only C5, the sanitized rules and this one fixture, not the oracle or prior outputs. Saved output SHA-256 68f5b6bbc361e7f9234c30d26bf321b6ab8b45a291268cd7b092aa671a9d6589, files\c5-regression\BENCH-01.md.
Actual result: seven pass rows and G4 not applicable. The reviewer accepts benchmark input-coverage value, recognizes that the performance-table gate does not apply, credits setup exclusion/returned-result consumption and preserves the Dry/statistical distinction. It does not demand hardware, repetitions, whole-build/IDE metrics or an actual execution certificate for the stipulated coverage-only fixture. It explicitly endorses only broader benchmark coverage, not shipped performance. Parent evaluator: all required checks match, no unsupported finding.
Final executed set: 33/33 semantic matches, zero misses, zero established unsupported blockers; all 33 output structures pass. There are 345 scoped rows: 133 pass, 170 needs evidence, 33 not applicable, nine risk/blocker. The set contains 25 real historical inputs from 21 PRs and eight synthetic controls; eight evaluation cases remain in seven families. The real benchmark-only holdout count is still zero, and no new verified-human-composition source has been added. These bounded local successes do not certify unavailable real-category coverage.
Sprint-10 reconciliation and residual manifest
Bounded reconciliation complete, not unconditional reviewer acceptance. Starting/current HEAD is ac7bd61c998f0bade4aeaa00e676b87bedb6397e. The four starting dirty files (agent, corpus, evidence, validation) were intentional C5 work and remain unstaged; this sprint edits only the three documents. Process command lines/ancestry were checked before editing: no competing writer to this worktree was identified; other active implementors belonged to other worktrees and were left alone. No acquisition restart, new reviewer batch, compiler build/test, package/format sweep, staging, commit or GitHub write occurred. The original window remains 2026-04-22T00:00:00Z through 2026-09-22T09:28:34Z.
Acceptance item |
Reconciled current evidence |
Residual / boundary |
|---|---|---|
C5 identity and execution |
All 33 saved review outputs and actual named task launch/completion records exist; 31 output hashes match |
Saved semantic score is 33/33 (31-case evaluator plus two parent-scored extensions), not a new semantic rescore or human-source audit. No missing output or unawaited delegated work. |
Inputs, oracles and shape |
Twenty DEV packet/diff identities, ten complete HOLD file sets, twenty earlier C3 output hashes/shapes and all REPL/MIX/BENCH payload/oracle freezes checked. Case-only C5 shape: 33/33, 345 rows = 133 pass + 170 needs evidence + 33 not applicable + 9 risk/blocker. |
The required |
Available source coverage |
94 reserved PRs, completion-report hashes/totals and pinned source identities reconcile with archives. Six named conversations audited from original envelopes and relevant pins. |
Prior reading credit is documented, not independently repeated. Deleted/private material, two missing Azure payloads and historical mutable edits remain unavailable; no available essential archive was missing. |
Provenance and rule semantics |
Circular request-attested authorship removed; account-attributed reviewer feedback, author rationale/measurements, explicit automation and uncertainty distinguished. All eight groups, twelve PERF rules and conditional gates remain. |
Attribution-only edits; zero semantic rule deltas. C5's unqualified human-derived provenance wording still needs alignment; stronger human-composition grounding is not established by replay or by the named envelopes. |
Coverage and eligibility |
Real/synthetic/result columns cover every required applicability category. Effective inventory 63 development / 59 holdout candidates; executed evaluation subset eight cases / seven families. |
Real benchmark-only 0; BENCH-01 is synthetic and matches. Fixtures are permitted: neither relabel it a real holdout nor make the exhausted category an automatic failure. All eight evaluation cases are now seen, not fresh. |
Frozen identities and archive coordinates
Archive root R: C:\Users\tomasgrosup\.config\daily-monitor\copilot-microsoft\session-state. A = R\36233952-cdbf-4056-984e-1fe93e32d7a3\files; B = R\c8f07943-58a7-4cdd-9a76-ce0b8d398079\files; S = R\295cd124-c927-411b-84e7-ada0988de119\files. Raw data/scripts/oracles/transcripts remain there, not in the repository. S retains exact starting snapshots, starting-identities.json, both shape reports, reconciliation.json, c5-run-identities.json and final ending-identities.json. The latter records the final validation-document digest externally to avoid a self-referential hash.
Artifact |
Starting SHA-256: exact bytes / UTF-8 LF |
Current identity |
|---|---|---|
C5 candidate |
|
Both unchanged; exact bytes equal |
Evidence |
|
Exact |
Corpus |
|
Exact |
Validation |
|
Current exact/LF identities in |
Compiler-review skill |
|
Both unchanged; read, not tuned. |
Exact hashes include saved CRLF; normalized hashes replace CRLF with LF before SHA-256, without other text changes. C5's actual sanitized extract B\c5-regression\rules.md remains 60874a1849722ee4369a839d8a431565069f98aa7588f044582ccf4f3a485e14. The effective decision-rule projection before/after reconciliation is 0c226f5ae36666f41d31644c16db4967bfa0f25ab8928d0091ddefd81a5ad7b8: UTF-8 canonical JSON (ensure_ascii=False, separators (',', ':')), keys rules then metrics; twelve stripped PERF rows projected to ID/rule/evidence/limits (columns 1/6/7/8), then nine metric rows projected to their first three columns. S\reconcile_artifacts.py defines this source/provenance-excluding projection; it is not a substitute for the full candidate/extract identity or a claim that new full-context source notes were model-tested.
Exact case inputs, original expectations and run identities
The manifest below enumerates all 33 cases without replacing their original detailed expectations. For every case, its actual run name is c5- plus the lowercase case ID, its unchanged output is B\c5-regression\<CASE>.md, and its result/hash is in the 31-case C5 table or the linked extension section. B's parent events.jsonl confirms all 33 launches/completions with Copilot CLI 1.0.87 / gpt-6-astra, no model override. S\c5-run-identities.json records exact tool-call IDs, timestamps, prompts and completion records, SHA-256 797f5c84b65543ddc1a3f76400c6563bada75f4888c73ffb8bcef4cd5cdbd0c8. The twenty DEV tasks launched 15:11:35.052Z, ten HOLD plus REPL at 15:18:44.206Z, MIX at 16:15:08.300Z, BENCH at 16:39:28.178Z on 2026-09-22. Parent tool-completion times are not child output-save times.
Case IDs |
Exact frozen input / original oracle |
Actual result and effective eligibility |
|---|---|---|
DEV-01, DEV-02, DEV-03, DEV-04, DEV-05, DEV-06, DEV-07, DEV-08, DEV-09, DEV-10, DEV-11, DEV-12, DEV-13 |
|
Recorded 13/13 matches; historical real-PR development, not holdouts. Required outcomes remain scoped: missing proof is not a blocker; resolved scope/test/invariant concerns pass. Supported additional source risks remain separately adjudicated. |
DEV-14, DEV-15, DEV-16, DEV-17, DEV-18, DEV-19, DEV-20 |
Same DEV directory/manifest, S01-S07; original matrix and packet hashes. Respectively: needs evidence; structural/semantic pass without timing; retention risk/blocker; metric N/A; significance needs evidence; flat-time allocation pass; generated-runtime/semantic pass. |
Recorded 7/7 matches; synthetic development, no real-source or holdout credit. |
HOLD-01, HOLD-02, HOLD-03, HOLD-04, HOLD-05, HOLD-06, HOLD-07, HOLD-08, HOLD-09, HOLD-10 |
|
Recorded 10/10 C5 matches. HOLD-01/02/03 are the connected core-empty-array/inline-closures development group (also includes realsig-TLR); HOLD-09/vector-sum was promoted after the C3 miss. HOLD-04/05/06/07/08/10 remain six previously evaluated cases/families. |
REPL-01 |
|
Recorded match: asset/branch-sensitive evidence requests, existing tests credited, no invented SIMD/pointer defect. String-spans evaluation family; first run C4, C5 replay. Freeze's C4 candidate field is historical, not the C5 invocation identity. |
MIX-01 |
Executed v2 only: |
Recorded match: credit author ablation, isolate cleanup/allocation, no synthetic Update-to-IDE regression inference. First seen on C5; same VS-work-reuse family as HOLD-07, not an eighth family. Unexecuted v1 remains historical. |
BENCH-01 |
|
Recorded match: coverage-only benefit, no quantitative product claim, Dry is smoke only. Synthetic contract control, never a real historical holdout. |
The 31-case score record hashes are B\c5-scoring.json 3496045f204d033d8424919c13cacc6fbba55aea2cb173c79adcd792fd2a29eb and .md 25f11aafa9d92f092cc5917fbdfbf441dd2f2edaf1e398f28c73c6ca72a8f3fe. They are not 33-case files: MIX/BENCH add the separately preserved parent scores above. The C3 HOLD-09 miss, C4 HOLD-01 miss, C4 DEV-03 formatting failure/retry and C5 HOLD-02 scoring correction all remain recorded; no oracle was changed to fit an output.
Only remaining or affected checks for sprint 11
No semantic repair or missing C5 case is identified by this reconciliation. Do not reacquire 94 PRs, rerun the 804-PR search, widen the window or create a real-benchmark-only requirement. Existing fixtures satisfy that applicability boundary; the original eight evaluation cases remain the executed subset, not unused replacements.
The precise unresolved acceptance item is unqualified verified-human grounding: the named envelopes establish participants, concerns and resolutions, not unaided composition. In particular #20352 comment 5422336205 has no review envelope and #20348 comments 3854812488/3860828838 have empty parent reviews 5021077157/5028138073; neither contains a composition attestation. No missing envelope can be fixed by another bulk search. A stronger retained claim would need source-specific attribution beyond these records; do not invent an external attestation policy or treat style/User status as proof.
Proposed provenance-only delta, not applied to the candidate here: replace its description's "verified human review precedents" with "source-attributed performance-review precedents"; replace its "verified rules/metric map" label with "rules/metric map"; replace "Only PERF-08/09 are human-derived + request-required; other gates are request-required. Preserve these labels." with "All gates are request-required. Source-attributed reviewer feedback and author rationale support narrow rules with the evidence document's composition limits; neither is verified by account type or replay." In the compiler-review skill, "verified evidence resources" should become "evidence and provenance resources." Apply the same attribution correction to any new sanitized extract, never overwrite the archived one. No PERF rule meaning, metric condition, outcome or oracle change is proposed.
The affected provenance sentinels are DEV-01/02/03/04 (PERF-08/09 scope, narrower alternative, optional syntax and resolved idiom). If sprint 11 changes candidate/extract wording, freeze both new identities before running those exact unchanged inputs; compare their original scoped outcomes and check that attribution uncertainty is not turned into a missing performance prerequisite. This is development replay, not new holdout credit. The added #20353/#20287/#20296/#19995 mappings explain already-required rules; DEV-06/07/13 are existing source-related controls, not newly failing cases, and #20287/#19995 have no dedicated executed packet. DEV-05's #20261 source-label correction (unsupported model association -> uncertain composition) likewise changes neither its input/oracle nor its human-evidence credit. There is no basis here for a new semantic rule or a blanket replay mandate. A later semantic edit must name its exact rule delta and affected cases before execution; no such edit is authorized by a passing old C5 score.
Sprint-11 bounded semantic validation
Accepted after input-isolation repair: C6-S's selected complete replay matches 36/36 frozen concerns, with zero unsupported findings. C6's original shared PERF-11 extract disclosed a later executable-test repair to historical pre-fix DEV-06; its score and artifacts remain historical, not clean-isolation acceptance. C6-S uses the unchanged candidate with a sanitized extract and actual new outputs, including strict-isolation replacements described below. The set covers 28 real historical inputs from 23 PRs and eight synthetic controls. Eight previously seen evaluation cases remain in seven families; no new independent holdout or verified-human-composition credit is claimed. Source-attributed feedback is usable with the recorded composition limits; replay does not authenticate authorship.
Archive T = R\b8acc633-d504-4744-b6c6-467dd7b37ea1\files, using R from archive coordinates. P = T\bounded-validation, F = T\c6-validation. Each has frozen candidate/rules, separately stored evaluator oracles, isolated reviewer packets, verbatim outputs, invocation envelopes and per-case status/hashes. T\final-checks.json and ending-identities.json record final checks and document identities outside the repository. Private orchestration is not a deliverable.
Recovery, measured miss and final freeze
The original C5 candidate/extract, 33 transcripts and packet identities were verified, including the corrected MIX-01 author benchmark. The case-only checker again passed 33 outputs / 345 rows. They were accepted as the existing C5 full execution: there was no recovery-triggered 33-run batch. Sprint 10 changed attribution, not decisions. Its provenance-only substitutions were applied to candidate C5-P, the sanitized extract and the integration link label; four unchanged development sentinels passed. Two source conversations lacked dedicated executions, so three source-selected development inputs were frozen before outputs, below.
C5-P scored 6/7, not acceptance. SRC-02 credited automatic listener removal but missed remaining cacheId/filtering and always-on Debug Stats.Incr cost. Generic external-listener comparability did not satisfy that concern. Independent evaluation checked the original source and oracle; P\source-evaluation.md retains the miss, two other source matches and independently supported additional risks. Original SRC-02 output SHA-256 is 91ce9f2e6d65f3b7887097cf4dcdb6179a9b226742bdcdc0530aba84d4a46ac1. No oracle, packet or output was rewritten.
C6's sole decision-rule change is conditional PERF-05 instrumentation assessment: credit repaired ownership separately from remaining collection costs; request relevant enabled/disabled evidence or justify bounded accounting without banning useful diagnostics or prescribing a directive. The #19995 source mapping supports that repair. A fresh SRC-02 focused run passed (F\focused\SRC-02.md, SHA-256 02c5179e9d8d70ff0b7880cb366a07f2e126796fd9cfb03f2e164862c77fd2b3), then all 36 cases ran once under the unchanged C6 freeze. The already-exposed cache-listener family remains development; this repair consumed no evaluation family and requires no new replacement. REPL-01 retains only its original independent-family credit.
Freeze / execution |
Identity and actual scope |
|---|---|
C5-P, |
Candidate UTF-8/LF |
C6, |
Repository candidate exact bytes |
C6 manifest and effective rules |
|
Original C6 execution |
Named |
Invocation and evaluation records |
|
Each original reviewer ran in a separate one-case context with full candidate instructions, rule/metric extract, complete pinned diff and relevant source/signature/test context. Direct discussion/oracle/other-output reads were excluded, but the extract was not fully sanitized: PERF-11 said "Recognize the final test executes it" regardless of the selected historical revision. Hash and shape checks did not detect this content leak. Additional code reads were limited to that packet's Git pins. Full author measurements were retained, including MIX-01's 25,152-byte artifact. Reviewers only saved their own unedited private outputs; evaluators only saved private scores. The orchestrator alone edited repository documents. Neither author-reported nor synthetic measurements/tests were executed here.
Input-isolation repair and sanitized replay
C6-S uses the unchanged C6 candidate and general decision gates, with a case-neutral extract. PERF-11 now credits runtime assertions only when the supplied pinned test invokes them; the extract also removes residual thread/family references and the case-specific 321 MB figure. No packet, source pin, benchmark, oracle or prior output changed. This correction supersedes earlier "sanitized" and "later fixes excluded" descriptions wherever the older extract was supplied; their observed scores remain historical, not clean-isolation acceptance.
Archive U = R\7b621641-31f6-4465-9fb7-e0cca80e32f2\files; D = U\c6-sanitized. The first affected DEV-06 run detected the nonexecuting conditional, then all 36 cases ran under this freeze. Tool-trace inspection additionally found generic compiler-review skill loads in that focused run and DEV-06/08/10/11. Although the skill contained no withheld case fact, these five contexts were excluded rather than silently accepted. A frozen wrapper clarification identifies artifact-only calibration, without changing reviewer rules or hinting outcomes. One clean focused run and four clean replacements completed; original outputs remain untouched.
Identity / execution |
Actual scope |
|---|---|
C6-S freeze, |
|
Isolation retry freeze, |
|
Actual reviewer execution |
Named |
Selected transcripts |
|
Input-boundary regression checks |
The old extract fails the history guard; the new one passes. |
Semantic evaluation |
Original batch |
Evaluator limitation: a locator search exposed historical DEV-01 result lines to the evaluator, not to any reviewer. It then checked the actual outputs, frozen concerns and pinned mechanisms rather than importing those scores. Original evaluator records and the selected aggregate preserve this caveat; no blinded-evaluator claim is made. This does not change reviewer isolation, source provenance, case eligibility or first-seen counts.
Added source-backed oracles
All three were selected from the named sprint-10 conversations, not from candidate outputs or a reserve-wide search. Exact source comments and the oracles were frozen in P before execution and copied unchanged to F. These are development, not three new holdouts or certified-human votes. Existing DEV-01/02/03/04 cover scope/optional syntax; DEV-07 and DEV-13 actually cover the elapsed/allocation distinction and resolved typed/shared-settings key.
Case / historical input |
Evaluator-only source and frozen concern / required evidence |
Oracle SHA-256 |
|---|---|---|
SRC-01 / #20287 final; base |
Reader question, qualification, answer, originally at |
|
SRC-02 / #19995 original code-only; base |
Tag cost, narrower gate. Credit automatic listener repair, assess remaining tags/filtering/direct Debug counters and request relevant exporter/on-off cost evidence or bounded alternative. No measured slowdown or mandatory directive. |
|
SRC-03 / #19995 final; base |
Stats alternative, aggregation accepted, author rationale. Recognize removed listeners/IDs, disposable aggregation and serialized deltas; credit author measurements but catch their stale direct-Stats account. Request final-binary/lifecycle evidence, not mandatory per-instance Stats. |
|
Final case matrix
Source/oracle coordinates and required evidence remain in the original DEV matrix, exact HOLD oracle, REPL-01, MIX-01, BENCH-01 and the SRC table above. Every row below uses C6-S's selected actual output, not the original C6 score. Hashes are prefixes of input.md / exact unedited output; D's freeze, selection and selected score contain full identities. The earlier C6 matrix/score remains in F\scoring.json/.md. Outcome words describe scoped checks, not overall PR approval.
Case / source-oracle |
Expected evidence and actual scoped outcome |
Input / output SHA-256 prefixes |
Evaluation |
|---|---|---|---|
DEV-01 / P01/A |
Needs evidence for remapper breadth/value and equivalence; 321 MB credited, no invented traversal defect. |
|
Match |
DEV-02 / P02/B |
Local reuse passes; supplied repetitions/tests credited; spread/binaries/commands still needed. |
|
Match |
DEV-03 / P03/C |
Syntax-speed comparison not applicable; clarity optional, no timing prerequisite. |
|
Match |
DEV-04 / P04/D |
Adopted comprehensions/local scope pass; protocol/error/results needed, no sampled-CPU-to-build inference. |
|
Match |
DEV-05 / P05/E |
Retention/table/three processes credited; roots/GC/spread needed, not faster time. |
|
Match |
DEV-06 / P06/F |
Detects nonexecuting conditional without later-fix hint; separate source-supported failed-lazy diagnostic risk. |
|
Match |
DEV-07 / P07/G |
Executing harness passes; net allocation/range proof needed; no stale compile-only finding. |
|
Match |
DEV-08 / P08/H |
Current order passes; producer contract still needs comment/assertion, not consumer prose. |
|
Match |
DEV-09 / P09/I |
Producer repair/reported comparisons credited; methodology/execution still needed. |
|
Match |
DEV-10 / P10/J |
Needs CE workload/lookup/range evidence; build log is not comparative speed. |
|
Match |
DEV-11 / P11/K |
2 MB versus 61 MB and unresolved-thunk repair credited; matched flags/lifecycle needed; abandoned-claim risk checked. |
|
Match |
DEV-12 / P12/L |
Retains N=8 slowdown/censored failures and both emitted modes; runtime trade-offs needed, not identical promoted IL. |
|
Match |
DEV-13 / P13/M |
Retention/warm time and nine rotated samples credited; spread/lifecycle needed; root-key and conditional ABI risks checked. |
|
Match |
DEV-14 / S01 |
Bare Faster needs workload/implementation/measurements; no invented defect. |
|
Match |
DEV-15 / S02 |
Stipulated closure-count/semantics pass; reproduction gaps separate, no timing/GC prerequisite. |
|
Match |
DEV-16 / S03 |
Stipulated rooted linear retention is risk despite latency win; no observed OOM claim. |
|
Match |
DEV-17 / S04 |
Spelling-only no-claim metric gates not applicable. |
|
Match |
DEV-18 / S05 |
Difference uncertainty/value needed; supplied intervals/runs credited, no arbitrary threshold. |
|
Match |
DEV-19 / S06 |
Allocation/resource evidence passes despite flat time; protocol/value gaps remain scoped. |
|
Match |
DEV-20 / S07 |
Runtime/semantic stipulations pass; intentionally different IL allowed. |
|
Match |
HOLD-01 / #20388 original |
Concrete covariant downcast failure is risk, not policy uncertainty. |
|
Match |
HOLD-02 / #20388 final |
Covariance/docs repairs pass; measurement gaps remain, no universal freshness/CWT policy imposed. |
|
Match |
HOLD-03 / #20367 |
Narrow inline/control flow passes; sampled allocation/binary/output provenance needed. |
|
Match |
HOLD-04 / #20544 |
No speed gate; SDK-script host/Core availability remains a qualified execution question. |
|
Match |
HOLD-05 / #20444 |
Test-only characterization/assertion shape passes; targeted results, not product benchmarks. |
|
Match |
HOLD-06 / #20436 |
Docs-only metric gates not applicable; editorial/product-compatibility scope passes, no embedded-command execution. |
|
Match |
HOLD-07 / #20119 |
Strong historical-reader ownership and project-removal gap are risks; serialized-first-use race excluded. |
|
Match |
HOLD-08 / #20587 |
Static partition credited; critical path/queue/compute/actual test-union evidence needed. |
|
Match |
HOLD-09 / #18509 |
Same-runtime intrinsics-disabled measurement explicitly required; Framework/table evidence credited; conditional float32 risk separate. |
|
Match |
HOLD-10 / #20507 |
Additive immutable API passes; formatting-option execution needed, no performance gate. |
|
Match |
REPL-01 / #20358 |
Core asset/fallback/branch measurements needed; existing semantics/tests credited, no invented pointer/SIMD defect. |
|
Match |
MIX-01 / #20455 |
Author ablation/8 B saving pass; timing-parity and absent-subscription evidence needed, synthetic Update not an IDE regression. |
|
Match |
BENCH-01 / fixture |
Benchmark coverage passes; no product speed claim or Dry-as-statistics inference. |
|
Match |
SRC-01 / #20287 |
Shared-reader premise qualified; tables/noise credited; distinct last-owner retention risk substantiated. |
|
Match |
SRC-02 / #19995 original |
Ownership repair passes; remaining tags/filter/counters/exporter costs need evidence, not a mandatory gate. |
|
Match |
SRC-03 / #19995 final |
Aggregation/serialization repairs credited; stale prose/final-binary evidence gap and public-listener removal distinguished. |
|
Match |
The evaluator checked pinned callers/preconditions/consequences for additional risks. DEV-11 identifies abandoned publication ownership after a later batch import fails, not C5's losing-importer-context trace. SRC-01 requires the forced store to become the callback/context's last owner; the shared-reader workload does not establish per-wrapper release savings. SRC-03's removed public disposable listener is separate from the repaired automatic leak. Diagnostic-cache, cyclic sharing-key, conditional Create binding and editor retention/removal traces remain in D's selected score. HOLD-02 raises no CWT/freshness blocker in this replay; F's earlier conditional finding remains historical. These are source-derived conditional failures, not executed field results, measured regressions or universal compatibility policies.
HOLD-09's additional float32 risk received separate dependency verification: the packet names .NET 9.0.4, whose pinned LINQ source uses a Double accumulator for Single inputs. Under the stated ordinary-rounding preconditions, [2^24; 1; -2^24] analytically changes from 0 to 1 versus the pinned old Single fold, independently of SIMD. Exact API/source bytes and the addendum are in D\evaluations\HOLD-09-runtime-source.*; addendum SHA-256 96f21db44542fd88e9e94afc132cb4bc552c144a104d31d1c006c8847354d1c0. This is source/mathematical proof, not an executed result, new human precedent, changed oracle or enlarged corpus.
Final acceptance and coverage checks
Obligation |
Actual result |
|---|---|
Frozen final semantics and complete replay |
C6 candidate/effective rules unchanged; C6-S extract, all payload/oracle identities and 36 selected actual outputs verified. Source-checked evaluation: 36 matches / zero misses / zero unsupported findings, with the disclosed evaluator-blindness limit. C5/C6 historical outputs are not substituted. |
Source-backed concerns and preserved failures |
All six named conversations have actual scoped outputs. Source-attributed feedback, author rationale, request-origin and synthetic evidence stay separate. C3 HOLD-09, C4 HOLD-01, C4 formatting retry, C5 scoring correction and C5-P SRC-02 miss remain auditable. |
Isolation, eligibility and first-seen accounting |
86 sprint-11 reviewer invocations: 44 in iteration 1 plus 42 in iteration 2. The selected 36 and clean focused sentinel have sealed one-case inputs; five additional contexts remain excluded. Only SRC-01/02/03 were first-executed in sprint 11, all development, in iteration 1. All iteration-2 cases are replays. |
Family separation and replacements |
Core-empty-array/inline-closures/realsig-TLR/vector-sum stay development; MIX shares VS-work-reuse. The instrumentation repair used exposed development, and the isolation repair changed no decision rule. No tuned holdout was relabeled independent; REPL-01 retains only its original family credit. |
Required applicability |
Actual coverage includes real mixed/test/docs/generated/API/behavior/lifecycle controls and strong/weak/noise/narrow-win cases. BENCH-01 supplies synthetic benchmark-only coverage; real benchmark-only credit is zero, with no repeated search. |
Actual output contract |
All 36 selected single tables have eight ordered full groups, five nonempty columns, only four permitted outcomes and an allowed final recommendation. 364 rows: 137 pass, 184 needs evidence, 32 not applicable, 11 risk/blocker. Semantic scoring separately verifies concrete proof/unknown/action, qualifications and recommendations; row totals are observations, not acceptance targets. |
Local integrity and boundaries |
Relative links/anchors, rule/case/source references, frozen inputs/outputs, historical oracles and |
Sprint-12 delivery audit
Audited 2026-09-22: C6-S remains the accepted replay; no reviewer semantics, input, oracle, selection or score changed during delivery. The audit reused the existing shape, anchor, effective-rule and C6-S closure assertions read-only, replacing archive writes with equality checks. Historical C3/C5 fixed-hash checks were not misapplied to C6. Checks and pre-edit identities are in R\9168de79-7d16-4602-9ba9-74a3162b550d\files\audit_delivery.py, audit-results.json and starting-identities.json; no private artifact is a repository deliverable.
Acceptance item |
Verified final artifact/result |
|---|---|
Evidence-first review and measurement contract |
Agent G1-G4 / PERF-01..04 require value/workload, before/after tables with units, baseline/changed binaries and configuration, repetitions, variability, environment and reproduction. Conditional metric maps cover time, memory, allocation/GC, closures, CPU/concurrency, startup/build and workload measures. DEV-05/12/13/15/18/19/20, HOLD-09, REPL-01 and MIX-01 demonstrate scoped credit and specific requests rather than universal demands. |
Behavior, resources and surgical risk |
G5-G8 / PERF-05..12 retain API/compatibility, lifecycle, repeated work, isolation, helper reuse and scope gates. DEV-01..04/06..11, HOLD-01/02/07 and SRC-01..03 preserve resolved concerns and distinguish missing proof from substantiated caller/resource failures. Eight ordered groups, four outcomes, proof/unknown/action fields and final recommendations are intact. |
Actual regression and isolation |
Every selected case has its frozen expectation, verbatim transcript, successful named invocation and matching score: 36 cases, 402 packet members, eight oracle files; 36 recorded semantic matches, zero misses/unsupported findings. Recomputed shape is 364 rows: 137 pass, 184 needs evidence, 32 not applicable, 11 risk/blocker. Four full-suite isolation replacements and the separate focused sentinel remain correctly selected; failed/excluded executions and the evaluator-exposure caveat remain visible. This is artifact verification, not a new replay or semantic rescore. |
Final identities |
Candidate LF |
Discovery, references and sources |
Unique two-field YAML name/description verified; the current catalog exposes |
Coverage and provenance |
485 inventory PRs, 94 reserved-source ledgers/diffs/channel hashes and the 804-entry benchmark screen reconcile. Effective included split remains 63 development / 59 holdout candidates, 319 connected groups; executed evaluation coverage is eight previously seen cases in seven families. The suite has 28 real inputs from 23 PRs plus eight synthetic controls. Named reviewer feedback, author measurements/rationale, explicit automation, uncertain composition and request-origin controls remain distinct; no unaided-human-composition certification is inferred. |
Delivery scope and local checks |
Aggregate and pending changes are limited to the five authorized paths; prior commits are preserved. No required reviewer/evaluator writer remains active. |
Real benchmark-only PR coverage remains zero; BENCH-01 is synthetic contract coverage, not human grounding or a real holdout. Deleted/private evidence, mutable historical edits, timeline-total anomalies and unavailable Azure payloads retain their recorded limits. Replays do not create independent holdouts, and source-derived failure scenarios are not executed product failures.
val int: value: 'T -> int (requires member op_Explicit)
--------------------
type int = int32
--------------------
type int<'Measure> =
int
from Microsoft.FSharp.Collections
F# Compiler Guide