Laboratory constructor framework — Go orchestrator, Docker runners, pluggable lab packs.
Labs: demo · quality (L0) · org · sec — extensible for runtime bake-offs, LLM compares, load playgrounds, and more.
go test ./...
go run ./apps/cli version
go run ./apps/cli labs
go run ./apps/cli run -f testdata/manifests/demo.lab.yamlmake runners # build images
make quality-up # nginx fixture :8091
go run ./apps/cli run -f testdata/manifests/quality.lab.yaml
# Without Docker: report includes runner.docker.unavailable (accepted by lightspeed pack)# themeZip defaults to testdata/dist/latte.zip in org.lab.yaml
make org-up && make runners
go run ./apps/cli run -f testdata/manifests/org.lab.yamlgo run ./apps/cli run -f testdata/manifests/sec.lab.yaml
# Point wordpress adapter baseUrl at a lab WP; WPScan needs Dockerpackages/domain|contracts|policy|orchestrator|registry
packages/adapters/{noop,static,wordpress}
apps/cli
runners/{lighthouse,axe,theme-check,vnu,wpscan}
deploy/compose/
testdata/manifests|fixtures|dist
.project/
- Hexagonal + DDD — checks never live in domain
- Adapters prepare/serve targets
- Runners wrap tools (in-process or Docker)
- Policy maps findings → decisions
- Same Manifest → Report for local CLI and future SaaS
| Doc | Purpose |
|---|---|
| .project/README.md | KB index |
| .project/PROGRESS.md | Cycles A–D done; open E |
| .project/labs/ | Lab specs |
MIT — see LICENSE.