Turns a natural-language brief into a whole repository: a planned file graph first, then the source, the tests, the documentation and the setup files. Generation walks the graph in topological order, tests execute in Docker, and the release gate fails closed instead of passing on a syntax check.

Whole-repository generation usually fails on the wiring, not the code: files written independently, each plausible, that never import each other. So the architecture is built as a dependency graph before a line is written, base classes are extracted where several nodes would otherwise repeat them, and generation walks the graph in topological order — which makes a circular import structurally impossible.

The pipeline is three stages with a gate in the middle. The first embeds the brief and searches a database of 4,600 features, balancing roughly four parts proven pattern to one part novel. The second builds the graph — base-class abstraction, interface design, data flow, file structure — with four fallback strategies so every leaf node ends up with a file path. Then the gate: every leaf has a path, intermediate nodes are valid, nothing is disconnected, base classes are linked, the graph is acyclic. It fails closed and costs nothing, so a plan that could never integrate is stopped before it spends the generation budget.

The third stage generates against that plan, tests first, and executes them in Docker. A failing node gets up to eight fix attempts, each carrying the previous failures forward so the loop cannot cycle on one error. An AST pass catches generated code pretending to be finished — a bare pass or a raised NotImplementedError inside a body that looks complete — and length floors trigger a retry when a node comes back too short to be real.

Independent leaves in one topological level share a bounded worker pool, the scheduler waits for the whole level before starting anything that depends on it, and results commit back in topological order rather than completion order — so two runs of the same plan produce the same tree. The model router keeps its cost, token and call counters exact with several workers in flight.

Every artefact carries its status. Draft means generated. Validated means its tests passed in Docker. Release is reserved for a clean build plus a passing integration suite, and the flag that would save an unvalidated run defaults to off. One run from a blog-API brief produced 27 files and 61 tests.