justbuild is a multi-agent prototype generator built for turning a plain-language product idea into a runnable prototype, validating it, and packaging the build artifacts in a way that is easy to inspect. It is designed as a Codex competition submission, so the emphasis is on clear orchestration, end-to-end autonomy, strong observability, and practical operator ergonomics instead of a single demo script.
Given one idea, JustBuild will:
- generate a structured product specification
- generate an architecture plan and a parallel architecture review
- create an implementation plan and generate the prototype file-by-file
- run deterministic validation and optional browser checks
- produce debugging guidance when testing fails
- generate evaluation reports for quality, maintainability, risk, and security
- persist machine-readable and human-readable build artifacts
- optionally publish successful outputs to a standalone GitHub repository
The default output for each build includes:
- a generated prototype directory
build_summary.jsonfinal_report.md- run logs and event logs
- iteration history
- optional GitHub publish artifacts
SpecificationAgent: turns the idea into a structured product specArchitectureAgent: produces an implementation-oriented architecture planArchitectureReview: checks for blocker-level planning issues before implementation continuesImplementationAgent: plans files and generates the prototype file-by-fileTestingAgent: combines LLM-authored checks with deterministic runtime validationDebuggingAgent: proposes a fix plan when testing failsEvaluationAgent: produces draft evaluations for quality, risk, and security, then merges themOrchestratorAgent: manages workflow execution, retries, milestones, and artifact persistence
- provider-aware structured-output handling for OpenAI, Anthropic, Gemini, and OpenAI-compatible endpoints
- JSON schema validation for planning outputs
- provider-specific extraction for Anthropic tool results and Gemini structured JSON
- capability-aware structured-output selection for local backends
- automatic backend detection for OpenAI-compatible endpoints, including Ollama-style probing
- dynamic downgrade from tool-based structured output to schema-based or best-effort JSON when a local backend lacks a feature
- file existence and content sanity checks
- HTML and schema validation
- JavaScript execution validation through Node
- Python execution validation through
pytest - optional Playwright browser verification
- failure reports that feed back into debugging and retry loops
- live CLI progress logs
- structured event logs in
build_events.jsonl - human-readable log output in
build.log - partial build snapshots in
build_summary.partial.json - final machine-readable summary in
build_summary.json - final human-readable report in
final_report.md
- optional GitHub publishing through the authenticated GitHub CLI
- per-build repository creation
- commit history that reflects build iterations
- bundled publish artifacts including the prototype, reports, and iteration history
These are intentional architectural decisions in the current submission:
- Python standard library first: the core orchestration, logging, transport, workflow runtime, and validation layers are standard-library based
- strict stage separation: specification, architecture, implementation, testing, debugging, and evaluation are modeled as separate agents with explicit handoffs
- workflow graph over ad hoc control flow: retries, branching, and refinement are expressed through a DAG-style runtime instead of scattered conditionals
- structured outputs over free-form prose: the planning stages expect machine-validated JSON so downstream stages are deterministic
- capability-aware local backend handling: local and proxy model servers are not treated as one flat
best_effortbucket - deterministic validation after generation: generated artifacts are checked with concrete runtime and structural validation, not only by an LLM
- persistent build memory: previous failures and successful patterns can influence later runs through
build_memory.json - optional parallelism: architecture generation and review, evaluation drafts, and some validation work can run concurrently
Supported backends:
- OpenAI
- Anthropic
- Gemini
- OpenAI-compatible endpoints such as Ollama, vLLM, and LM Studio
Important note on local models:
- backend capability detection is automatic
- JustBuild will try the strongest structured-output mode the backend supports
- strong local models behave much better than weak ones
- weak local models can still fail semantically even when transport and schema handling are correct
- src/justbuild/orchestrator.py: workflow assembly, retries, milestones, and state transitions
- src/justbuild/llm.py: provider transport, structured-output handling, and local backend capability detection
- src/justbuild/prompts.py: stage prompts and JSON schema definitions
- src/justbuild/validation.py: schema normalization and response validation
- src/justbuild/observability.py: logs, summaries, and run artifacts
- src/justbuild/agents: agent implementations for each workflow stage
- tests: transport, CLI, workflow, publishing, agent, and validation regression coverage
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip setuptools
python -m pip install -e .Cloud example:
justbuild "AI travel planner for remote teams" \
--output-root ./build_output \
--provider openai \
--model gpt-4.1-mini \
--api-key "$JUSTBUILD_LLM_API_KEY" \
--pytest-bin pytest \
--node-bin node \
--max-workers 4 \
--memory-path ./build_output/build_memory.jsonLocal OpenAI-compatible example:
justbuild "AI travel planner for remote teams" \
--output-root ./build_output_local \
--provider openai_compatible \
--local-model llama3 \
--base-url http://localhost:11434/v1 \
--pytest-bin pytest \
--node-bin node \
--max-workers 4 \
--memory-path ./build_output_local/build_memory.jsonGenerated prototypes land under build_output/<idea-slug>/prototype or build_output_local/<idea-slug>/prototype.
The full operator guide is in README.run.md. It covers:
- environment setup
- verification commands
- cloud and local run flows
- artifact inspection
- local-backend capability behavior
- troubleshooting for common failure modes
PYTHONPATH=src pytest -qCurrent repository status for this submission:
- structured-output transport coverage across supported providers
- local backend capability detection and downgrade behavior covered in tests
- end-to-end fake-LLM workflow tests
- CLI, publishing, workflow, and validation regression coverage
This codebase is optimized for demonstrable autonomy and inspectability:
- every major workflow decision is logged
- artifacts are saved even when a run fails
- the system can be exercised with cloud models or local model servers
- the architecture is intentionally modular so stronger providers, stricter enforcement, or richer prototype targets can be added without replacing the whole pipeline