Cleanroom
A specification-first development system that uses Bazel macros to produce tested code by developing separate implementations and tests, then comparing them until both are correct. Specs are declarative and modular, primarily written by an LLM, with the goal of translating them into a formal reasoning framework so ungroundedness feedback helps the LLM write better specs; changes and refactors are made via specs first and aligned down to tests and code. Upcoming plans include supporting build systems other than Bazel, figuring out packaging, and adding more demos.
What it addresses
As components are divided into smaller parts, specifications become badly ungrounded (code depending on knowledge it cannot access, so something is hallucinated).
Shared over time
Each entry reflects what was shared on that date. Details may have changed since then.
Cleanroom
A specification-first development system that uses Bazel macros to produce tested code by developing separate implementations and tests, then comparing them until both are correct. Specs are declarative and modular, primarily written by an LLM, with the goal of translating them into a formal reasoning framework so ungroundedness feedback helps the LLM write better specs; changes and refactors are made via specs first and aligned down to tests and code. Upcoming plans include supporting build systems other than Bazel, figuring out packaging, and adding more demos.
Problem: As components are divided into smaller parts, specifications become badly ungrounded (code depending on knowledge it cannot access, so something is hallucinated).
Audience: Developers working with AI-assisted code generation, particularly those using build systems like Bazel and monorepos.
Posted by @seanmcdirmid · Original comment ↗
“I'm further along in my funemployment project: https://github.com/mcdirmid/cleanroom So far I have bazel macros up that can produce tested code with a ~30GB MoE model (Jundot/Qwen3.6-35B-A3B-oQ6-mtp, I can get ~90 toks/sec on a M3 Max!) using cleanroom separate implementation and test development (and then comparing them until both are correct).”