AI Bits #8: Environment handovers and a 2023 Proton correction

Make the next operator's first run inspectable

For AI-assisted builders documenting a development environment—not a recommendation to switch operating systems.

  • What does the source establish?

    The public abstract describes a 2023 comparison of Proton and native Windows for video gaming. Full methods and results were not available for this correction.

  • What was corrected?

    Removed unsupported causal attributions about Windows background services and extrapolation to AI inference or developer productivity.

  • What can you use?

    A twelve-file kit, a completed local record and a checker that distinguishes file identity from executed tests and delivery approval.

An AI-assisted build that runs on your laptop is not yet a demonstrated handover. If you want to deliver a scoped project for someone else, give its next operator the source identity, setup, commands, expected result and known failures. This guide supplies a completed teaching example you can inspect and repeat; it does not qualify you for client work or recommend an operating-system change.

What the 2023 paper actually covers

Marek Kopel and Michał Bożek’s “Is Proton Good Enough?” — A Performance Comparison Between Gaming on Windows and Linux was published online on 13 September 2023 in the ICCCI 2023 proceedings. Its public abstract describes comparing Proton with native Windows for video gaming.

The publisher page exposes an abstract, not the complete methods and results available through subscription access. This correction has not verified individual game outcomes, hardware configurations, driver versions, measured overhead or a causal explanation for any difference. We therefore give no numeric result, winner or recommendation based on those unavailable details.

Valve’s official Proton repository describes a Steam Play compatibility tool based on Wine and additional components for running Windows games on Linux. That is a specific purpose, not a blanket compatibility promise for development applications.

Separate a benchmark result from a new claim

Evidence needed before repeating a performance claim
ClaimNeeded evidenceStatus in this article
The paper compares gaming environments.Publisher abstract and bibliographic record.Checked.
A particular game performed better on one setup.Full results with workload, versions, settings and measurement method.Not verified here.
Background services caused the difference.A design isolating that factor and considering alternatives.Not established by the accessible abstract.
The same advantage applies to AI inference or build pipelines.A separate relevant benchmark with comparable output correctness and conditions.No such benchmark was run for this article.

“Plausible explanation” and “measured cause” are different statements. Drivers, settings, caching, workload mix and measurement choices can change a comparison. Do not select a favourite explanation without evidence that separates it from alternatives.

The builder task: make your environment inspectable

If you use AI coding tools to deliver software, a more useful next step than choosing an OS winner is documenting the environment someone else needs to reproduce your work. Code that runs only on your laptop is not yet a demonstrated handover.

The completed record below uses the learning guide's review-only classification lab. Its seven existing files remain unchanged; this article adds five handover files. Both classifiers are keyword rules, not an AI model or client system. All fourteen examples are fictional and were visible during authoring.

The read-only checker compares seven named files with expected-files.json and reports Node/V8, platform, architecture and kernel. It does not execute those files, inspect extra files, install dependencies or open a network connection. Its report excludes usernames, hostnames, local paths and environment-variable values. Hashes establish identity against this manifest, not authenticity if both are altered, runtime compatibility or protection against later file changes.

Copy a blank manifest for your own permitted project

This template is not a completed reproduction claim. Fill it from actual observations, including container/VM layers where used.

Environment handover — redact identifying paths and secrets
Task, repository URL and exact commit:
Host OS/version and architecture:
Runtime and package-manager versions:
Dependency lockfile and clean-install command:
Container/VM layer and image digest, if used:
GPU/driver/accelerator versions, or not applicable:
Required configuration variable names (never secret values):
Permitted fixture input and expected output:
Test/run commands and observed exit status:
Known failures, unsupported environments and manual fallback:
Reproduction date, operator and evidence location:
What was not tested:

Keep secrets out of manifests and logs. Name required variables and how an authorised operator obtains them; do not publish tokens, customer records or unredacted machine paths. Ask permission before sharing client source or a reproduction bundle.

Download and repeat the recorded handover

Download the complete environment handover kit — twelve files in two folders, including all seven learning-lab files. No package installation, API key, GPU or container is needed for these dependency-free Node scripts. The recorded run used Node v25.2.1 on macOS arm64; other versions and operating systems need their own verification.

Extract the ZIP, keep its two folders together and open a terminal in their parent folder. Inspect the JavaScript first, then run each command separately:

node --version
node environment-handover/inspect.mjs
node --test --test-reporter=tap ai-builder-lab/triage.test.mjs ai-builder-lab/change-review.test.mjs environment-handover/inspect.test.mjs
node ai-builder-lab/change-review.mjs

The inspector exits 0 for FILES_MATCH, 2 for a mismatch and 1 for invalid usage or manifest. The test command exits 0. The final change review deliberately exits 2 / HOLD because the classifier still fails the teaching task. These are different checks: 24 passing code tests do not cancel that HOLD. See the handover for recording exit status in your shell.

Actual local execution, 10 September 2026; not an independent recipient run
CheckRecorded outcomeWhat it does not establish
File identity7/7 files match; exit 0The checker itself did not execute the lab or approve it.
Executed code tests24/24 pass; 0 fail; exit 015 lab tests and 9 checker tests reproduce behaviour, including known defects.
Executed classification comparisonBaseline 9/14; candidate 12/14; HOLD, exit 2The full output matches the supplied change record, but retains 2 failures including 1 regression.
Missing triage.mjs in a separate disposable copymissing; exit 2Deliberately altered disposable copy; no source was executed by the checker.
Changed triage.mjs in the same disposable copydifferent; exit 2Deliberately altered disposable copy; no source was executed by the checker.

For the candidate, c3 loses the active appointment-date request when the whole “not about” clause is discarded; c5 still misses “Can I reschedule?”. Keep both. The higher combined count is not general language understanding, customer accuracy or evidence from independent evaluation.

The complete HANDOVER.md records all manifest fields, actual macOS/runtime versions, excluded dependencies, failure handling and pending recipient review. Other inspectable files:

The record was generated by a Codex-assisted local run. It identifies this uncommitted draft by file hashes; it does not attest a Git release or independent human review. Review even a minimal version/hash record before sharing. The checker does not sanitise other programs' logs, which may contain private paths or data.

What a recipient still needs to do

  1. Record the downloaded source hashes, date, actual environment and exact commands. Do not overwrite the supplied author's record with your result.
  2. Run the tests and compare the full classification output with change-record.json. Preserve all failures and exit statuses, not only a headline score.
  3. Ask another person to follow the same instructions without your unstated setup steps. Record their environment and outcome separately. Their runtime fields may differ even if the source and deterministic result match.
  4. If the outcomes differ, reduce the problem to the smallest reproducible input. Note the mismatch before modifying dependencies or deleting a failing test.
  5. Update the manifest with both the working setup and what remains untested. A second local run is not an independent reproduction.

No independent recipient has completed that review here. A second local run is not an independent reproduction. No Windows/Linux, clean-OS installation, GPU or API compatibility is claimed. If your project needs those, document and test them separately.

Troubleshoot the first difference, not the whole operating system

Keep the first failure and change one relevant thing
ObservationNext check
Node is unavailableUse your team's approved runtime setup and record its version. This kit does not install it.
Inspector exits 1Check arguments and the supplied manifest. For a different folder use --lab "PATH TO COPY".
Missing or different fileCheck extraction and exact names, then inspect the diff. Do not update the expected hash merely to hide a mismatch.
File check passes, execution failsRetain Node/OS, the first failing test and permitted input/output. Same source bytes do not prove compatibility.
Tests pass, change review is HOLDThat is expected for this fixture. Correct the task failure in a separately versioned change; do not delete the failure case.

Practise a missing-file check only in a disposable copy: move triage.mjs out, inspect that copy, then restore it. The recorded demonstration did this and also checked a changed file. Neither result is evidence about an operating system's speed.

If performance matters, write a comparison plan first

Define the actual task, equivalent correct output, hardware/resource constraints and metric. For an inference workflow, distinguish completion latency, throughput and output quality; a faster wrong result is not an equivalent result. Record model/version, input set, concurrency, cache state and failures.

Repeat runs under a documented procedure, preserve individual observations and report variability instead of choosing the fastest run. Separate setup or warm-up from measured work, explain which costs are included and avoid changing several factors while attributing the result to one. These are planning questions, not a completed experimental protocol or benchmark.

Only claim support for the configurations tested. A local comparison does not establish a universal OS ranking, a customer's future workload performance or business savings.

Turn evidence into a useful handover

Include the manifest, permitted inputs, commands, expected output, failed cases and a clear account of your own contribution. Explain what AI coding tools generated, what you reviewed and why the result satisfies the requested behaviour. Ask a systems reviewer to reproduce consequential setup and compatibility claims before relying on them in client delivery.

For a client project, also account for review and rework time: the coding delivery-effort guide separates code-writing speed from accepted delivery. When you have your own permitted build evidence—not just this supplied starter—you can use it in a Studio application.

A practical next step with MLAI

Can someone else reproduce what you built?

Have your own AI-assisted build that another operator can inspect? Share a permitted demo or repository, your contribution, tests and handover limits. Apply for consideration for scoped, paid projects; selection and matching depend on fit and availability.

Apply with delivery evidence

Studio's public positioning is Australian; New Zealand contractor eligibility has not been verified here. Confirm eligibility before assuming acceptance. If you are simply curious about these questions, find a relevant MLAI event. Application and project matching are not guaranteed.

Source scope rechecked 10 September 2026: Springer public abstract and Valve repository documentation. The new kit was run locally; no full-text paper review, independent environment reproduction or OS/AI performance benchmark is claimed.

Frequently Asked Questions

Does this paper prove Linux is faster for AI inference?

No such conclusion is established here. The accessible abstract describes gaming. This correction did not inspect the full methods or results, and a result on one workload cannot be assumed for another.

Is Proton a general solution for Windows development tools?

Valve describes Proton as a Steam Play compatibility tool based on Wine and additional components, intended for Windows games on Linux. Do not infer support for an arbitrary development tool; verify the exact application and supported setup independently.

Does passing a local test prove a handover is reproducible?

It proves that run in that environment. A recipient must follow the documented setup independently, compare outputs and report differences before you claim a reproduced handover.

Should I change operating systems to build AI projects?

Start with your project's supported dependencies, hardware, team requirements and actual failure. This article supplies no evidence that an OS change will improve your performance. Test a representative workload before making a consequential change.

Disclaimer: This article provides general information and is not legal or technical advice. For official guidelines on the safe and responsible use of AI, please refer to the Australian Government’s Guidance for AI Adoption →

A practical next step with MLAI

Can someone else reproduce what you built?

Have your own AI-assisted build that another operator can inspect? Share a permitted demo or repository, your contribution, tests and handover limits. Apply for consideration for scoped, paid projects; selection and matching depend on fit and availability.

Apply with delivery evidence