Build Phases

The MVP was built in 8 phases over 20 PRs, with 350 tests and zero lint errors throughout.

1

Domain Foundation

153 tests · PR #10

CaseSchema (19 Pydantic v2 models), domain entities (Session, Event, State, Artifacts), StateTransitionEngine with 27 action handlers, deterministic replay, case validator CLI (5 commands).

packages/case-schema/packages/domain/packages/simulation-engine/apps/api/cli.py
2

Participant Flow

175 tests · PR #11

FastAPI application, SQLAlchemy 2.0 ORM (3 models), Alembic migrations, session/action/event/artifact endpoints, React + Vite + TanStack Query workspace with 3-pane layout.

apps/api/apps/web/tests/integration/
3

Stakeholders

223 tests · PR #12

Hybrid stakeholder engine: PolicyEngine (6 rule types) + LanguageRenderer with post-generation validation. ModelGateway with provider-neutral Protocol + MockProvider.

packages/stakeholder-engine/packages/model-gateway/
4

Evaluation

300 tests · PR #13

12 automated validators, 6 hard constraints (3 critical, 1 major, 2 minor), 6-dimension scoring, auto-triggered report generation on session completion.

packages/evaluation-engine/routes/evaluations.py
5

Seed Cases

327 tests · PR #14

3 complete cases: Wrong Use-Case Selection, Unsafe Autonomy Transition, Unmaintainable Prototype. All hidden facts reachable. 2+ valid strategy patterns per case.

cases/wrong-use-case/cases/unsafe-autonomy/cases/unmaintainable-prototype/
6

Replay & Expert Review

PR #15

ReplayService with state diff computation and dimension tagging. Expert review panel with dimension scoring and event citations. Pairwise trajectory comparison.

ReplayTimeline.tsxExpertReviewPanel.tsxroutes/replay.py
7

Agent Interface

335 tests · PR #16

Dedicated agent API endpoints with machine-readable action schemas. Reference baseline agent script using heuristic policy. Agent-friendly error handling.

routes/agent.pyscripts/baseline_agent.py
8

Hardening

350 tests · PR #17

GitHub Actions CI pipeline, Docker Compose, RBAC middleware, slowapi rate limiting, 15 adversarial tests (prompt injection, state extraction, event tampering, cross-session access).

.github/workflows/ci.ymldocker-compose.ymltests/adversarial/

Engineering Principles

Domain logic before infrastructure
Deterministic truth, generative language
Structured actions before unrestricted chat
Evidence-linked evaluation
Multiple valid strategies per case
Append-only traceability
No single score as complete FDE ability