Repository navigation
Clean room: name the in-box C# toolchain in ENVIRONMENT.md - #421
Conversation
The Windows restore brief said "the most modern version of the language installed on this machine". ADR-0096 says the opposite: C# on the .NET Framework that ships with Windows, nothing installed. The first Windows restore experiment (2026-10-16) followed the brief, searched the machine for a compiler, and settled on Visual Studio's Roslyn and the .NET 10 runtime; one look into the home folder for a per-user .NET voided the run. The brief now says the in-box framework, and the build finds its csc.exe and Windows PowerShell at build time and names them in a Toolchain section of ENVIRONMENT.md, telling the session to use those and not to look for another. Found at build time rather than named in prose, where a version would rot. README and ADR-0096 say the same, in place. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Code review (Opus, high): 7 findings. The first three compare.py findings were confirmed by running it on Windows (Python 3.14.5): each prints IDENTICAL and exits 0.
scripts/cleanroom/build-restore-cleanroom.mjs:179 — The build's handover still says to install a toolchain: "install the toolchain: nothing comes as standard on Windows", the claim this PR reverses in the brief, README and ADR. An operator following it installs the .NET SDK or Visual Studio while the brief the same build just wrote tells the session to use the in-box framework and nothing newer. The README's twin of this sentence was removed; this one was not.
scripts/cleanroom/README.md:162 — This section still says the brief "names no version and no toolchain", leaving the session to find "the most modern version that comes as standard". On Windows the brief now names the .NET Framework and ENVIRONMENT.md names a csc.exe path, so line 162 and the Windows paragraph at line 239 contradict each other within one file. The module comment at cleanroom.mjs:28-31 says the same thing.
scripts/cleanroom/cleanroom.mjs:424 — The ground rule still says ENVIRONMENT.md says only "where the bucket is", while the brief three paragraphs earlier sends the session there for the compiler path. The two instructions about the same file disagree.
… otherwise Review of #421: the compiler is one existsSync on Framework64\v4.0.30319\csc.exe, a folder unchanged since 2010 in a product line that has ended, so nothing to discover; a missing one prints and exits 2 like the module's other refusals. The restore build's handover no longer tells the operator to install a toolchain, and the README and module comment no longer say the brief names none. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
On the three findings in the review body, all fixed in 820ac66:
|
The Windows restore brief told the session to use "the most modern version of the language installed on this machine". ADR-0096 says the opposite: C# on the .NET Framework that ships with Windows, nothing installed. The first Windows restore experiment (2026-10-16, Sonnet 5.5, medium) followed the brief: it searched the machine for a compiler, settled on Visual Studio's Roslyn
cscand the .NET 10 runtime, and one of its searches,Get-ChildItem $env:USERPROFILE\.dotnet, was a look into the home folder that voided the run.Three changes, all on the Windows restore build:
csc.exeand Windows PowerShell at build time and names them in a Toolchain section ofENVIRONMENT.md(csharpToolchain), telling the session to use those and not to look for another. Found at build time rather than named in prose, where a version would rot; a Windows with no .NET Framework 4 fails the build. On this machine it namesC:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\csc.exe(C# 5) andpowershell.exeforAdd-Type.Checked by writing a restore clean room with fake credentials and reading its
ENVIRONMENT.mdand brief; no build or run.🤖 Generated with Claude Code