OpenCourt is a greenfield, desktop-first legal-process operating system.
The canonical planning documents are:
OpenCourt_AI_IDE_Bootstrap_Prompt_Greenfield.mdOpenCourt_Project_Bible_Greenfield.mddocs/OPENCOURT_GREENFIELD_PHASES.mdARCHITECTURE_CONSTITUTION.md
Implemented through Phase 11: Counsel Arena.
The current branch includes the desktop/backend skeleton, pack-composed runtime profiles, SQLite operational persistence, reviewed case knowledge, procedure and evaluation slices, bounded simulation, Litigation Canvas, memory-service foundation, a repeatable flagship software-development contract dispute demo, and a backend Counsel Arena practice workflow.
backend/ FastAPI backend foundation
frontend/ Electron and React frontend foundation
memory-service/ Isolated memory-service foundation
packages/ Future shared/generated packages
fixtures/ Reproducible profiles and demo matter fixtures
docs/ Roadmap, ADRs, and architecture docs
scripts/ Developer automation scripts
- Python 3.12
- uv
- Node 22
- pnpm 10
cd backend
uv sync
uv run pytest
uv run uvicorn app.main:app --reloadcd memory-service
uv sync
uv run pytest
uv run uvicorn app.main:app --reload --port 8010pnpm install
pnpm run typecheck
pnpm run buildThe Phase 10 demo creates the fictional software-development dispute, ingests ten fixture documents, reviews facts/evidence/issues/claim records, runs two simulations, records a lawyer correction into memory, proves rejected memory is suppressed, and prints a comparison report.
.\scripts\run-flagship-demo.ps1Use -Memory http if the separate memory service is running on port 8010; the default local mode is deterministic for local verification.
Phase 11 adds backend endpoints for taking over a scenario node and submitting a practice response:
POST /api/simulations/{run_id}/nodes/{node_id}/practice-attemptsGET /api/practice-attempts/{attempt_id}POST /api/practice-attempts/{attempt_id}/memory-candidate/approvePOST /api/practice-attempts/{attempt_id}/memory-candidate/reject
Practice attempts are persisted, evaluated with structured feedback, shown with relevant memory, and can produce reviewable practice-weakness memory.
- Core domain code must not import Electron, React, FastAPI route objects, SQLAlchemy models, Cognee types, or provider SDKs.
- SQLite owns operational truth.
- Cognee owns curated cognitive memory only.
- Runtime profiles are compiled from versioned packs.
- Actual, proposed, simulated, and counterfactual records remain separate.
- Important conclusions require provenance, assumptions, uncertainty, authority, and verification status.